1 |
2 |
drasko |
|
2 |
|
|
#ifndef __KEYMAP_H__
|
3 |
|
|
#define __KEYMAP_H__
|
4 |
|
|
|
5 |
|
|
/* Special meaning keys */
|
6 |
|
|
#define KEYCODE_LSHIFT 0x101
|
7 |
|
|
#define KEYCODE_RSHIFT 0x102
|
8 |
|
|
#define KEYCODE_LCTRL 0x103
|
9 |
|
|
#define KEYCODE_RCTRL 0x104
|
10 |
|
|
#define KEYCODE_ALT 0x105
|
11 |
|
|
#define KEYCODE_ALTGR 0x106
|
12 |
|
|
|
13 |
|
|
#define KEYCODE_CAPSLK 0x201
|
14 |
|
|
#define KEYCODE_SCRLK 0x202
|
15 |
|
|
#define KEYCODE_NUMLK 0x203
|
16 |
|
|
|
17 |
|
|
#define KEYCODE_TAB 0x301
|
18 |
|
|
#define KEYCODE_BACKSP 0x302
|
19 |
|
|
#define KEYCODE_RETURN 0x303
|
20 |
|
|
#define KEYCODE_ESCAPE 0x304
|
21 |
|
|
#define KEYCODE_ENTER 0x305
|
22 |
|
|
|
23 |
|
|
#define KEYCODE_PRTSCR 0x401
|
24 |
|
|
#define KEYCODE_BREAK 0x402
|
25 |
|
|
#define KEYCODE_INSERT 0x403
|
26 |
|
|
#define KEYCODE_HOME 0x404
|
27 |
|
|
#define KEYCODE_PAGEUP 0x405
|
28 |
|
|
#define KEYCODE_DELETE 0x406
|
29 |
|
|
#define KEYCODE_END 0x407
|
30 |
|
|
#define KEYCODE_PAGEDN 0x408
|
31 |
|
|
|
32 |
|
|
#define KEYCODE_UP 0x501
|
33 |
|
|
#define KEYCODE_DOWN 0x502
|
34 |
|
|
#define KEYCODE_LEFT 0x503
|
35 |
|
|
#define KEYCODE_RIGHT 0x504
|
36 |
|
|
#define KEYCODE_CENTER 0x505
|
37 |
|
|
|
38 |
|
|
#define KEYCODE_F1 0x601
|
39 |
|
|
#define KEYCODE_F2 0x602
|
40 |
|
|
#define KEYCODE_F3 0x603
|
41 |
|
|
#define KEYCODE_F4 0x604
|
42 |
|
|
#define KEYCODE_F5 0x605
|
43 |
|
|
#define KEYCODE_F6 0x606
|
44 |
|
|
#define KEYCODE_F7 0x607
|
45 |
|
|
#define KEYCODE_F8 0x608
|
46 |
|
|
#define KEYCODE_F9 0x609
|
47 |
|
|
#define KEYCODE_F10 0x60A
|
48 |
|
|
#define KEYCODE_F11 0x60B
|
49 |
|
|
#define KEYCODE_F12 0x60C
|
50 |
|
|
|
51 |
|
|
#define KEYCODE_WINL 0x701
|
52 |
|
|
#define KEYCODE_WINR 0x702
|
53 |
|
|
#define KEYCODE_MENU 0x703
|
54 |
|
|
|
55 |
|
|
#define MODIFIER_EXTENDED 0x00100000
|
56 |
|
|
#define MODIFIER_EXTENDED2 0x00200000
|
57 |
|
|
#define MODIFIER_RCTRL 0x00400000
|
58 |
|
|
#define MODIFIER_RSHIFT 0x00800000
|
59 |
|
|
#define MODIFIER_LSHIFT 0x01000000
|
60 |
|
|
#define MODIFIER_LCTRL 0x02000000
|
61 |
|
|
#define MODIFIER_ALT 0x04000000
|
62 |
|
|
#define MODIFIER_ALTGR 0x08000000
|
63 |
|
|
#define MODIFIER_SCRLK 0x10000000
|
64 |
|
|
#define MODIFIER_NUMLK 0x20000000
|
65 |
|
|
#define MODIFIER_CAPSLK 0x40000000
|
66 |
|
|
#define MODIFIER_RELEASE 0x80000000
|
67 |
|
|
#define MODIFIER_SHIFT (MODIFIER_LSHIFT | MODIFIER_RSHIFT)
|
68 |
|
|
#define MODIFIER_CTRL (MODIFIER_LCTRL | MODIFIER_RCTRL)
|
69 |
|
|
|
70 |
|
|
struct keyboard_key {
|
71 |
|
|
int nomods;
|
72 |
|
|
int shift;
|
73 |
|
|
int ext_nomods;
|
74 |
|
|
int ext_shift;
|
75 |
|
|
};
|
76 |
|
|
|
77 |
|
|
/*
|
78 |
|
|
* Keymap for a UK keyboard
|
79 |
|
|
* maps key numbers->key codes
|
80 |
|
|
*
|
81 |
|
|
* We will use scan code index to get the key
|
82 |
|
|
*
|
83 |
|
|
* FIXME: element 1 and 4 gives, muticharacter
|
84 |
|
|
* character constant error, fix this.
|
85 |
|
|
*/
|
86 |
|
|
struct keyboard_key keymap_uk2[256] = {
|
87 |
|
|
/* 0 */ {0,0,0,0},
|
88 |
|
|
#if 0
|
89 |
|
|
/* 1 */ {'`','¬',0,0},
|
90 |
|
|
#else
|
91 |
|
|
/* 1 */ {'`',0,0,0},
|
92 |
|
|
#endif
|
93 |
|
|
/* 2 */ {'1','!',0,0},
|
94 |
|
|
/* 3 */ {'2','"',0,0},
|
95 |
|
|
#if 0
|
96 |
|
|
/* 4 */ {'3','£',0,0},
|
97 |
|
|
#else
|
98 |
|
|
/* 4 */ {'3',0,0,0},
|
99 |
|
|
#endif
|
100 |
|
|
/* 5 */ {'4','$',0,0},
|
101 |
|
|
/* 6 */ {'5','%',0,0},
|
102 |
|
|
/* 7 */ {'6','^',0,0},
|
103 |
|
|
/* 8 */ {'7','&',0,0},
|
104 |
|
|
/* 9 */ {'8','*',0,0},
|
105 |
|
|
/* 10 */ {'9','(',0,0},
|
106 |
|
|
/* 11 */ {'0',')',0,0},
|
107 |
|
|
/* 12 */ {'-','_',0,0},
|
108 |
|
|
/* 13 */ {'=','+',0,0},
|
109 |
|
|
/* 14 */ {0,0,0,0},
|
110 |
|
|
/* 15 */ {KEYCODE_BACKSP,0,0,0},
|
111 |
|
|
/* 16 */ {KEYCODE_TAB,0,0,0},
|
112 |
|
|
/* 17 */ {'q','Q',0,0},
|
113 |
|
|
/* 18 */ {'w','W',0,0},
|
114 |
|
|
/* 19 */ {'e','E',0,0},
|
115 |
|
|
/* 20 */ {'r','R',0,0},
|
116 |
|
|
/* 21 */ {'t','T',0,0},
|
117 |
|
|
/* 22 */ {'y','Y',0,0},
|
118 |
|
|
/* 23 */ {'u','U',0,0},
|
119 |
|
|
/* 24 */ {'i','I',0,0},
|
120 |
|
|
/* 25 */ {'o','O',0,0},
|
121 |
|
|
/* 26 */ {'p','P',0,0},
|
122 |
|
|
/* 27 */ {'[','{',0,0},
|
123 |
|
|
/* 28 */ {']','}',0,0},
|
124 |
|
|
/* 29 */ {'#','~',0,0},
|
125 |
|
|
/* 30 */ {KEYCODE_CAPSLK,0,0,0},
|
126 |
|
|
/* 31 */ {'a','A',0,0},
|
127 |
|
|
/* 32 */ {'s','S',0,0},
|
128 |
|
|
/* 33 */ {'d','D',0,0},
|
129 |
|
|
/* 34 */ {'f','F',0,0},
|
130 |
|
|
/* 35 */ {'g','G',0,0},
|
131 |
|
|
/* 36 */ {'h','H',0,0},
|
132 |
|
|
/* 37 */ {'j','J',0,0},
|
133 |
|
|
/* 38 */ {'k','K',0,0},
|
134 |
|
|
/* 39 */ {'l','L',0,0},
|
135 |
|
|
/* 40 */ {';',':',0,0},
|
136 |
|
|
/* 41 */ {'\'','@',0,0},
|
137 |
|
|
/* 42 */ {0,0,0,0},
|
138 |
|
|
/* 43 */ {'\n','\n',KEYCODE_ENTER,0},
|
139 |
|
|
/* 44 */ {KEYCODE_LSHIFT,0,0,0},
|
140 |
|
|
/* 45 */ {'\\','|',0,0},
|
141 |
|
|
/* 46 */ {'z','Z',0,0},
|
142 |
|
|
/* 47 */ {'x','X',0,0},
|
143 |
|
|
/* 48 */ {'c','C',0,0},
|
144 |
|
|
/* 49 */ {'v','V',0,0},
|
145 |
|
|
/* 50 */ {'b','B',0,0},
|
146 |
|
|
/* 51 */ {'n','N',0,0},
|
147 |
|
|
/* 52 */ {'m','M',0,0},
|
148 |
|
|
/* 53 */ {',','<',0,0},
|
149 |
|
|
/* 54 */ {'.','>',0,0},
|
150 |
|
|
/* 55 */ {'/','?','/' | MODIFIER_NUMLK,0},
|
151 |
|
|
/* 56 */ {0,0,0,0},
|
152 |
|
|
/* 57 */ {KEYCODE_RSHIFT,0,0,0},
|
153 |
|
|
/* 58 */ {KEYCODE_LCTRL,0,KEYCODE_RCTRL,0},
|
154 |
|
|
/* 59 */ {0,0,0,0},
|
155 |
|
|
/* 60 */ {KEYCODE_ALT,0,KEYCODE_ALTGR,0},
|
156 |
|
|
/* 61 */ {' ',0,0,0},
|
157 |
|
|
/* 62 */ {KEYCODE_ALTGR,0,0,0},
|
158 |
|
|
/* 63 */ {0,0,0,0},
|
159 |
|
|
/* 64 */ {KEYCODE_RCTRL,0,0,0},
|
160 |
|
|
/* 65 */ {0,0,0,0},
|
161 |
|
|
/* 66 */ {0,0,0,0},
|
162 |
|
|
/* 67 */ {0,0,0,0},
|
163 |
|
|
/* 68 */ {0,0,0,0},
|
164 |
|
|
/* 69 */ {0,0,0,0},
|
165 |
|
|
/* 70 */ {0,0,0,0},
|
166 |
|
|
/* 71 */ {0,0,0,0},
|
167 |
|
|
/* 72 */ {0,0,0,0},
|
168 |
|
|
/* 73 */ {0,0,0,0},
|
169 |
|
|
/* 74 */ {0,0,0,0},
|
170 |
|
|
/* 75 */ {KEYCODE_INSERT,0,0,0},
|
171 |
|
|
/* 76 */ {KEYCODE_DELETE,0,0,0},
|
172 |
|
|
/* 77 */ {0,0,0,0},
|
173 |
|
|
/* 78 */ {0,0,0,0},
|
174 |
|
|
/* 79 */ {KEYCODE_LEFT,0,0,0},
|
175 |
|
|
/* 80 */ {KEYCODE_HOME,0,0,0},
|
176 |
|
|
/* 81 */ {KEYCODE_END,0,0,0},
|
177 |
|
|
/* 82 */ {0,0,0,0},
|
178 |
|
|
/* 83 */ {KEYCODE_UP,0,0,0},
|
179 |
|
|
/* 84 */ {KEYCODE_DOWN,0,0,0},
|
180 |
|
|
/* 85 */ {KEYCODE_PAGEUP,0,0,0},
|
181 |
|
|
/* 86 */ {KEYCODE_PAGEDN,0,0,0},
|
182 |
|
|
/* 87 */ {0,0,0,0},
|
183 |
|
|
/* 88 */ {0,0,0,0},
|
184 |
|
|
/* 89 */ {KEYCODE_RIGHT,0,0,0},
|
185 |
|
|
/* 90 */ {KEYCODE_NUMLK,0,KEYCODE_BREAK,0},
|
186 |
|
|
/* 91 */ {KEYCODE_HOME | MODIFIER_NUMLK,0,KEYCODE_HOME,0},
|
187 |
|
|
/* 92 */ {KEYCODE_LEFT | MODIFIER_NUMLK,0,KEYCODE_LEFT,0},
|
188 |
|
|
/* 93 */ {KEYCODE_END | MODIFIER_NUMLK,0,KEYCODE_END,0},
|
189 |
|
|
/* 94 */ {0,0,0,0},
|
190 |
|
|
/* 95 */ {'/' | MODIFIER_NUMLK,0,0},
|
191 |
|
|
/* 96 */ {KEYCODE_UP | MODIFIER_NUMLK,0,KEYCODE_UP,0},
|
192 |
|
|
/* 97 */ {KEYCODE_CENTER | MODIFIER_NUMLK,0,KEYCODE_CENTER,0},
|
193 |
|
|
/* 98 */ {KEYCODE_DOWN | MODIFIER_NUMLK,0,KEYCODE_DOWN,0},
|
194 |
|
|
/* 99 */ {KEYCODE_INSERT | MODIFIER_NUMLK,0,KEYCODE_INSERT,0},
|
195 |
|
|
/* 100 */ {'*' | MODIFIER_NUMLK,0,KEYCODE_PRTSCR,0},
|
196 |
|
|
/* 101 */ {KEYCODE_PAGEUP | MODIFIER_NUMLK,0,KEYCODE_PAGEUP,0},
|
197 |
|
|
/* 102 */ {KEYCODE_RIGHT | MODIFIER_NUMLK,0,KEYCODE_RIGHT,0},
|
198 |
|
|
/* 103 */ {KEYCODE_PAGEDN | MODIFIER_NUMLK,0,KEYCODE_PAGEDN,0},
|
199 |
|
|
/* 104 */ {KEYCODE_DELETE | MODIFIER_NUMLK,0,KEYCODE_DELETE,0},
|
200 |
|
|
/* 105 */ {'-' | MODIFIER_NUMLK,0,0,0},
|
201 |
|
|
/* 106 */ {'+' | MODIFIER_NUMLK,0,0,0},
|
202 |
|
|
/* 107 */ {KEYCODE_ENTER,0,0,0},
|
203 |
|
|
/* 108 */ {0,0,0,0},
|
204 |
|
|
/* 109 */ {0,0,0,0},
|
205 |
|
|
/* 110 */ {KEYCODE_ESCAPE,0,0,0},
|
206 |
|
|
/* 111 */ {0,0,0,0},
|
207 |
|
|
/* 112 */ {KEYCODE_F1,0,0,7},
|
208 |
|
|
/* 113 */ {KEYCODE_F2,0,0,0},
|
209 |
|
|
/* 114 */ {KEYCODE_F3,0,0,0},
|
210 |
|
|
/* 115 */ {KEYCODE_F4,0,0,0},
|
211 |
|
|
/* 116 */ {KEYCODE_F5,0,0,0},
|
212 |
|
|
/* 117 */ {KEYCODE_F6,0,0,0},
|
213 |
|
|
/* 118 */ {KEYCODE_F7,0,0,0},
|
214 |
|
|
/* 119 */ {KEYCODE_F8,0,0,0},
|
215 |
|
|
/* 120 */ {KEYCODE_F9,0,0,0},
|
216 |
|
|
/* 121 */ {KEYCODE_F10,0,0,0},
|
217 |
|
|
/* 122 */ {KEYCODE_F11,0,0,0},
|
218 |
|
|
/* 123 */ {KEYCODE_F12,0,0,0},
|
219 |
|
|
/* 124 */ {KEYCODE_PRTSCR,0,0,0},
|
220 |
|
|
/* 125 */ {KEYCODE_SCRLK,0,KEYCODE_BREAK,0},
|
221 |
|
|
/* 126 */ {KEYCODE_BREAK,0,0,0},
|
222 |
|
|
/* 127 */ {0,0,0,0},
|
223 |
|
|
/* 128 */ {KEYCODE_WINL,0,KEYCODE_WINL,0},
|
224 |
|
|
/* 129 */ {KEYCODE_WINR,0,KEYCODE_WINR,0},
|
225 |
|
|
/* 130 */ {KEYCODE_MENU,0,KEYCODE_MENU,0},
|
226 |
|
|
/* currently no keys with numbers > 130 */
|
227 |
|
|
/* 131 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
228 |
|
|
/* 140 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
229 |
|
|
/* 150 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
230 |
|
|
/* 160 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
231 |
|
|
/* 170 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
232 |
|
|
/* 180 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
233 |
|
|
/* 190 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
234 |
|
|
/* 200 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
235 |
|
|
/* 210 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
236 |
|
|
/* 220 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
237 |
|
|
/* 230 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
238 |
|
|
/* 240 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},
|
239 |
|
|
/* 250 */ {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}
|
240 |
|
|
};
|
241 |
|
|
|
242 |
|
|
/*
|
243 |
|
|
* Scan code to key number conversion table for
|
244 |
|
|
* an extended AT keyboard in mode 2
|
245 |
|
|
*
|
246 |
|
|
* This will give us the key index for keyboard
|
247 |
|
|
*/
|
248 |
|
|
int scancode_mode2_extended[256] = {
|
249 |
|
|
0, 120, 0, 116, 114, 112, 113,
|
250 |
|
|
123, 0, 121, 119, 117, 115, 16,
|
251 |
|
|
1, 0, 0, 60, 44, 0, 58,
|
252 |
|
|
17, 2, 0, 0, 0, 46, 32,
|
253 |
|
|
31, 18, 3, 128, 0, 48, 47,
|
254 |
|
|
33, 19, 5, 4, 129, 0, 61,
|
255 |
|
|
49, 34, 21, 20, 6, 130, 0,
|
256 |
|
|
51, 50, 36, 35, 22, 7, 0,
|
257 |
|
|
0, 0, 52, 37, 23, 8, 9,
|
258 |
|
|
0, 0, 53, 38, 24, 25, 11,
|
259 |
|
|
10, 0, 0, 54, 55, 39, 40,
|
260 |
|
|
26, 12, 0, 0, 0, 41, 0,
|
261 |
|
|
27, 13, 0, 0, 30, 57, 43,
|
262 |
|
|
28, 0, 29, 0, 0, 0, 45,
|
263 |
|
|
0, 0, 0, 0, 15, 0, 0,
|
264 |
|
|
93, 0, 92, 91, 0, 0, 0,
|
265 |
|
|
99, 104, 98, 97, 102, 96, 110,
|
266 |
|
|
90, 122, 106, 103, 105, 100, 101,
|
267 |
|
|
125, 0, 0, 0, 0, 118, 0,
|
268 |
|
|
0, 0, 0, 0, 0, 0, 0,
|
269 |
|
|
0, 0, 0, 0,
|
270 |
|
|
/* no keys with codes > 0x8F */
|
271 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
272 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
273 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
274 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
275 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
276 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
277 |
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
278 |
|
|
};
|
279 |
|
|
|
280 |
|
|
#endif /* __KEYMAP_H__ */
|