Скан-код

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Скан-код — код, присвоенный каждой клавише, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата. При нажатии любой клавиши контроллер клавиатуры распознаёт клавишу и посылает её скан-код в порт 60h. При отпускании клавиши контроллер клавиатуры устаревшего формата IBM PC/XT посылает в тот же порт скан-код, увеличенный на 80h, а более нового формата IBM PC/AT — два байта: F0h и скан-код (скан-коды клавиатуры AT также отличаются от XT, см. таблицу). Некоторые клавиши генерируют не один, а несколько скан-кодов (так, правые  ⇧ Shift ,  Alt ,  Ctrl , обе  Win , а также  Menu ,  Insert ,  Delete ,  Page Up ,  Page Down ,  Home ,  End , стрелки и все ACPI- и мультимедиа-клавиши генерируют два скан-кода, первый из которых — E0, клавиша  PrtScr  генерирует 4 скан-кода, а клавиша  Pause  — целых 6 скан-кодов). Каждый байт, записанный в порт 60h, генерирует аппаратное прерывание int 09h.

Скан-коды жёстко привязаны к каждой клавише на аппаратном уровне и не зависят ни от состояния индикаторов  Caps Lock ,  Num Lock  и  Scroll Lock , ни от состояния управляющих клавиш ( ⇧ Shift ,  Alt ,  Ctrl ).

Скан-коды клавиш[править | править вики-текст]

Все скан-коды ниже даются в шестнадцатеричной системе.

Большинство скан-кодов на XT-клавиатуре соответствуют физическому местоположению клавиш, начиная с клавиш Esc (код 01) и цифровых клавиш 1-9 (коды 02-09). К примеру, клавиши второго ряда ( Tab ⇆   Q   W   E   R   T   Y   U   I   O   P   [   ]   ↵ Enter ) имеют последовательные скан-коды 0F-1C (15-28 в десятичной системе).

Клавиша Код нажатия XT Код отпускания XT Код нажатия AT Код отпускания AT
Основная клавиатура
 A  1E 9E 1C F0,1C
 B  30 B0 32 F0,32
 C  2E AE 21 F0,21
 D  20 A0 23 F0,23
 E  12 92 24 F0,24
 F  21 A1 2B F0,2B
 G  22 A2 34 F0,34
 H  23 A3 33 F0,33
 I  17 97 43 F0,43
 J  24 A4 3B F0,3B
 K  25 A5 42 F0,42
 L  26 A6 4B F0,4B
 M  32 B2 3A F0,3A
 N  31 B1 31 F0,31
 O  18 98 44 F0,44
 P  19 99 4D F0,4D
 Q  10 90 15 F0,15
 R  13 93 2D F0,2D
 S  1F 9F 1B F0,1B
 T  14 94 2C F0,2C
 U  16 96 3C F0,3C
 V  2F AF 2A F0,2A
 W  11 91 1D F0,1D
 X  2D AD 22 F0,22
 Y  15 95 35 F0,35
 Z  2C AC 1A F0,1A
 0  0B 8B 45 F0,45
 1  02 82 16 F0,16
 2  03 83 1E F0,1E
 3  04 84 26 F0,26
 4  05 85 25 F0,25
 5  06 86 2E F0,2E
 6  07 87 36 F0,36
 7  08 88 3D F0,3D
 8  09 89 3E F0,3E
 9  0A 8A 46 F0,46
 ~  29 89 0E F0,0E
 -  0C 8C 4E F0,4E
 =  0D 82 55 F0,55
 \  2B AB 5D F0,5D
 [  1A 9A 54 F0,54
 ]  1B 9B 5B F0,5B
 ;  27 A7 4C F0,4C
 '  28 A8 52 F0,52
 ,  33 B3 41 F0,41
 .  34 B4 49 F0,49
 /  35 B5 4A F0,4A
 ← Backspace  0E 8E 66 F0,66
 Space  39 B9 29 F0,29
 Tab ⇆  0F 8F 0D F0,0D
 Caps Lock  3A BA 58 F0,58
Левый  ⇧ Shift  2A AA 12 F0,12
Левый  Ctrl  1D 9D 14 F0,14
Левый  Alt  38 B8 11 F0,11
Левый  Win  E0,5B E0,DB E0,1F E0,F0,1F
Правый  ⇧ Shift  36 B6 59 F0,59
Правый  Ctrl  E0,1D E0,9D E0,14 E0,F0,14
Правый  Alt  E0,38 E0,B8 E0,11 E0,F0,11
Правый  Win  E0,5C E0,DC E0,27 E0,F0,27
 Menu  E0,5D E0,DD E0,2F E0,F0,2F
 ↵ Enter  1C 9C 5A F0,5A
 Esc  01 81 76 F0,76
 F1  3B BB 05 F0,05
 F2  3C BC 06 F0,06
 F3  3D BD 04 F0,04
 F4  3E BE 0C F0,0C
 F5  3F BF 03 F0,03
 F6  40 C0 0B F0,0B
 F7  41 C1 83 F0,83
 F8  42 C2 0A F0,0A
 F9  43 C3 01 F0,01
 F10  44 C4 09 F0,09
 F11  57 D7 78 F0,78
 F12  58 D8 07 F0,07
 PrtScr  E0,2A,E0,37 E0,B7,E0,AA E0,12,E0,7C E0,F0,7C,E0,F0,12
 Scroll Lock  46 C6 7E F0,7E
 Pause  E1,1D,45, E1,9D,C5 E1,14,77,E1,F0,14,F0,77
 Insert  E0,52 E0,D2 E0,70 E0,F0,70
 Home  E0,47 E0,C7 E0,6C E0,F0,6C
 End  E0,4F E0,CF E0,69 E0,F0,69
 Page Up  E0,49 E0,C9 E0,7D E0,F0,7D
 Page Down  E0,51 E0,D3 E0,7A E0,F0,7A
 Delete  E0,53 E0,D3 E0,71 E0,F0,71
 ↑  E0,48 E0,C8 E0,75 E0,F0,75
 ←  E0,4B E0,CB E0,6B E0,F0,6B
 ↓  E0,50 50,D0 E0,70 E0,F0,70
 →  E0,4D E0,CD E0,74 E0,F0,74
Цифровая клавиатура
 Num Lock  45 C5 77 F0,77
 /  E0,35 E0,B5 E0,4A E0,F0,4A
 *  37 B7 7C F0,7C
 -  4A CA 7B F0,7B
 +  4E CE 79 F0,79
 ↵ Enter  E0,1C E0,9C E0,5A E0,F0,5A
 .  53 D3 71 F0,71
 0  52 D2 70 F0,70
 1  4F CF 69 F0,69
 2  50 D0 72 F0,72
 3  51 D1 7A F0,7A
 4  4B CB 6B F0,6B
 5  4C CC 73 F0,73
 6  4D CD 74 F0,74
 7  47 C7 6C F0,6C
 8  48 C8 75 F0,75
 9  49 C9 7D F0,7D
Клавиши ACPI
 Power  E0,5E E0,DE E0,37 E0,F0,37
 Sleep  E0,5F E0,DF E0,3F E0,F0,3F
 Wake  E0,63 E0,E3 E0,5E E0,F0,5E
Мультимедиа клавиши
Управление проигрывателем
Следующий трек E0,19 E0, 99 E0, 4D E0,F0,4D
Предыдущий трек E0,10 E0, 90 E0,15 E0,F0,15
Остановить E0,24 E0,A4 E0,3B E0,F0,3B
Проигрывать/пауза E0,22 E0,A2 E0,3B E0,F0,3B
Звук вкл/откл E0,20 E0,A0 E0,23 E0,F0,23
Увеличить громкость E0,30 E0,B0 E0,32 E0,F0,32
Уменьшить громкость E0,2E E0,AE E0,21 E0,F0,21
Управление браузером
Поиск E0,65 E0,E5 E0,10 E0,F0,10
Домашняя страница E0,32 E0,B2 E0,3A E0,F0,3A
Назад E0,6A E0,EA E0,38 E0,F0,38
Вперед E0,69 E0,E9 E0,30 E0,F0,30
Стоп E0,68 E0, E8 E0,28 E0,F0,28
Обновить E0,67 E0,E7 E0,20 E0,F0,20
Закладки E0,66 E0, E6 E0,18 E0,F0,18
Управление приложениями
Media Select E0,6D E0,ED E0,50 E0,F0,50
Электронная почта E0,6C E0,EC E0,48 E0,F0,48
Калькулятор E0,21 E0,A1 E0,2B E0,F0,2B
Мой компьютер E0,6B E0,EB E0,40 E0,F0,40

См. также[править | править вики-текст]

Раскладка 105-клавишной клавиатуры IBM/Windows
Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 PrtSc
SysRq
Scroll
Lock
Pause
Break
Тильда Восклицательный знак @ Кавычки Решётка (клавиша) Знак номера Символ доллара Точка с запятой Процент Циркумфлекс Двоеточие Амперсанд Вопросительный знак Звёздочка (типографика) Круглые скобки Круглые скобки Подчёркивание Сложение Backspace Машинописный обратный апостроф Ё 1 (цифра) 2 (цифра) 3 (цифра) 4 (цифра) 5 (цифра) 6 (цифра) 7 (цифра) 8 (цифра) 9 (цифра) 0 (цифра) Дефис Знак равенства Backspace Табуляция Q (латиница) W (латиница) E (латиница) R (латиница) T (латиница) Y (латиница) U (латиница) I (латиница) O (латиница) P (латиница) Фигурные скобки Фигурные скобки Клавиша ввода Табуляция Й Ц У (кириллица) К Е Н (кириллица) Г Ш Щ З Квадратные скобки Х (кириллица) Квадратные скобки Ъ Клавиша ввода Caps Lock A (латиница) S (латиница) D (латиница) F (латиница) G (латиница) H (латиница) J (латиница) K (латиница) L (латиница) Двоеточие Кавычки Вертикальная черта Косая черта Клавиша ввода Caps Lock Ф Ы В А П Р (кириллица) О (кириллица) Л Д Точка с запятой Ж Машинописный апостроф Э Обратная косая черта Ввод (клавиша) Shift Вертикальная черта Z (латиница) X (латиница) C (латиница) V (латиница) B (латиница) N (латиница) M (латиница) Угловые скобки Угловые скобки Вопросительный знак Запятая Shift Shift Обратная косая черта Я Ч С (кириллица) М (кириллица) И Т (кириллица) Ь Запятая Б Точка (знак препинания) Ю Косая черта Точка (знак препинания) Shift Ctrl Windows (клавиша) Alt Пробел AltGr (клавиша) Windows (клавиша) Menu (клавиша) CtrlKB Eng-Rus QWERTY(ЙЦУКЕН).svg
Ins Home PgUp NumLk / *
Del End PgDn 7 8 9 +
4 5 6
1 2 3 Ent
0 ,

Ссылки[править | править вики-текст]