Файл ANSI SYS
Файл ANSI.SYS
Определяет функции, изменяющие вывод графики, управляющие перемещением курсора и переназначающие клавиши. Драйвер устройства ANSI.SYS поддерживает для управления экраном и клавиатурой эмуляцию управляющих последовательностей (ESC-последовательностей) терминала ANSI (первые два символа в этой последовательности - это 1Bh и 5Bh, а следующие символы задают код, управляющие функцией клавиатуры или дисплея).
Данный драйвер устройства должен загружаться в файле CONFIG.SYS командой DEVICE или DEVICEHIGH: DEVICE=[диск:][маршрут]ANSI.SYS [/X] [/K] [/R]
где /X отображает расширенные клавиши для 101-клавишной клавиатуры, /K приводит к тому, что ANSI.SYS интерпретирует 101-клавишную клавиатуру как 84-клавишную (это эквивалентно команде SWITCHES=/K), а /R настраивает прокрутку строки, когда ANSI.SYS используется с программами, выполняющими чтения с экрана.
В управляющих последовательностях ANSI используются следующие параметры:
Pn - числовой параметр. Задает десятичное число.
Ps - селективный параметр. Задает десятичное число, используемое для выбора функции. Разделив параметры точкой с запятой, можно задать более одной функции.
PL - параметр строки. Задает десятичное число, представляющее одну из строк дисплея или другого устройства.
Pc - параметр столбца. Задает десятичное число, представляющее один из столбцов.
В приводимой ниже таблице сокращение ESC представляет управляющий символ ASCII 27 (1Bh), который указывается в начале каждой последовательности.
Управляющие последовательности ANSI для перемещения курсора, задания графики и установок клавиатуры
ESC[PL;PcH | Перемещает курсор в точку с заданными координатами, или, если они не указаны, в начальную позицию (левый верхний угол экрана - 0,0). |
ESC[PL;Pcf | Работает аналогично предыдущей управляющей последовательности. |
ESC[PnA | Перемещает курсор вверх на заданное число строк, не изменяя позиции столбца. При достижении верхней строки игнорируется. |
ESC[PnB | Перемещает курсор вниз на заданное число строк. В нижней строке эта последовательность игнорируется. |
ESC[PnC | Перемещает курсор вперед на заданное число позиций (столбцов) без изменения строки. В правом столбце игнорируется. |
ESC[PnD | Перемещает курсор назад на заданное число позиций (столбцов) без изменения строки. В левом столбце игнорируется. |
ESC[s | Сохраняет текущую позицию курсора. Переместить курсор в сохраненную позицию можно с помощью ESC[u. |
ESC[u | Возвращает курсор в позицию, сохраненную с помощью ESC[s. |
ESC[2J | Очищает экран и перемещает курсор в начальную позицию - точку (0,0). |
ESC[K | Стирает символы от позиции курсора до конца строки (включая символ в позиции курсора). |
ESC[Ps;...;Psm | Устанавливает графический режим: вызывает графические функции, заданные указанными значениями. Данные функции будут активными до следующей подобной управляющей последовательности. Графический режим изменяет цвета и атрибуты текста на экране. (См. табл. 1). |
ESC[=psh | Устанавливает режим: изменяет ширину экрана на режим, заданный одним из значений из табл. 2. |
ESC[=Psl | Сбрасывает режим. Используются те же значения, что и при установке режима (кроме 7). |
ESC[код;s;..p] | Переопределяет клавишу клавиатуры на заданную строку s. Код - это одно или более значений, перечисленных в таблице 3. Кроме точек с запятой в управляющей последовательности нужно указывать точки с запятой, заданные в таблице. Коды, указанные в скобках, на некоторых клавиатурах недоступны (укажите параметр /X в команде DEVICE для ANSI.SYS). Строка задается одним или несколькими символами ASCII, заключенными в кавычки (на некоторых компьютерах отдельные значение недопустимы). |
Таблица 1.
0 атрибуты сброшены | 30 черный | 40 черный |
1 жирный шрифт | 31 красный | 41 красный |
4 подчеркивание | 32 зеленый | 42 зеленый |
(монохромный адаптер) | 33 желтый | 43 желтый |
5 мерцание | 34 голубой | 44 голубой |
7 обратный видеорежим | 35 малиновый | 45 малиновый |
8 скрытый текст | 36 бирюзовый | 46 бирюзовый |
37 белый | 47 белый |
Таблица 2.
0 | 40 x 148 x 25 монохромный (текст) |
1 | 40 x 148 x 25 цветной (текст) |
2 | 80 x 148 x 25 монохромный (текст) |
3 | 80 x 148 x 25 цветной (текст) |
4 | 320 x 148 x 200 4-цветной (графика) |
5 | 320 x 148 x 200 монохромный (графика) |
6 | 640 x 148 x 200 монохромный (графика) |
7 | разрешает перенос строки |
13 | 320 x 148 x 200 цветной (графика) |
14 | 640 x 148 x 200 цветной (16-цветная графика) |
15 | 640 x 148 x 350 монохромный (2-цветная графика) |
16 | 640 x 148 x 350 цветной (16-цветная графика) |
17 | 640 x 148 x 480 монохромный (2-цветная графика) |
18 | 640 x 148 x 480 цветной (16-цветная графика) |
19 | 320 x 148 x 200 цветной (256-цветная графика) |
Таблица 3.
F1 | 0;59 | 0;84 | 0;94 | 0;104 | |
F2 | 0;60 | 0;85 | 0;95 | 0;105 | |
F3 | 0;61 | 0;86 | 0;96 | 0;106 | |
F4 | 0;62 | 0;87 | 0;97 | 0;107 | |
F5 | 0;63 | 0;88 | 0;98 | 0;108 | |
F6 | 0;64 | 0;89 | 0;99 | 0;109 | |
F7 | 0;65 | 0;90 | 0;100 | 0;110 | |
F8 | 0;66 | 0;91 | 0;101 | 0;111 | |
F9 | 0;67 | 0;92 | 0;102 | 0;112 | |
F10 | 0;68 | 0;93 | 0;103 | 0;113 | |
F11 | 0;133 | 0;135 | 0;137 | 0;139 | |
F12 | 0;134 | 0;136 | 0;138 | 0;140 | |
HOME * | 0;71 | 55 | 0;119 | ||
стрелка вверх * | 0;72 | 56 | (0;141) | ||
PgUp * | 0;73 57 | 0;132 | |||
Стрелка влево * | 0;75 | 52 | 0;115 | ||
Стрелка вправо* | 0;77 | 54 | 0;116 | ||
END * | 0;79 | 49 | 0;117 | ||
Стрелка вниз * | 0;80 | 50 | (0;145) | ||
PgDn * | 0;81 | 51 | 0;118 | ||
Ins * | 0;82 | 48 | (0;146) | ||
Del * | 0;83 | 46 | (0;147) | ||
HOME | (224;71) | (224;71) | (224;119) | (224;151) | |
Стрелка вверх | (224;72) | (224;72) | (224;141) | (224;152) | |
PgUp | (224;73) | (224;73) | (224;132) | (224;153) | |
Стрелка влево | (224;75) (224;75) | (224;115) | (224;155) | ||
Стрелка вправо | (224;77) (224;77) | (224;116) | (224;157) | ||
END | (224;79) (224;79) | (224;117) | (224;159) | ||
Стрелка вниз | (224;80) (224;80) | (224;145) | (224;154) | ||
PgDn | (224;81) (224;81) | (224;118) | (224;161) | ||
Ins | (224;82) (224;82) | (224;146) | (224;162) | ||
Del | (224;83) (224;83) | (224;147) | (224;163) | ||
PRINT SCREEN | 0;114 | ||||
PAUSE/BREAK | 0;0 | ||||
BACKSPACE | 8 | 8 | 127 | (0) | |
ENTER | 13 | 10 | (0 | ||
TAB | 9 | 0;15 | (0;148) | (0;165) | |
NULL | 0;3 | ||||
A | 97 | 65 | 1 | 0;30 | |
B | 98 | 66 | 2 | 0;48 | |
C | 99 | 66 | 3 | 0;46 | |
D | 100 | 68 | 4 | 0;32 | |
E | 101 | 69 | 5 | 0;18 | |
F | 102 | 70 | 6 | 0;33 | |
G | 103 | 71 | 7 | 0;34 | |
H | 104 | 72 | 8 | 0;35 | |
I | 105 | 73 | 9 | 0;23 | |
J | 106 | 74 | 10 | 0;36 | |
K | 107 | 75 | 11 | 0;37 | |
L | 108 | 76 | 12 | 0;38 | |
M | 109 | 77 | 13 | 0;50 | |
N | 110 | 78 | 14 | 0;49 | |
O | 111 | 79 | 15 | 0;24 | |
P | 112 | 80 | 16 | 0;25 | |
Q | 113 | 81 | 17 | 0;16 | |
R | 114 | 82 | 18 | 0;19 | |
S | 115 | 83 | 19 | 0;31 | |
T | 116 | 84 | 20 | 0;20 | |
U | 117 | 85 | 21 | 0;22 | |
V | 118 | 86 | 22 | 0;47 | |
W | 119 | 87 | 23 | 0;17 | |
X | 120 | 88 | 24 | 0;45 | |
Y | 121 | 89 | 25 | 0;21 | |
Z | 122 | 90 | 26 | 0;44 | |
1 | 49 | 33 | 0;120 | ||
2 | 50 | 64 | 0 | 0;121 | |
3 | 51 | 35 | 0;122 | ||
4 | 52 | 36 | 0;123 | ||
5 | 53 | 37 | 0;124 | ||
6 | 54 | 94 | 30 | 0;125 | |
7 | 55 | 38 | 0;126 | ||
8 | 56 | 42 | 0;126 | ||
9 | 57 | 40 | 0;127 | ||
0 | 48 | 41 | 0;129 | ||
- | 45 | 95 | 31 | 0;130 | |
= | 61 | 43 | 0;131 | ||
[ | 91 | 123 | 27 | 0;26 | |
] | 93 | 125 | 29 | 0;27 | |
92 | 124 | 28 | 0;43 | ||
; | 59 | 58 | 0;39 | ||
' | 39 | 34 | 0;40 | ||
, | 44 | 60 | 0;51 | ||
46 | 62 | 0;52 | |||
/ | 47 | 63 | 0;53 | ||
` | 96 | 126 | (0;41) | ||
ENTER (*) | 13 | 10 | (0;166) | ||
/ (*) | 47 | 47 | (0;142) (0;74) | ||
* (*) | 42 | (0;144) (0;78) | |||
- (*) | 45 | 45 | (0;149) (0;164) | ||
+ (*) | 43 | 43 | (0;150) (0;55) | ||
5 (*) | (0;76) 53 | (0;143) |
* - клавиши дополнительной клавиатуры
Например, чтобы поменять местами значения клавиш | и \, используйте следующую управляющую последовательность: