Главная »
Периодика »
Безопасность0 ...
106107108109110111112 ...
159Клавиша | Стандартные коды | Коды комбинаций с клавишей Shift | Коды комбинаций с клавишей Ctrl | Коды комбинаций с клавишей Alt |
| 1F/73 | 1F/53 | 1F/13 | 1F/00 |
| 20/64 | 20/44 | 20/04 | 20/00 ~ |
| 21/66 | 21/46 | 21/06 | 21/00 ~ |
| 22/67 | 22/47 | 22/07 | 22/00 |
| 23/68 | 23/48 | 23/08 | 23/00 |
| 24/6А | 24/4А | 24/ОА | 24/00 |
| 25/6В | 25/4В | 25/ОВ | 25/00 |
| 26/6С | 26/4С | 26/ОС | 26/00 |
| 27/3 В | 27/ЗА | | 27/00 |
| 28/27 | 28/22 | | 28/00 |
| 29/60 | 29/7Е | | 29/00 |
| 2В/5С | 2В/7С | 2В/1С | 2В/00 |
| 2С/7А | 2С/5А | 2С/1А | 2С/00 |
| 2D/78 | 2D/58 | 2D/18 | 2D/00 |
| 2Е/63 | 2Е/43 | 2Е/03 | 2Е/00 |
| 2F/76 | 2F/56 | 2F/18 | 2F/00 |
| 30/62 | 30/42 | 30/02 | 30/00 |
| 31/6Е | 31/4Е | 31/ОЕ | 31/00 |
| 32/6D | 32/4D | 32/0D | 32/00 |
| 33/2С | 33/ЗС | | 33/00 |
| 34/2Е | 34/ЗЕ | | 34/00 |
| 35/2F | 35/3F | | 35/00 |
| 37/2А | 37/2А | 96/00 | 37/00 |
SPACE | 39/20 | 39/20 | 39/20 | 39/20 |
| ЗВ/00 | 54/00 | 5Е/00 | 68/00 |
| ЗС/00 | 55/00 | 5F/00 | 69/00 |
| 3D/00 | 56/00 | 60/00 | 6А/00 |
| ЗЕ/00 | 57/00 | 61/00 | 6В/00 |
| 3F/00 | 58/00 | 62/00 | 6С/00 |
| 40/00 | 59/00 | 63/00 | 6D/00 |
| 41/00 | 5А/00 | 64/00 | 6Е/00 |
| 42/00 | 5В/00 | 65/00 | 6F/00 |
| 43/00 | 5С/00 | 66/00 | 70/00 |
| 44/00 | 5D/00 | 67/00 | 71/00 |
| 85/00 | 87/00 | 89/00 | 8В/00 |
| 86/00 | 88/00 | 8А/00 | 8С/00 |
| 47/00 | 47/37 | 77/00 | |
КР UA(t) | 48/00 | 48/38 | 8D/00 | |
КР PU | 49/00 | 49/39 | 84/00 | |
| 4A/2D | 4A/2D | 8Е/00 | 4А/00 |
КР LA () | 4В/00 | 4В/34 | 73/00 | |
| 4С/00 | 4С/35 | 8F/00 | # |
КР RA(->) | 4D/00 | 4D/36 | 74/00 | |
KP-F | 4Е/2В | 4Е/2В | 90/00 | 4Е/00 |
| 4F/00 | 4F/31 | 75/00 | |
KPDA(-L) | 50/00 | 50/32 | 91/00 | |
КР PD | 51/00 | 51/33 | 76/00 | # J |
Клавиша | Стандартные коды | Коды комбинаций с клавишей Shift | Коды комбинаций с клавишей Ctrl | Коды комбинаций с клавишей Alt |
| 52/00 | 52/30 | 92/00 | |
| 53/00 | 53/2Е | 93/00 | |
КР Enter | EO/OD | EO/OD | ЕО/ОА | |
| E0/2F | E0/2F | 95/00 | |
PAUSE | | | 72/00 | |
BREAK | | | 00/00 | |
| 47/EO | 47/EO | 77/ЕО | 97/00 |
AUA(T) | 48/EO | 48/EO | 8D/E0 | 98/00 |
| 49/EO | 49/EO | 84/ЕО | 99/00 |
А LA (<-) | 4B/E0 | 4B/E0 | 73/ЕО | 9В/00 |
ARA (->) | 4D/E0 | 4D/E0 | 74/ЕО | 9D/00 |
| 4F/E0 | 4F/E0 | 75/ЕО | 9F/00 |
ADA(-L) | 50/EO | 50/EO | 91/ЕО | АО/00 |
| 51/Е0 | 5VE0 | 76/ЕО | А1/00 |
| 52/EO | 52/EO | 92/ЕО | А2/00 |
| 53/EO | 53/EO | 93/ЕО | АЗ/00 |
Команды контроллера клавиатуры
ПК обладает определенным набором команд, которые он может направлять на клавиатуру (табл. 10.5). Во всех перечисленных случаях (за исключением команд, которые игнорируются, и команды «эхо») клавиатура отсылает обратно код подтверждения 0x0FA.
Таблица 10.5
Команды управления клавиатурой
| Функция |
OxOED | Включение светодиодного индикатора Следующий выводимый байт определяет состояние светодиодного индикатора |
ОхОЕЕ | Эхо - клавиатура возвращает ОхОЕЕ |
0xOEF-OxF2 | Игнорируются клавиатурой |
ОхОРЗ | Уаановка скороаи автоповтора, следующий байт определяет скороаь |
OxOF4 | Разрешение сканирования клавиш |
0x0F5 | Уаановка исходного соаояния (светодиоды не горят, скороаь автоповтора задана по умолчанию), сканирование клавиш запрещено |
0x0F6 | Уаановка исходного соаояния (светодиоды не горят, скороаь автоповтора задана по умолчанию), сканирование клавиш разрешено |
. 0x0F7-0xFD | Игнорируются клавиатурой |
--- OxOFE | Запрос на отправку клавиатурой последнего знака |
OxOFF | Сброс микроконтроллера клавиатуры |
Интерфейсы BIOS
При пересылке данных между процессором и контроллером клавиатуры формируются флаги, приведенные в табл. 10.6.
Таблица 10.6
Байты флагов проаой и расширенной клавиатуры
| Назначение |
(клавиша, при нажатии которой устанавливается бит) |
Флаги клавиатуры |
| Insert |
| Caps Lock |
| Num Lock |
| Scroll LOfk |
| |
| Ctrl |
| Shift (слева) |
| Shift (справа) |
Флаги расширенной клавиатуры |
| SysReq |
| Caps Lock |
| Num Lock |
| Scroll Lock |
| Alt (справа) |
| Ctrl (справа) |
| Alt (слева) |
| Ctrl (слева) |
Для получения доступа к функциям BIOS клавиатуры (табл. 10.7) используется прерывание int 16h.
Команды клавиатуры
Обработка нажатия на клавишу может быть упрощенно представлена при помощи следующего фрагмента кода в С:
switch ((Keysave = KEYREADO) & OxOFF) { Обработка клавиши, case 0x000: Клавиши специальных
функций.
case ОхОЕО:
KeySave = (Keysave >> 8) & OxOFF; Обработка
скан-кода.
break; case 0x000;
Обработка нажатия клавиши Enter.
0 ...
106107108109110111112 ...
159