Скан-коди клавіатури

Скан-код (англ. scan code) — в IBM-сумісних комп'ютерах код, наданий кожній клавіші, за допомогою якого драйвер клавіатури розпізнає, яка клавіша була натиснута. При натисканні будь-якої клавіші контролер клавіатури розпізнає клавішу та надсилає її скан-код у порт 60h. При відпусканні клавіші контролер клавіатури застарілого формату IBM PC/XT посилає в той же порт скан-код, збільшений на 80h, а нового формату IBM PC/AT - два байти: F0h і скан-код (скан-коди клавіатури AT також відрізняються від XT див. таблицю). Деякі клавіші генерують не один, а кілька скан-кодів (так, праві Alt, Ctrl, ⮨ Enter, обидві  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, ні від стану керуючих клавіш.

Esc
27
F1
112
F2
113
F3
114
F4
115
F5
116
F6
117
F7
118
F8
119
F9
120
F10
121
F11
122
F12
123
Print
Scr
Scroll
145
Break
19
~
192
1
49
2
50
3
51
4
52
5
53
6
54
7
55
8
56
9
57
0
58
-
189
=
187
Back
8
Ins
45
Home
36
PgUp
33
Num
144
/
111
*
106
-
109
Tab
9
Q
81
W
87
E
69
R
82
T
84
Y
89
U
85
I
73
O
79
P
80
[
219
]
221
\
220
Del
46
End
35
PgDn
34
7
103
8
104
9
105
+
107
Caps
20
A
65
S
83
D
68
F
70
G
71
H
72
J
74
K
75
L
76
;
186
'
222
Enter
13
4
100
5
101
6
102
Shift
16
Z
90
X
80
C
67
V
86
B
66
N
78
M
77
,
188
.
190
/
191
Shift
16
Up
38
1
97
2
98
3
99
Enter
13
Ctrl
17
Win
91
Alt Space
32
Alt Win
92
App
93
Ctrl
17
Left
37
Down
40
Right
39
0
96
.
110

Значения модификатор

Leave a Reply