Полезная информация

Server for Information Technologies
Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер Информационных Технологий содержит море(!) аналитической информации

Файл ANSI.SYS

ANSI.SYS - это драйвер устройства для клавиатуры и экрана. Он определяет функции, изменяющие вывод графики, управляющие перемещением курсора и переназначающие клавиши. Драйвер устройства ANSI.SYS поддерживает для управления экраном и клавиатурой эмуляцию управляющих последовательностей (ESC-последовательностей) терминала ANSI (первый символ в этой последовательности - это 1Bh, а следующие символы задают код, управляющий функцией клавиатуры или дисплея). Драйвер ANSI.SYS распознает ESC-последовательности через обычные вызовы функций DOS но не распознает символьный вывод непосредственно из ROM BIOS.

ANSI.SYS обеспечивает дополнительные возможности для программ, которым требуется перемещать курсор, изменять экран дисплея или назначать используемую клавиатуру. Некоторые приложения требуют обязательной загрузки ANSI.SYS.

Загрузить этот драйвер можно с помощью SETUP (или INSTALL) или отредактировав непосредственно файла CONFIG.SYS и включив в него оператор:

     DEVICE = C:\NWDOS\ANSI.SYS

После этого ANSI.SYS будет загружаться при каждом запуске операционной системы.

ESC-последовательность обычно имеет следующую форму: символ ESC (1BH) в первом байте, символ [ (5BH) во втором байте, одно или более десятичных чисел, разделенных запятой и один символ команды. Создать ESC-последовательности можно с помощью текстового редактора. Например, в EDIT код ESC можно создать с помощью Ctrl+P и клавиши Esc.

Различные типы ESC-последовательностей описываются в следующей таблице. Они используются для позиционирования курсора, стирания и изменения режима вывода. Значения y (от 1 до 50) и x в таблице представляют номера строки и столбца (от 1 до 80). Если эти значение не задаются, или задается 0, то используется значение по умолчанию.

ESC-последовательности

КомандаПоследовательностьДействие
CUPESC[y;xHПозиционирование курсора в точку а заданными координатами. По умолчанию курсор помещается в левый верхний угол экрана.
HVPESC[y;xfПозиционирует курсор согласно заданным координатам. По умолчанию курсор помечается в левый верхний угол экрана.
CUUESC[yAПеремещает курсор вверх на y строк. В первой строке экрана игнорируется.
CUDESC[yBПеремещает курсор вниз на y строк. В нижней строке экрана игнорируется.
CUFESC[xCПеремещает курсор вправо без изменения позиции в строке. В крайней правой позиции игнорируется.
CUBESC[xDПеремещает курсор влево без изменения позиции в строке. В крайней левой позиции игнорируется.
DSRESC[6nВыводит отчет о состоянии устройства, возвращая последовательность CPR.
CPRESC[y;xRСообщает позицию курсора. Позиция возвращается при вводе с клавиатуры.
SCPESC[sСохраняет текущую позицию курсора.
RCPESC[uВосстанавливает позицию курсора.
EDESC[2JСтирает экран и перемещает курсор в его верхний левый угол.
ELESC[KСтирает строку от позиции курсора до конца строки.
SGRESC[n;...;nmУстанавливает режимы экрана. Режим задается значением n (см. ниже таблицу).
SMESC[=nh1
ESC[=h1
ESC[?nh
Устанавливает режим вывода. Режим задается значением n (см. ниже таблицу).
RMESC[=n1
ESC[=1
ESC[?n1
Сбрасывает режим вывода. Режим задается значением n (см. ниже таблицу).
KRESC[n;n;...npИзменяет функцию клавиши. Нужно задать изменяемую клавишу и определить изменение. Расширенные коды клавиш можно задавать, набирая первую переменную в последовательности как 0 (NUL), за которым следует другая клавиша. Например, F10 задается с помощью 0;68;. Последняя переменная в последовательности - это код символа, присваиваемый клавише. Коды функциональных клавиш перечислены в одной из приведенных ниже таблиц.

В следующей таблице перечислены коды клавиш символов и функциональных клавиш F1 - F10, которые можно использовать вместе с клавишами Shift, Ctrl, Alt.

Коды клавиш

КлавишаКодSHIFT+кодCTRL+кодALT+код
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)
* - клавиши дополнительной клавиатуры

Например, чтобы поменять местами значения клавиш и \, используйте следующую управляющую последовательность:

    ESC[" ";"\"pESC["\";" "p

Значения режима вывода

Текстовые атрибутыОсновные цветаФоновые цвета
0 атрибуты сброшены30 черный40 черный
1 жирный шрифт31 красный41 красный
4 подчеркивание32 зеленый42 зеленый
(монохромный адаптер)33 желтый43 желтый
5 мерцание34 голубой44 голубой
7 обратный видеорежим35 малиновый45 малиновый
8 скрытый текст36 бирюзовый46 бирюзовый
37 белый47 белый

Режимы работы экрана

ЗначениеДействие
040 x 25 монохромный (текст)
140 x 25 цветной (текст)
280 x 25 монохромный (текст)
380 x 25 цветной (текст)
4320 x 200 4-цветной (графика)
5320 x 200 монохромный (графика)
6640 x 200 монохромный (графика)
7разрешает перенос строки
13320 x 200 цветной (графика)
14640 x 200 цветной (16-цветная графика)
15640 x 350 монохромный (2-цветная графика)
16640 x 350 цветной (16-цветная графика)
17640 x 480 монохромный (2-цветная графика)
18640 x 480 цветной (16-цветная графика)
19320 x 200 цветной (256-цветная графика)

Например, следующая ESC-последовательность позиционирует курсор в точке 15,15 и выводит в этой точке символ x.

    ESC [10;10HX

Следующая последовательность присваивает клавише F10 команду DIR C:

    ESC [0;68;"DIR C:";13p


Comments: info@citmgu.ru
Copyright © CIT