主要キーレイアウトのキーとその Scancode まとめ
- Published
- Category
- Input
Table of contents
Changelog
- ISO (102/105) と AX のヘッダーが逆になっていたのを修正
[
と{
、]
と}
がそれぞれ逆になっていたのを修正- 重要なリンク先が参考資料から抜けていたので追記
概要
PS/2 キーボードの scancode を、その起源となるらしいいわゆる XT とか 83 キーボードから、昨今日本で一般的ないわゆる JIS とか 109 キーボードまで、Scancode set 1,2,3 とともに1つの表にまとめた。 一部特殊なキーは別の表でも説明している。各キーレイアウトの No. は元となる仕様書で定義されるキー位置番号であり、それぞれ本文書後半にて引用した画像にて画像でも示す。
各キーレイアウトとスキャンコード
ID | Key | Scancode Set 1 | Scancode Set 2 | Scancode Set 3 | note | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5150, XT (83) | AT (84) | ANSI (101/104) | ISO (102/105) | AX | JIS (106/109) | Make | Break | Make | Break | Make | Break | Key State | |||||||||||||||||
No. | base | shift | No. | base | shift | No. | base | shift | No. | base | shift | diff | No. | base | shift | diff | No. | base | shift | diff | |||||||||
1 | 1 | Esc | 90 | Esc | 110 | Esc | 110 | Esc | 1 | Esc | 110 | Esc | 01 |
81 |
76 |
F0 76 |
08 |
F0 08 |
Make only | ||||||||||
2 | 2 | 1 | ! | 2 | 1 | ! | 2 | 1 | ! | 2 | 1 | ! | 2 | 1 | ! | 2 | 1 | ! | 02 |
82 |
16 |
F0 16 |
16 |
F0 16 |
Typematic | ||||
3 | 3 | 2 | @ | 3 | 2 | @ | 3 | 2 | @ | 3 | 2 | " | ✓ | 3 | 2 | @ | 3 | 2 | " | ✓ | 03 |
83 |
1E |
F0 1E |
1E |
F0 1E |
Typematic | ||
4 | 4 | 3 | # | 4 | 3 | # | 4 | 3 | # | 4 | 3 | £ | ✓ | 4 | 3 | # | 4 | 3 | # | 04 |
84 |
26 |
F0 26 |
26 |
F0 26 |
Typematic | |||
5 | 5 | 4 | $ | 5 | 4 | $ | 5 | 4 | $ | 5 | 4 | $ | 5 | 4 | $ | 5 | 4 | $ | 05 |
85 |
25 |
F0 25 |
25 |
F0 25 |
Typematic | ||||
6 | 6 | 5 | % | 6 | 5 | % | 6 | 5 | % | 6 | 5 | % | 6 | 5 | % | 6 | 5 | % | 06 |
86 |
2E |
F0 2E |
2E |
F0 2E |
Typematic | ||||
7 | 7 | 6 | ^ | 7 | 6 | ^ | 7 | 6 | ^ | 7 | 6 | ^ | 7 | 6 | ^ | 7 | 6 | & | ✓ | 07 |
87 |
36 |
F0 36 |
36 |
F0 36 |
Typematic | |||
8 | 8 | 7 | & | 8 | 7 | & | 8 | 7 | & | 8 | 7 | & | 8 | 7 | & | 8 | 7 | * | ✓ | 08 |
88 |
3d |
F0 3d |
3d |
F0 3d |
Typematic | |||
9 | 9 | 8 | * | 9 | 8 | * | 9 | 8 | * | 9 | 8 | * | 9 | 8 | * | 9 | 8 | ( | ✓ | 09 |
89 |
3E |
F0 3E |
3E |
F0 3E |
Typematic | |||
10 | 10 | 9 | ( | 10 | 9 | ( | 10 | 9 | ( | 10 | 9 | ( | 10 | 9 | ( | 10 | 9 | ) | ✓ | 0A |
8A |
46 |
F0 46 |
46 |
F0 46 |
Typematic | |||
11 | 11 | 0 | ) | 11 | 0 | ) | 11 | 0 | ) | 11 | 0 | ) | 11 | 0 | ) | 11 | 0 | ✓ | 0B |
8B |
45 |
F0 45 |
45 |
F0 45 |
Typematic | ||||
12 | 12 | - | _ | 12 | - | _ | 12 | - | _ | 12 | - | _ | 12 | - | _ | 12 | - | = | ✓ | 0C |
8C |
4E |
F0 4E |
4E |
F0 4E |
Typematic | |||
13 | 13 | = | + | 13 | = | + | 13 | = | + | 13 | = | + | 13 | = | + | 13 | ^ | ~ | ✓ | 0D |
8D |
55 |
F0 55 |
55 |
F0 55 |
Typematic | |||
14 | 14 | Backspace | 15 | Backspace | 15 | Backspace | 15 | Backspace | 15 | Backspace | 15 | Backspace | 0E |
8E |
66 |
F0 66 |
66 |
F0 66 |
Typematic | ||||||||||
15 | 15 | Tab | 16 | Tab | 16 | Tab | 16 | Tab | 16 | Tab | 16 | Tab | 0F |
8F |
0D |
F0 0D |
0D |
F0 0D |
Typematic | ||||||||||
16 | 16 | Q | 17 | Q | 17 | Q | 17 | Q | 17 | Q | 17 | Q | 10 |
90 |
15 |
F0 15 |
15 |
F0 15 |
Typematic | ||||||||||
17 | 17 | W | 18 | W | 18 | W | 18 | W | 18 | W | 18 | W | 11 |
91 |
1D |
F0 1D |
1D |
F0 1D |
Typematic | ||||||||||
18 | 18 | E | 19 | E | 19 | E | 19 | E | 19 | E | 19 | E | 12 |
92 |
24 |
F0 24 |
24 |
F0 24 |
Typematic | ||||||||||
19 | 19 | R | 20 | R | 20 | R | 20 | R | 20 | R | 20 | R | 13 |
93 |
2D |
F0 2D |
2D |
F0 2D |
Typematic | ||||||||||
20 | 20 | T | 21 | T | 21 | T | 21 | T | 21 | T | 21 | T | 14 |
94 |
2C |
F0 2C |
2C |
F0 2C |
Typematic | ||||||||||
21 | 21 | Y | 22 | Y | 22 | Y | 22 | Y | 22 | Y | 22 | Y | 15 |
95 |
35 |
F0 35 |
35 |
F0 35 |
Typematic | ||||||||||
22 | 22 | U | 23 | U | 23 | U | 23 | U | 23 | U | 23 | U | 16 |
96 |
3C |
F0 3C |
3C |
F0 3C |
Typematic | ||||||||||
23 | 23 | I | 24 | I | 24 | I | 24 | I | 24 | I | 24 | I | 17 |
97 |
43 |
F0 43 |
43 |
F0 43 |
Typematic | ||||||||||
24 | 24 | O | 25 | O | 25 | O | 25 | O | 25 | O | 25 | O | 18 |
98 |
44 |
F0 44 |
44 |
F0 44 |
Typematic | ||||||||||
25 | 25 | P | 26 | P | 26 | P | 26 | P | 26 | P | 26 | P | 19 |
99 |
4D |
F0 4D |
4D |
F0 4D |
Typematic | ||||||||||
26 | 26 | [ | { | 27 | [ | { | 27 | [ | { | 27 | [ | { | 27 | [ | { | 27 | @ | ` | ✓ | 1A |
9A |
54 |
F0 54 |
54 |
F0 54 |
Typematic | |||
27 | 27 | ] | } | 28 | ] | } | 28 | ] | } | 28 | ] | } | 28 | ] | } | 28 | [ | { | ✓ | 1B |
9B |
5B |
F0 5B |
5B |
F0 5B |
Typematic | |||
28 | 28 | Enter | 43 | Enter | 43 | Enter | 43 | Enter | 43 | Enter | 43 | Enter | 1C |
9C |
5A |
F0 5A |
5A |
F0 5A |
Typematic | ||||||||||
29 | 29 | LCtrl | 30 | LCtrl | 58 | LCtrl | 58 | LCtrl | 30 | LCtrl | 58 | LCtrl | 1D |
9D |
14 |
F0 14 |
11 |
F0 11 |
Make/Break | ||||||||||
30 | 30 | A | 31 | A | 31 | A | 31 | A | 31 | A | 31 | A | 1E |
9E |
1C |
F0 1C |
1C |
F0 1C |
Typematic | ||||||||||
31 | 31 | S | 32 | S | 32 | S | 32 | S | 32 | S | 32 | S | 1F |
9F |
1B |
F0 1B |
1B |
F0 1B |
Typematic | ||||||||||
32 | 32 | D | 33 | D | 33 | D | 33 | D | 33 | D | 33 | D | 20 |
A0 |
23 |
F0 23 |
23 |
F0 23 |
Typematic | ||||||||||
33 | 33 | F | 34 | F | 34 | F | 34 | F | 34 | F | 34 | F | 21 |
A1 |
2B |
F0 2B |
2B |
F0 2B |
Typematic | ||||||||||
34 | 34 | G | 35 | G | 35 | G | 35 | G | 35 | G | 35 | G | 22 |
A2 |
34 |
F0 34 |
34 |
F0 34 |
Typematic | ||||||||||
35 | 35 | H | 36 | H | 36 | H | 36 | H | 36 | H | 36 | H | 23 |
A3 |
33 |
F0 33 |
33 |
F0 33 |
Typematic | ||||||||||
36 | 36 | J | 37 | J | 37 | J | 37 | J | 37 | J | 37 | J | 24 |
A4 |
3B |
F0 3B |
3B |
F0 3B |
Typematic | ||||||||||
37 | 37 | K | 38 | K | 38 | K | 38 | K | 38 | K | 38 | K | 25 |
A5 |
42 |
F0 42 |
42 |
F0 42 |
Typematic | ||||||||||
38 | 38 | L | 39 | L | 39 | L | 39 | L | 39 | L | 39 | L | 26 |
A6 |
4B |
F0 4B |
4B |
F0 4B |
Typematic | ||||||||||
39 | 39 | ; | : | 40 | ; | : | 40 | ; | : | 40 | ; | : | 40 | ; | : | 40 | ; | + | ✓ | 27 |
A7 |
4C |
F0 4C |
4C |
F0 4C |
Typematic | |||
40 | 40 | ' | " | 41 | ' | " | 41 | ' | " | 41 | ' | @ | ✓ | 41 | ' | " | 41 | : | * | ✓ | 28 |
A8 |
52 |
F0 52 |
52 |
F0 52 |
Typematic | ||
41 | 41 | ` | ~ | 1 | ` | ~ | 1 | ` | ~ | 1 | ` | ¬ | ✓ | 42 | ` | ~ | 1 | Hankaku / Zenkaku | ✓ | 29 |
A9 |
0E |
F0 0E |
0E |
F0 0E |
Typematic | |||
42 | 42 | LShift | 44 | LShift | 44 | LShift | 44 | LShift | 44 | LShift | 44 | LShift | 2A |
AA |
12 |
F0 12 |
12 |
F0 12 |
Make/Break | ||||||||||
43 | 43 | \ | | | 45 | \ | | | 29 | \ | | | 42 | # | ~ | ✓ | 14 | ¥ | | | ✓ | 42 | ] | } | ✓ | 2B |
AB |
5D |
F0 5D |
5C |
F0 5C |
Typematic | |
44 | 44 | Z | 46 | Z | 46 | Z | 46 | Z | 46 | Z | 46 | Z | 2C |
AC |
1A |
F0 1A |
1A |
F0 1A |
Typematic | ||||||||||
45 | 45 | X | 47 | X | 47 | X | 47 | X | 47 | X | 47 | X | 2D |
AD |
22 |
F0 22 |
22 |
F0 22 |
Typematic | ||||||||||
46 | 46 | C | 48 | C | 48 | C | 48 | C | 48 | C | 48 | C | 2E |
AE |
21 |
F0 21 |
21 |
F0 21 |
Typematic | ||||||||||
47 | 47 | V | 49 | V | 49 | V | 49 | V | 49 | V | 49 | V | 2F |
AF |
2A |
F0 2A |
2A |
F0 2A |
Typematic | ||||||||||
48 | 48 | B | 50 | B | 50 | B | 50 | B | 50 | B | 50 | B | 30 |
B0 |
32 |
F0 32 |
32 |
F0 32 |
Typematic | ||||||||||
49 | 49 | N | 51 | N | 51 | N | 51 | N | 51 | N | 51 | N | 31 |
B1 |
31 |
F0 31 |
31 |
F0 31 |
Typematic | ||||||||||
50 | 50 | M | 52 | M | 52 | M | 52 | M | 52 | M | 52 | M | 32 |
B2 |
3A |
F0 3A |
3A |
F0 3A |
Typematic | ||||||||||
51 | 51 | , | < | 53 | , | < | 53 | , | < | 53 | , | < | 53 | , | < | 53 | , | < | 33 |
B3 |
41 |
F0 41 |
41 |
F0 41 |
Typematic | ||||
52 | 52 | . | > | 54 | . | > | 54 | . | > | 54 | . | > | 54 | . | > | 54 | . | > | 34 |
B4 |
49 |
F0 49 |
49 |
F0 49 |
Typematic | ||||
53 | 53 | / | ? | 55 | / | ? | 55 | / | ? | 55 | / | ? | 55 | / | ? | 55 | / | ? | 35 |
B5 |
4A |
F0 4A |
4A |
F0 4A |
Typematic | ||||
54 | 54 | RShift | 57 | RShift | 57 | RShift | 57 | RShift | 57 | RShift | 57 | RShift | 36 |
B6 |
59 |
F0 59 |
59 |
F0 59 |
Make/Break | ||||||||||
55 | 55 | KP-* | 106 | KP-* | 100 | KP-* | 100 | KP-* | 100 | KP-* | 100 | KP-* | 37 |
B7 |
7C |
F0 7C |
7E |
F0 7E |
Make only | ||||||||||
56 | 56 | LAlt | 58 | LAlt | 60 | LAlt | 60 | LAlt | 60 | LAlt | 60 | LAlt | 38 |
B8 |
11 |
F0 11 |
19 |
F0 19 |
Make/Break | ||||||||||
57 | 57 | space | 61 | space | 61 | space | 61 | space | 61 | space | 61 | space | 39 |
B9 |
29 |
F0 29 |
29 |
F0 29 |
Typematic | ||||||||||
58 | 58 | CapsLock | 64 | CapsLock | 30 | CapsLock | 30 | CapsLock | 58 | CapsLock | 30 | Eisu / CapsLock | ✓ | 3A |
BA |
58 |
F0 58 |
14 |
F0 14 |
Make/Break | |||||||||
59 | 59 | F1 | 70 | F1 | 112 | F1 | 112 | F1 | 112 | F1 | 112 | F1 | 3B |
BB |
05 |
F0 05 |
07 |
F0 07 |
Make only | ||||||||||
60 | 60 | F2 | 65 | F2 | 113 | F2 | 113 | F2 | 113 | F2 | 113 | F2 | 3C |
BC |
06 |
F0 06 |
0F |
F0 0F |
Make only | ||||||||||
61 | 61 | F3 | 71 | F3 | 114 | F3 | 114 | F3 | 114 | F3 | 114 | F3 | 3D |
BD |
04 |
F0 04 |
17 |
F0 17 |
Make only | ||||||||||
62 | 62 | F4 | 66 | F4 | 115 | F4 | 115 | F4 | 115 | F4 | 115 | F4 | 3E |
BE |
0C |
F0 0C |
1F |
F0 1F |
Make only | ||||||||||
63 | 63 | F5 | 72 | F5 | 116 | F5 | 116 | F5 | 116 | F5 | 116 | F5 | 3F |
BF |
03 |
F0 03 |
27 |
F0 27 |
Make only | ||||||||||
64 | 64 | F6 | 67 | F6 | 117 | F6 | 117 | F6 | 117 | F6 | 117 | F6 | 40 |
C0 |
0B |
F0 0B |
2F |
F0 2F |
Make only | ||||||||||
65 | 65 | F7 | 73 | F7 | 118 | F7 | 118 | F7 | 118 | F7 | 118 | F7 | 41 |
C1 |
83 |
F0 83 |
37 |
F0 37 |
Make only | ||||||||||
66 | 66 | F8 | 68 | F8 | 119 | F8 | 119 | F8 | 119 | F8 | 119 | F8 | 42 |
C2 |
0A |
F0 0A |
3F |
F0 3F |
Make only | ||||||||||
67 | 67 | F9 | 74 | F9 | 120 | F9 | 120 | F9 | 120 | F9 | 120 | F9 | 43 |
C3 |
01 |
F0 01 |
47 |
F0 47 |
Make only | ||||||||||
68 | 68 | F10 | 69 | F10 | 121 | F10 | 121 | F10 | 121 | F10 | 121 | F10 | 44 |
C4 |
09 |
F0 09 |
4F |
F0 4F |
Make only | ||||||||||
69 | 69 | NumLock | 95 | NumLock | 90 | NumLock | 90 | NumLock | 90 | NumLock | 90 | NumLock | 45 |
C5 |
77 |
F0 77 |
76 |
F0 76 |
Make only | ||||||||||
70 | 70 | ScrollLock | 100 | ScrollLock | 125 | ScrollLock | 125 | ScrollLock | 125 | ScrollLock | 125 | ScrollLock | 46 |
C6 |
7E |
F0 7E |
5F |
F0 5F |
Make only | ||||||||||
71 | 71 | KP-7 | Home | 91 | KP-7 | Home | 91 | KP-7 | Home | 91 | KP-7 | Home | 91 | KP-7 | Home | 91 | KP-7 | Home | 47 |
C7 |
6C |
F0 6C |
6C |
F0 6C |
Make only | ||||
72 | 72 | KP-8 | Up | 96 | KP-8 | Up | 96 | KP-8 | Up | 96 | KP-8 | Up | 96 | KP-8 | Up | 96 | KP-8 | Up | 48 |
C8 |
75 |
F0 75 |
75 |
F0 75 |
Make only | ||||
73 | 73 | KP-9 | PgUp | 101 | KP-9 | PgUp | 101 | KP-9 | PgUp | 101 | KP-9 | PgUp | 101 | KP-9 | PgUp | 101 | KP-9 | PgUp | 49 |
C9 |
7D |
F0 7D |
7E |
F0 7E |
Make only | ||||
74 | 74 | KP-- | 107 | KP-- | 105 | KP-- | 105 | KP-- | 105 | KP-- | 105 | KP-- | 4A |
CA |
7B |
F0 7B |
84 |
F0 84 |
Make only | ||||||||||
75 | 75 | KP-4 | Left | 92 | KP-4 | Left | 92 | KP-4 | Left | 92 | KP-4 | Left | 92 | KP-4 | Left | 92 | KP-4 | Left | 4B |
CB |
6B |
F0 6B |
6B |
F0 6B |
Make only | ||||
76 | 76 | KP-5 | 97 | KP-5 | 97 | KP-5 | 97 | KP-5 | 97 | KP-5 | 97 | KP-5 | 4C |
CC |
73 |
F0 73 |
73 |
F0 73 |
Make only | ||||||||||
77 | 77 | KP-6 | Right | 102 | KP-6 | Right | 102 | KP-6 | Right | 102 | KP-6 | Right | 102 | KP-6 | Right | 102 | KP-6 | Right | 4D |
CD |
74 |
F0 74 |
74 |
F0 74 |
Make only | ||||
78 | 78 | KP-+ | 108 | KP-+ | 106 | KP-+ | 106 | KP-+ | 106 | KP-+ | 106 | KP-+ | 4E |
CE |
79 |
F0 79 |
7C |
F0 7C |
Typematic | ||||||||||
79 | 79 | KP-1 | End | 93 | KP-1 | End | 93 | KP-1 | End | 93 | KP-1 | End | 93 | KP-1 | End | 93 | KP-1 | End | 4F |
CF |
69 |
F0 69 |
69 |
F0 69 |
Make only | ||||
80 | 80 | KP-2 | Down | 98 | KP-2 | Down | 98 | KP-2 | Down | 98 | KP-2 | Down | 98 | KP-2 | Down | 98 | KP-2 | Down | 50 |
D0 |
72 |
F0 72 |
72 |
F0 72 |
Make only | ||||
81 | 81 | KP-3 | PgDn | 103 | KP-3 | PgDn | 103 | KP-3 | PgDn | 103 | KP-3 | PgDn | 103 | KP-3 | PgDn | 103 | KP-3 | PgDn | 51 |
D1 |
7A |
F0 7A |
7A |
F0 7A |
Make only | ||||
82 | 82 | KP-0 | Insert | 99 | KP-0 | Insert | 99 | KP-0 | Insert | 99 | KP-0 | Insert | 99 | KP-0 | Insert | 99 | KP-0 | Insert | 52 |
D2 |
70 |
F0 70 |
70 |
F0 70 |
Make only | ||||
83 | 83 | KP-. | Delete | 104 | KP-. | Delete | 104 | KP-. | Delete | 104 | KP-. | Delete | 104 | KP-. | Delete | 104 | KP-. | Delete | 53 |
D3 |
71 |
F0 71 |
71 |
F0 71 |
Make only | ||||
84 | - | N/A | 105 | SysReq | - | N/A | - | N/A | - | N/A | - | N/A | 54 |
D4 |
7B |
F0 7B |
84 |
F0 84 |
Make only | ||||||||||
85 | - | N/A | - | N/A | 45 | N/A | 45 | \ | | | ✓ | 56 | \ | | | ✓ | - | N/A | 56 |
D6 |
61 |
F0 61 |
13 |
F0 13 |
Typematic | ||||||
86 | - | N/A | - | N/A | 122 | F11 | 122 | F11 | 122 | F11 | 122 | F11 | 57 |
D7 |
78 |
F0 78 |
56 |
F0 56 |
Make only | ||||||||||
87 | - | N/A | - | N/A | 123 | F12 | 123 | F12 | 123 | F12 | 123 | F12 | 58 |
D8 |
07 |
F0 07 |
5E |
F0 5E |
Make only | ||||||||||
88 | - | N/A | - | N/A | - | N/A | - | N/A | 70 | Nonconvert | ✓ | - | N/A | 5A |
DA |
17 |
F0 17 |
- | - | - | |||||||||
89 | - | N/A | - | N/A | - | N/A | - | N/A | 71 | Convert | ✓ | - | N/A | 5B |
DB |
1F |
F0 1F |
- | - | - | |||||||||
90 | - | N/A | - | N/A | - | N/A | - | N/A | - | N/A | 133 | Hira / Kana | ✓ | 70 |
F0 |
13 |
F0 13 |
87 |
F0 87 |
Make only | |||||||||
91 | - | N/A | - | N/A | - | N/A | - | N/A | - | N/A | 56 | \ | _ | ✓ | 73 |
F3 |
51 |
F0 51 |
51 |
F0 51 |
Typematic | ||||||||
92 | - | N/A | - | N/A | - | N/A | - | N/A | - | N/A | 132 | Convert | ✓ | 79 |
F9 |
64 |
F0 64 |
86 |
F0 86 |
Make only | |||||||||
93 | - | N/A | - | N/A | - | N/A | - | N/A | - | N/A | 131 | Nonconvert | ✓ | 7B |
FB |
67 |
F0 67 |
85 |
F0 85 |
Make only | |||||||||
94 | - | N/A | - | N/A | - | N/A | - | N/A | - | N/A | 14 | ¥ | | | ✓ | 7D |
FD |
6A |
F0 6A |
5D |
F0 5D |
Typematic | ||||||||
95 | - | N/A | - | N/A | 108 | KP-Enter | 108 | KP-Enter | 108 | KP-Enter | 108 | KP-Enter | E0 1C |
E0 9C |
E0 5A |
E0 F0 5A |
79 |
F0 79 |
Make only | ||||||||||
96 | - | N/A | - | N/A | 64 | RCtrl | 64 | RCtrl | 64 | Eisu/Kana | ✓ | 64 | RCtrl | E0 1D |
E0 9D |
E0 14 |
E0 F0 14 |
58 |
F0 58 |
Make only | |||||||||
\ | - | N/A | - | N/A | 124 | PrtScr | 124 | PrtScr | 124 | PrtScr | 124 | PrtScr | E0 2A |
E0 B7 |
E0 12 |
E0 F0 7C |
57 |
F0 57 |
Make only | *3 | |||||||||
98 | - | N/A | - | N/A | 95 | KP-/ | 95 | KP-/ | 95 | KP-/ | 95 | KP-/ | E0 35 |
E0 B5 |
E0 4A |
E0 F0 4A |
77 |
F0 77 |
Make only | *2 | |||||||||
99 | - | N/A | - | N/A | 62 | RAlt | 62 | Alt Gr | ✓ | 62 | Kanji | ✓ | 62 | RAlt | E0 38 |
E0 B8 |
E0 11 |
E0 F0 11 |
39 |
F0 39 |
Make only | ||||||||
100 | - | N/A | - | N/A | 80 | Home | 80 | Home | 80 | Home | 80 | Home | E0 47 |
E0 C7 |
E0 6C |
E0 F0 6C |
6E |
F0 6E |
Make only | *1 | |||||||||
101 | - | N/A | - | N/A | 83 | Up | 83 | Up | 83 | Up | 83 | Up | E0 48 |
E0 C8 |
E0 75 |
E0 F0 75 |
63 |
F0 63 |
Typematic | *1 | |||||||||
102 | - | N/A | - | N/A | 85 | PgUp | 85 | PgUp | 85 | PgUp | 85 | PgUp | E0 49 |
E0 C9 |
E0 7D |
E0 F0 7D |
6F |
F0 6F |
Make only | *1 | |||||||||
103 | - | N/A | - | N/A | 79 | Left | 79 | Left | 79 | Left | 79 | Left | E0 4B |
E0 CB |
E0 6B |
E0 F0 6B |
61 |
F0 61 |
Typematic | *1 | |||||||||
104 | - | N/A | - | N/A | 89 | Right | 89 | Right | 89 | Right | 89 | Right | E0 4D |
E0 CD |
E0 74 |
E0 F0 74 |
6A |
F0 6A |
Typematic | *1 | |||||||||
105 | - | N/A | - | N/A | 81 | End | 81 | End | 81 | End | 81 | End | E0 4F |
E0 CF |
E0 69 |
E0 F0 69 |
65 |
F0 65 |
Make only | *1 | |||||||||
106 | - | N/A | - | N/A | 84 | Down | 84 | Down | 84 | Down | 84 | Down | E0 50 |
E0 D0 |
E0 72 |
E0 F0 72 |
60 |
F0 60 |
Typematic | *1 | |||||||||
107 | - | N/A | - | N/A | 86 | PgDn | 86 | PgDn | 86 | PgDn | 86 | PgDn | E0 51 |
E0 D1 |
E0 7A |
E0 F0 7A |
6D |
F0 6d |
Make only | *1 | |||||||||
108 | - | N/A | - | N/A | 75 | Insert | 75 | Insert | 75 | Insert | 75 | Insert | E0 52 |
E0 D2 |
E0 70 |
E0 F0 70 |
67 |
F0 67 |
Make only | *1 | |||||||||
109 | - | N/A | - | N/A | 76 | Delete | 76 | Delete | 76 | Delete | 76 | Delete | E0 53 |
E0 D3 |
E0 71 |
E0 F0 71 |
64 |
F0 64 |
Typematic | *1 | |||||||||
110 | - | N/A | - | N/A | Add 1 | LWin | Add 1 | LWin | - | N/A | ✓ | Add 1 | LWin | E0 5B |
E0 DB |
E0 1F |
E0 F0 1F |
8B |
F0 8B |
Make only | |||||||||
111 | - | N/A | - | N/A | Add 2 | RWin | Add 2 | RWin | - | N/A | ✓ | Add 2 | RWin | E0 5C |
E0 DC |
E0 27 |
E0 F0 27 |
8C |
F0 8C |
Make only | |||||||||
112 | - | N/A | - | N/A | Add 3 | Menu | Add 3 | Menu | - | N/A | ✓ | Add 3 | Menu | E0 5D |
E0 DD |
E0 2F |
E0 F0 2F |
8D |
F0 8D |
Make only | |||||||||
113 | - | N/A | - | N/A | - | Power | - | Power | - | N/A | ✓ | - | Power | E0 5E |
E0 DF |
E0 37 |
E0 F0 37 |
- | - | - | |||||||||
114 | - | N/A | - | N/A | - | Sleep | - | Sleep | - | N/A | ✓ | - | Sleep | E0 5F |
E0 DE |
E0 3F |
E0 F0 3F |
- | - | - | |||||||||
115 | - | N/A | - | N/A | - | Wake | - | Wake | - | N/A | ✓ | - | Wake | E0 63 |
E0 E3 |
E0 5E |
E0 F0 5E |
- | - | - | |||||||||
116 | - | N/A | - | N/A | 126 | Pause | 126 | Pause | 126 | Pause | 126 | Pause | E1 1D 45 |
- | E1 14 77 |
- | 62 |
F0 62 |
Make only | *4 |
Note 列に *1, *2, *3, *4 が記載されているキーについては、Scancode set 1, 2 が歴史的経緯により特殊な構成となっているため、別途下記で解説する。 なお Scancode set 3 についてはそのような経緯はあまりないらしくすっきりした構成となっている。元々 IBM 3270 PC や一部のワークステーションのキーボードで使われていたようだが、あまり使われず今日ではほぼ気にしなくていい存在の模様。 一次資料が全然見つからないのでふんわりとした説明で濁しておく。
*1: 一部の特殊キー(KP-/, PrintScreen, Pause キーを除く)
Scancode (set 1) が E0 47
, E0 48
, E0 49
, E0 4B
, E0 4D
, E0 4F
, E0 50
, E0 51
, E0 52
, E0 53
, つまり Home, Up, PgUp, Left, Right, End, Down, PgDn, Insert, Delete のキーについては元々テンキーで Num Lock
オフ時に発生するキーのため、Shift
や Num Lock
もしくはその両方の組み合わせでの scancode が特殊になっている。
なお参考資料には、Shift キーを両方押した場合、左右の scancode が送られるとある(If both Shift keys are down, both sets of codes are sent with the other scan code.
)が、左右の順序までは記載されていないので、基本となる左が先だろうと推測した上で下記表は書いてある。
もしかしたら右側が先かもしれないし、どちらが先でもよいのかもしれないし、正解は分からずじまい。たぶん後者な気がするが、正解分かる方は教えてほしい……。
Key State | Make scancode pattern | Break scancode pattern |
---|---|---|
Base Case, Shift+Num Lock | Base Make |
Base Break |
Shift Case (Left or Right) | E0 + Shift Break + Base Make |
Base Break + E0 + Shift Make |
Shift Case (Both) | E0 + Left Shift Break + E0 + Right Shift Break + Base Make |
Base Break + E0 + Left Shift Make + E0 + Right Shift Make |
Num Lock on | E0 + Shift Make + Base Make |
Base Break + E0 + Shift Make |
*2: KP-/ キー
Num Lock
に関係しないテンキーである KP-/ も特殊な scancode となっている。ただし Num Lock
が関係しないので Base と Shift の2パターンのみ。
こちらも左右の Shift を同時に押している場合の scancode については前項と同様。
Key State | Make scancode pattern | Break scancode pattern |
---|---|---|
Base Case | Base Make |
Base Break |
Shift Case (Left or Right) | E0 + Shift Break + Base Make |
Base Break + E0 + Shift Make |
Shift Case (Both) | E0 + Left Shift Break + E0 + Right Shift Break + Base Make |
Base Break + E0 + Left Shift Make + E0 + Right Shift Make |
*3: PrintScreen キー
Table 1 に示したとおり、PrintScreen キーの scancode は Base Case が特殊になっている。これはこのキーの成り立ちに由来する。
Table 1 や Figure 1 で示すとおり、5150, XT の 83 キーボードでは PrintScreen は KP-* の Shift Case に割り当てられたキーだった。
そのため Base Case が普通の Shift Case のような scancode になってしまっている。逆に、Shift Case は prefix の E0
がついただけの普通の scancode になっている。
ただし Alt Case は全く異なり、SysReq の scancode が発生する仕様となっている。
SysReq キーは AT (84) キーボードで単独のキーとして追加されているが、101 や 102 キーボードでは単独のキーとしては存在しなくなり、PrintScreen キーと合体することになった。
オーソドックスなキーボードであれば、キーキャップの手前側などに "SysReq" などと印字されており、それはこのキーコンビネーションで使えることに由来する。
以下の Table 3 に上記をまとめる。ややこしいので実際の scancode も併記する。
Key State | Scancode pattern | Actual scancode | ||||
---|---|---|---|---|---|---|
Make | Break | Set 1 | Set 2 | |||
Make | Break | Make | Break | |||
Base Case | E0 + Shift Make + E0 + KP-* Base Make |
E0 + KP-* Base Break + E0 + Shift Break |
E0 2A |
E0 B7 |
E0 12 |
E0 F0 7C |
Shift Case | E0 + KP-* Base Make |
E0 + KP-* Base Break |
E0 37 |
E0 B7 |
E0 7C |
E0 F0 7C |
Alt Case | SysReq Base Make |
SysReq Base Break |
54 |
D4 |
84 |
F0 84 |
- System Request
- When the System Request (Alt and Print Screen) key is pressed, ...
*4: Pause キー
Pause キーについては、標準的なキーボードであれば Pause と Break がセットで印字されており、scancode としてもこの2つのキーを定義している。
こちらも Table 1 に示したとおり、大変特殊な scancode になっている。
これは Pause も Break も当初(5150, XT, AT の 83/84 キーボードの頃、つまり 101 キーボード等の現代の一般的な配列以前の頃)は存在せず、複数キーのコンビネーションで発生するキーだったため、単独の scancode を割り当てられていなかったからだ。
キーコンビネーションとしては、Pause は E1
をつけて Make
と Break
を一遍に発生するような仕様となっている()。
Break は元々 Ctrl+ScrollLock のキーコンビネーションで発生するキーだったので、Ctrl Case として定義されており、こちらも Make
と Break
を一遍に発生する仕様となっている。
そのため、どちらの場合も物理的なキーとしての Break
は発生しない、というか定義されていない。
ちなみに上記仕様により、キーを押し続けてもそれを感知してもらえない。
以下の Table 4 に上記をまとめる。こちらもややこしいので実際の scancode も併記する。
Key State | Make scancode pattern | Scancode | |
---|---|---|---|
Set 1 | Set 2 | ||
Base Case | E1 + Left Ctrl Make + Num Lock Make + E1 + Left Ctrl Break + Num Lock Break |
E1 1D 45 |
E1 14 77 |
Ctrl Pressed | E0 + ScrollLock Make + E0 + ScrollLock Break |
E0 46 |
E0 7E |
Ctrl: ... with the Scroll Lock key to cause the break function; and with the Num Lock key to cause the pause function.
各キーレイアウトとキー位置番号
参考資料
- IBM Personal Computer Hardware Reference Library TECHNICAL REFERENCE PN 6025008 First Edition (Aug. 1981)
- IBM PC 5150 の仕様書
- IBM Personal Computer Hardware Reference Library TECHNICAL REFERENCE PN 1502494 First Edition (Mar. 1984)
- IBM PC AT (5170) の仕様書(初版)
- IBM Personal Computer Hardware Reference Library TECHNICAL REFERENCE PN 6183355 Revised Edition (Mar. 1986)
- IBM PC AT (5170) の仕様書(改訂版)
- OADG テクニカル・リファレンス(ハードウェア)第5版 (2000年9月)
- JIS 配列の基となる、というかそのものである OADG 109A 配列や AX 配列などが書かれた仕様書
- Japanese Keyboard (layout and scancode)
- このページを作るきっかけ (?) となったページ。趣旨はこのページと非常に近く、scancode やキーボーとレイアウトについて細かくまとめてある。非常に詳しいので大抵はこのページで事足りると思われる。自分のまとめたい方向と異なるのもあり、自分でも似たようなページを作ることにした。そういう意味できっかけ。