1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  */
8 
9 /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10                               keymap.h
11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12                                                     Forrest Yu, 2005
13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
14 
15 /********************************************************************/
16 /*    "scan code" <--> "key" map.                                     */
17 /*    It should be and can only be included by keyboard.c!          */
18 /********************************************************************/
19 
20 #ifndef _TINIX_KEYMAP_H_
21 #define _TINIX_KEYMAP_H_
22 
23 
24 /* Keymap for US MF-2 keyboard. */
25 
26 rt_uint32_t keymap[NR_SCAN_CODES * MAP_COLS] = {
27 
28 /* scan-code            !Shift      Shift       E0 XX       */
29 /* ==================================================================== */
30 /* 0x00 - none      */  0,      0,      0,
31 /* 0x01 - ESC       */  ESC,        ESC,        0,
32 /* 0x02 - '1'       */  '1',        '!',        0,
33 /* 0x03 - '2'       */  '2',        '@',        0,
34 /* 0x04 - '3'       */  '3',        '#',        0,
35 /* 0x05 - '4'       */  '4',        '$',        0,
36 /* 0x06 - '5'       */  '5',        '%',        0,
37 /* 0x07 - '6'       */  '6',        '^',        0,
38 /* 0x08 - '7'       */  '7',        '&',        0,
39 /* 0x09 - '8'       */  '8',        '*',        0,
40 /* 0x0A - '9'       */  '9',        '(',        0,
41 /* 0x0B - '0'       */  '0',        ')',        0,
42 /* 0x0C - '-'       */  '-',        '_',        0,
43 /* 0x0D - '='       */  '=',        '+',        0,
44 /* 0x0E - BS        */  BACKSPACE,  BACKSPACE,  0,
45 /* 0x0F - TAB       */  TAB,        TAB,        0,
46 /* 0x10 - 'q'       */  'q',        'Q',        0,
47 /* 0x11 - 'w'       */  'w',        'W',        0,
48 /* 0x12 - 'e'       */  'e',        'E',        0,
49 /* 0x13 - 'r'       */  'r',        'R',        0,
50 /* 0x14 - 't'       */  't',        'T',        0,
51 /* 0x15 - 'y'       */  'y',        'Y',        0,
52 /* 0x16 - 'u'       */  'u',        'U',        0,
53 /* 0x17 - 'i'       */  'i',        'I',        0,
54 /* 0x18 - 'o'       */  'o',        'O',        0,
55 /* 0x19 - 'p'       */  'p',        'P',        0,
56 /* 0x1A - '['       */  '[',        '{',        0,
57 /* 0x1B - ']'       */  ']',        '}',        0,
58 /* 0x1C - CR/LF     */  ENTER,      ENTER,      PAD_ENTER,
59 /* 0x1D - l. Ctrl   */  CTRL_L,     CTRL_L,     CTRL_R,
60 /* 0x1E - 'a'       */  'a',        'A',        0,
61 /* 0x1F - 's'       */  's',        'S',        0,
62 /* 0x20 - 'd'       */  'd',        'D',        0,
63 /* 0x21 - 'f'       */  'f',        'F',        0,
64 /* 0x22 - 'g'       */  'g',        'G',        0,
65 /* 0x23 - 'h'       */  'h',        'H',        0,
66 /* 0x24 - 'j'       */  'j',        'J',        0,
67 /* 0x25 - 'k'       */  'k',        'K',        0,
68 /* 0x26 - 'l'       */  'l',        'L',        0,
69 /* 0x27 - ';'       */  ';',        ':',        0,
70 /* 0x28 - '\''      */  '\'',       '"',        0,
71 /* 0x29 - '`'       */  '`',        '~',        0,
72 /* 0x2A - l. SHIFT  */  SHIFT_L,    SHIFT_L,    0,
73 /* 0x2B - '\'       */  '\\',       '|',        0,
74 /* 0x2C - 'z'       */  'z',        'Z',        0,
75 /* 0x2D - 'x'       */  'x',        'X',        0,
76 /* 0x2E - 'c'       */  'c',        'C',        0,
77 /* 0x2F - 'v'       */  'v',        'V',        0,
78 /* 0x30 - 'b'       */  'b',        'B',        0,
79 /* 0x31 - 'n'       */  'n',        'N',        0,
80 /* 0x32 - 'm'       */  'm',        'M',        0,
81 /* 0x33 - ','       */  ',',        '<',        0,
82 /* 0x34 - '.'       */  '.',        '>',        0,
83 /* 0x35 - '/'       */  '/',        '?',        PAD_SLASH,
84 /* 0x36 - r. SHIFT  */  SHIFT_R,    SHIFT_R,    0,
85 /* 0x37 - '*'       */  '*',        '*',        0,
86 /* 0x38 - ALT       */  ALT_L,      ALT_L,      ALT_R,
87 /* 0x39 - ' '       */  ' ',        ' ',        0,
88 /* 0x3A - CapsLock  */  CAPS_LOCK,  CAPS_LOCK,  0,
89 /* 0x3B - F1        */  F1,     F1,     0,
90 /* 0x3C - F2        */  F2,     F2,     0,
91 /* 0x3D - F3        */  F3,     F3,     0,
92 /* 0x3E - F4        */  F4,     F4,     0,
93 /* 0x3F - F5        */  F5,     F5,     0,
94 /* 0x40 - F6        */  F6,     F6,     0,
95 /* 0x41 - F7        */  F7,     F7,     0,
96 /* 0x42 - F8        */  F8,     F8,     0,
97 /* 0x43 - F9        */  F9,     F9,     0,
98 /* 0x44 - F10       */  F10,        F10,        0,
99 /* 0x45 - NumLock   */  NUM_LOCK,   NUM_LOCK,   0,
100 /* 0x46 - ScrLock   */  SCROLL_LOCK,    SCROLL_LOCK,    0,
101 /* 0x47 - Home      */  PAD_HOME,   '7',        HOME,
102 /* 0x48 - CurUp     */  PAD_UP,     '8',        UP,
103 /* 0x49 - PgUp      */  PAD_PAGEUP, '9',        PAGEUP,
104 /* 0x4A - '-'       */  PAD_MINUS,  '-',        0,
105 /* 0x4B - Left      */  PAD_LEFT,   '4',        LEFT,
106 /* 0x4C - MID       */  PAD_MID,    '5',        0,
107 /* 0x4D - Right     */  PAD_RIGHT,  '6',        RIGHT,
108 /* 0x4E - '+'       */  PAD_PLUS,   '+',        0,
109 /* 0x4F - End       */  PAD_END,    '1',        END,
110 /* 0x50 - Down      */  PAD_DOWN,   '2',        DOWN,
111 /* 0x51 - PgDown    */  PAD_PAGEDOWN,   '3',        PAGEDOWN,
112 /* 0x52 - Insert    */  PAD_INS,    '0',        INSERT,
113 /* 0x53 - Delete    */  PAD_DOT,    '.',        DELETE,
114 /* 0x54 - Enter     */  0,      0,      0,
115 /* 0x55 - ???       */  0,      0,      0,
116 /* 0x56 - ???       */  0,      0,      0,
117 /* 0x57 - F11       */  F11,        F11,        0,
118 /* 0x58 - F12       */  F12,        F12,        0,
119 /* 0x59 - ???       */  0,      0,      0,
120 /* 0x5A - ???       */  0,      0,      0,
121 /* 0x5B - ???       */  0,      0,      GUI_L,
122 /* 0x5C - ???       */  0,      0,      GUI_R,
123 /* 0x5D - ???       */  0,      0,      APPS,
124 /* 0x5E - ???       */  0,      0,      0,
125 /* 0x5F - ???       */  0,      0,      0,
126 /* 0x60 - ???       */  0,      0,      0,
127 /* 0x61 - ???       */  0,      0,      0,
128 /* 0x62 - ???       */  0,      0,      0,
129 /* 0x63 - ???       */  0,      0,      0,
130 /* 0x64 - ???       */  0,      0,      0,
131 /* 0x65 - ???       */  0,      0,      0,
132 /* 0x66 - ???       */  0,      0,      0,
133 /* 0x67 - ???       */  0,      0,      0,
134 /* 0x68 - ???       */  0,      0,      0,
135 /* 0x69 - ???       */  0,      0,      0,
136 /* 0x6A - ???       */  0,      0,      0,
137 /* 0x6B - ???       */  0,      0,      0,
138 /* 0x6C - ???       */  0,      0,      0,
139 /* 0x6D - ???       */  0,      0,      0,
140 /* 0x6E - ???       */  0,      0,      0,
141 /* 0x6F - ???       */  0,      0,      0,
142 /* 0x70 - ???       */  0,      0,      0,
143 /* 0x71 - ???       */  0,      0,      0,
144 /* 0x72 - ???       */  0,      0,      0,
145 /* 0x73 - ???       */  0,      0,      0,
146 /* 0x74 - ???       */  0,      0,      0,
147 /* 0x75 - ???       */  0,      0,      0,
148 /* 0x76 - ???       */  0,      0,      0,
149 /* 0x77 - ???       */  0,      0,      0,
150 /* 0x78 - ???       */  0,      0,      0,
151 /* 0x78 - ???       */  0,      0,      0,
152 /* 0x7A - ???       */  0,      0,      0,
153 /* 0x7B - ???       */  0,      0,      0,
154 /* 0x7C - ???       */  0,      0,      0,
155 /* 0x7D - ???       */  0,      0,      0,
156 /* 0x7E - ???       */  0,      0,      0,
157 /* 0x7F - ???       */  0,      0,      0
158 };
159 
160 /*====================================================================================*
161                 Appendix: Scan code set 1
162  *====================================================================================*
163 
164 KEY MAKE    BREAK   -----   KEY MAKE    BREAK   -----   KEY MAKE    BREAK
165 --------------------------------------------------------------------------------------
166 A   1E  9E      9   0A  8A      [   1A  9A
167 B   30  B0      `   29  89      INSERT  E0,52   E0,D2
168 C   2E  AE      -   0C  8C      HOME    E0,47   E0,C7
169 D   20  A0      =   0D  8D      PG UP   E0,49   E0,C9
170 E   12  92      \   2B  AB      DELETE  E0,53   E0,D3
171 F   21  A1      BKSP    0E  8E      END E0,4F   E0,CF
172 G   22  A2      SPACE   39  B9      PG DN   E0,51   E0,D1
173 H   23  A3      TAB 0F  8F      U ARROW E0,48   E0,C8
174 I   17  97      CAPS    3A  BA      L ARROW E0,4B   E0,CB
175 J   24  A4      L SHFT  2A  AA      D ARROW E0,50   E0,D0
176 K   25  A5      L CTRL  1D  9D      R ARROW E0,4D   E0,CD
177 L   26  A6      L GUI   E0,5B   E0,DB       NUM 45  C5
178 M   32  B2      L ALT   38  B8      KP /    E0,35   E0,B5
179 N   31  B1      R SHFT  36  B6      KP *    37  B7
180 O   18  98      R CTRL  E0,1D   E0,9D       KP -    4A  CA
181 P   19  99      R GUI   E0,5C   E0,DC       KP +    4E  CE
182 Q   10  19      R ALT   E0,38   E0,B8       KP EN   E0,1C   E0,9C
183 R   13  93      APPS    E0,5D   E0,DD       KP .    53  D3
184 S   1F  9F      ENTER   1C  9C      KP 0    52  D2
185 T   14  94      ESC 01  81      KP 1    4F  CF
186 U   16  96      F1  3B  BB      KP 2    50  D0
187 V   2F  AF      F2  3C  BC      KP 3    51  D1
188 W   11  91      F3  3D  BD      KP 4    4B  CB
189 X   2D  AD      F4  3E  BE      KP 5    4C  CC
190 Y   15  95      F5  3F  BF      KP 6    4D  CD
191 Z   2C  AC      F6  40  C0      KP 7    47  C7
192 0   0B  8B      F7  41  C1      KP 8    48  C8
193 1   02  82      F8  42  C2      KP 9    49  C9
194 2   03  83      F9  43  C3      ]   1B  9B
195 3   04  84      F10 44  C4      ;   27  A7
196 4   05  85      F11 57  D7      '   28  A8
197 5   06  86      F12 58  D8      ,   33  B3
198 
199 6   07  87      PRTSCRN E0,2A   E0,B7       .   34  B4
200                     E0,37   E0,AA
201 
202 7   08  88      SCROLL  46  C6      /   35  B5
203 
204 8   09  89      PAUSE E1,1D,45  -NONE-
205                       E1,9D,C5
206 
207 
208 -----------------
209 ACPI Scan Codes:
210 -------------------------------------------
211 Key     Make Code   Break Code
212 -------------------------------------------
213 Power       E0, 5E      E0, DE
214 Sleep       E0, 5F      E0, DF
215 Wake        E0, 63      E0, E3
216 
217 
218 -------------------------------
219 Windows Multimedia Scan Codes:
220 -------------------------------------------
221 Key     Make Code   Break Code
222 -------------------------------------------
223 Next Track  E0, 19      E0, 99
224 Previous Track  E0, 10      E0, 90
225 Stop        E0, 24      E0, A4
226 Play/Pause  E0, 22      E0, A2
227 Mute        E0, 20      E0, A0
228 Volume Up   E0, 30      E0, B0
229 Volume Down E0, 2E      E0, AE
230 Media Select    E0, 6D      E0, ED
231 E-Mail      E0, 6C      E0, EC
232 Calculator  E0, 21      E0, A1
233 My Computer E0, 6B      E0, EB
234 WWW Search  E0, 65      E0, E5
235 WWW Home    E0, 32      E0, B2
236 WWW Back    E0, 6A      E0, EA
237 WWW Forward E0, 69      E0, E9
238 WWW Stop    E0, 68      E0, E8
239 WWW Refresh E0, 67      E0, E7
240 WWW Favorites   E0, 66      E0, E6
241 
242 *=====================================================================================*/
243 
244 
245 
246 #endif /* _TINIX_KEYMAP_H_ */
247