Undeaded key 0.
[AROS.git] / workbench / devs / keymaps / pc105_d.c
blob486f6ef9e6e6f910693a9855e0baacd3753030e5
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Deutsch (German) PC105 Keymap
6 Lang: English
7 */
9 #include <devices/keymap.h>
11 STATIC char keymapname[] = "pc105_d";
13 STATIC CONST UBYTE lokeymaptypes[];
14 STATIC CONST IPTR lokeymap[];
15 STATIC CONST UBYTE locapsable[];
16 STATIC CONST UBYTE lorepeatable[];
18 STATIC CONST UBYTE hikeymaptypes[];
19 STATIC CONST IPTR hikeymap[];
20 STATIC CONST UBYTE hicapsable[];
21 STATIC CONST UBYTE hirepeatable[];
23 CONST struct KeyMapNode km =
26 NULL, NULL, 0, 0, keymapname
29 (UBYTE *)lokeymaptypes,
30 (IPTR *)lokeymap,
31 (UBYTE *)locapsable,
32 (UBYTE *)lorepeatable,
33 (UBYTE *)hikeymaptypes,
34 (IPTR *)hikeymap,
35 (UBYTE *)hicapsable,
36 (UBYTE *)hirepeatable
40 #undef N
41 #undef S
42 #undef A
43 #undef C
44 #undef D
45 #undef V
46 #undef ST
47 #undef NOP
49 #define N KC_NOQUAL
50 #define S KCF_SHIFT
51 #define A KCF_ALT
52 #define C KCF_CONTROL
53 #define D KCF_DEAD
54 #define V KC_VANILLA
55 #define ST KCF_STRING
56 #define NOP KCF_NOP
58 #define EUR 0xA4 /* ISO 8859-15: Euro = 164 = 0xA4) */
60 STATIC CONST UBYTE lokeymaptypes[] =
62 S, /* 00 */
63 S|A, /* 01 */
64 S|A, /* 02 */
65 S|A, /* 03 */
66 S|A, /* 04 */
67 S|A, /* 05 */
68 S|A, /* 06 */
69 S|A, /* 07 */
70 S|A, /* 08 */
71 S|A, /* 09 */
72 S|A, /* 0A */
73 V, /* 0B */
74 D|S|A, /* 0C */
75 V, /* 0D */
76 NOP, /* 0E */
77 N, /* 0F */
78 V, /* 10 q */
79 V, /* 11 w */
80 D|V, /* 12 e */
81 V, /* 13 r */
82 V, /* 14 t */
83 V, /* 15 z */
84 D|V, /* 16 u */
85 D|V, /* 17 i */
86 D|V, /* 18 o */
87 V, /* 19 p */
88 V, /* 1A */
89 V, /* 1B */
90 NOP, /* 1C */
91 N, /* 1D */
92 N, /* 1E */
93 N, /* 1F */
94 D|V, /* 20 a */
95 V, /* 21 s */
96 V, /* 22 d */
97 D|V, /* 23 f */
98 D|V, /* 24 g */
99 D|V, /* 25 h */
100 D|V, /* 26 j */
101 D|V, /* 27 k */
102 V, /* 28 l */
103 S|A, /* 29 */
104 S|A, /* 2A */
105 V, /* 2B */
106 NOP, /* 2C */
107 N, /* 2D */
108 N, /* 2E */
109 N, /* 2F */
110 S|A, /* 30 */
111 D|V, /* 31 y */
112 V, /* 32 x */
113 V, /* 33 c */
114 V, /* 34 v */
115 V, /* 35 b */
116 D|V, /* 36 n */
117 V, /* 37 m */
118 S|A, /* 38 */
119 S|A, /* 39 */
120 V, /* 3A */
121 NOP, /* 3B */
122 N, /* 3C */
123 N, /* 3D */
124 N, /* 3E */
125 N, /* 3F */
128 STATIC CONST UBYTE hikeymaptypes[] =
130 D|A, /* 40 SPACE */
131 N, /* 41 BACKSPACE */
132 ST|S, /* 42 TAB */
133 N, /* 43 ENTER */
134 C, /* 44 RETURN */
135 A, /* 45 ESCAPE */
136 N, /* 46 DEL */
137 ST|S, /* 47 INSERT ?? */
138 ST|S, /* 48 PAGE UP ?? */
139 ST|S, /* 49 PAGE DOWN ?? */
140 N, /* 4A NUMERIC PAD - */
141 ST|S, /* 4B F11 ?? */
142 ST|S, /* 4C CURSORUP*/
143 ST|S, /* 4D CURSORDOWN */
144 ST|S, /* 4E CURSORRIGHT */
145 ST|S, /* 4F CURSORLEFT */
146 ST|S, /* 50 F1 */
147 ST|S, /* 51 F2 */
148 ST|S, /* 52 F3 */
149 ST|S, /* 53 F4 */
150 ST|S, /* 54 F5 */
151 ST|S, /* 55 F6 */
152 ST|S, /* 56 F7 */
153 ST|S, /* 57 F8 */
154 ST|S, /* 58 F9 */
155 ST|S, /* 59 F10 */
156 NOP, /* 5A NUMLOCK */
157 N, /* 5B NUMPAD ) */
158 N, /* 5C NUMPAD / */
159 N, /* 5D NUMPAD * */
160 N, /* 5E NUMPAD + */
161 ST, /* 5F HELP */
162 NOP, /* 60 LEFT SHIFT*/
163 NOP, /* 61 RIGHT SHIFT */
164 NOP, /* 62 CAPS LOCK */
165 NOP, /* 63 CONTROL */
166 NOP, /* 64 LALT */
167 NOP, /* 65 RALT */
168 NOP, /* 66 LCOMMAND */
169 NOP, /* 67 RCOMMAND */
170 NOP, /* 68 LEFT MOUSE BUTTON*/
171 NOP, /* 69 RIGHT MOUSE BUTTON */
172 NOP, /* 6A MIDDLE MOUSE BUTTON */
173 NOP, /* 6B */
174 NOP, /* 6C */
175 NOP, /* 6D */
176 ST|A, /* 6E PAUSE/BREAK ??*/
177 ST|S, /* 6F F12 ?? */
178 ST|C, /* 70 HOME ?? */
179 ST|C, /* 71 END ?? */
180 NOP, /* 72 */
181 NOP, /* 73 */
182 NOP, /* 74 */
183 NOP, /* 75 */
184 NOP, /* 76 */
185 NOP, /* 77 */
186 NOP, /* 78 */
187 NOP, /* 79 */
188 NOP, /* 7A */
189 NOP, /* 7B */
190 NOP, /* 7C */
191 NOP, /* 7D */
192 NOP, /* 7E */
193 NOP /* 7F */
196 #undef N
197 #undef S
198 #undef A
199 #undef C
200 #undef D
201 #undef V
202 #undef ST
203 #undef NOP
205 #undef STRING
206 #undef DEAD
207 #undef BYTES
209 #define STRING(x) (IPTR)x
210 #define DEAD(x) (IPTR)x
211 #define BYTES(b0, b1, b2, b3) \
212 (((UBYTE)b0)<<24) | (((UBYTE)b1)<<16) | (((UBYTE)b2)<<8) | (((UBYTE)b3)<<0)
214 /* dead symbols
216 1= ´
217 2 = `
218 3 = ^
219 4 = ~
220 5 = "
221 6 = °
225 STATIC CONST UBYTE a_descr[] =
227 DPF_MOD, 0x10,
228 DPF_MOD, 0x25,
229 0, 'æ', /* 0xE6 */
230 0, 'Æ', /* 0xC6 */
231 0, 0x01,
232 0, 0x01,
233 0, 0x81,
234 0, 0x81,
236 'a' , 'á' /*0xE1*/, 'à' /*0xE0*/, 'â' /*0xE2*/, 'ã' /*0xE3*/, 'ä' /*0xE4*/, 'å' /*0xE5*/,
237 'á' /*0xE1*/, 'á' /*0xE1*/, 'â' /*0xE2*/, 'á' /*0xE1*/, 'á' /*0xE1*/, 'á' /*0xE1*/, 'á' /*0xE1*/,
238 'à' /*0xE0*/, 'â' /*0xE2*/, 'à' /*0xE0*/, 'à' /*0xE0*/, 'à' /*0xE0*/, 'à' /*0xE0*/, 'à' /*0xE0*/,
240 'A', 'Á' /*0xC1*/, 'À' /*0xC0*/, 'Â' /*0xC2*/, 'Ã' /*0xC3*/, 'Ä' /*0xC4*/, 'Å' /*0xC5*/,
241 'Á' /*0xC1*/, 'Á' /*0xC1*/, 'Â' /*0xC2*/, 'Á' /*0xC1*/, 'Á' /*0xC1*/, 'Á' /*0xC1*/, 'Á' /*0xC1*/,
242 'À' /*0xC0*/, 'Â' /*0xC2*/, 'À' /*0xC0*/, 'À' /*0xC0*/, 'À' /*0xC0*/, 'À' /*0xC0*/, 'À' /*0xC0*/
245 STATIC CONST UBYTE e_descr[] =
247 DPF_MOD, 0x10,
248 DPF_MOD, 0x25,
249 0, EUR,
250 0, '¢',
251 0, 0x05,
252 0, 0x05,
253 0, 0x85,
254 0, 0x85,
256 'e', 'é' /*0xE9*/, 'è' /*0xE8*/, 'ê' /*0xEA*/, 'e', 'ë' /*0xEB*/, 'e',
257 'é' /*0xE9*/, 'é' /*0xE9*/, 'ê' /*0xEA*/, 'é' /*0xE9*/, 'é' /*0xE9*/, 'é' /*0xE9*/, 'é' /*0xE9*/,
258 'è' /*0xE8*/, 'ê' /*0xEA*/, 'è' /*0xE8*/, 'è' /*0xE8*/, 'è' /*0xE8*/, 'è' /*0xE8*/, 'è' /*0xE8*/,
260 'E', 'É' /*0xC9*/, 'È' /*0xC8*/, 'Ê' /*0xCA*/, 'E', 'Ë' /*0xCB*/, 'E',
261 'É' /*0xC9*/, 'É' /*0xC9*/, 'Ê' /*0xCA*/, 'É' /*0xC9*/, 'É' /*0xC9*/, 'É' /*0xC9*/, 'É' /*0xC9*/,
262 'È' /*0xC8*/, 'Ê' /*0xCA*/, 'È' /*0xC8*/, 'È' /*0xC8*/, 'È' /*0xC8*/, 'È' /*0xC8*/, 'È' /*0xC8*/
265 STATIC CONST UBYTE u_descr[] =
267 DPF_MOD, 0x10,
268 DPF_MOD, 0x25,
269 0, 'µ', /* 0xB5 */
270 0, 'µ', /* 0xB5 */
271 0, 0x15,
272 0, 0x15,
273 0, 0x95,
274 0, 0x95,
276 'u', 'ú' /*0xFA*/, 'ù' /*0xF9*/, 'û' /*0xFB*/, 'u', 'ü' /*0xFC*/, 'u',
277 'ú' /*0xFA*/, 'ú' /*0xFA*/, 'û' /*0xFB*/, 'ú' /*0xFA*/, 'ú' /*0xFA*/, 'ú' /*0xFA*/, 'ú' /*0xFA*/,
278 'ù' /*0xF9*/, 'û' /*0xFB*/, 'ù' /*0xF9*/, 'ù' /*0xF9*/, 'ù' /*0xF9*/, 'ù' /*0xF9*/, 'ù' /*0xF9*/,
280 'U', 'Ú' /*0xDA*/, 'Ù' /*0xD9*/, 'Û' /*0xDB*/, 'U', 'Ü' /*0xDC*/, 'U',
281 'Ú' /*0xDA*/, 'Ú' /*0xDA*/, 'Û' /*0xDB*/, 'Ú' /*0xDA*/, 'Ú' /*0xDA*/, 'Ú' /*0xDA*/, 'Ú' /*0xDA*/,
282 'Ù' /*0xD9*/, 'Û' /*0xDB*/, 'Ù' /*0xD9*/, 'Ù' /*0xD9*/, 'Ù' /*0xD9*/, 'Ù' /*0xD9*/, 'Ù' /*0xD9*/
285 STATIC CONST UBYTE i_descr[] =
287 DPF_MOD, 0x10,
288 DPF_MOD, 0x25,
289 0, '¡', /* 0xA1 */
290 0, '¦', /* 0xA6 */
291 0, 0x09,
292 0, 0x09,
293 0, 0x89,
294 0, 0x89,
296 'i', 'í' /*0xED*/, 'ì' /*0xEC*/, 'î' /*0xEE*/, 'i', 'ï' /*0xEF*/, 'i',
297 'í' /*0xED*/, 'í' /*0xED*/, 'î' /*0xEE*/, 'í' /*0xED*/, 'í' /*0xED*/, 'í' /*0xED*/, 'í' /*0xED*/,
298 'ì' /*0xEC*/, 'î' /*0xEE*/, 'ì' /*0xEC*/, 'ì' /*0xEC*/, 'ì' /*0xEC*/, 'ì' /*0xEC*/, 'ì' /*0xEC*/,
300 'I', 'Í' /*0xCD*/, 'Ì' /*0xCC*/, 'Î' /*0xCE*/, 'I', 'Ï' /*0xCF*/, 'I',
301 'Í' /*0xCD*/, 'Í' /*0xCD*/, 'Î' /*0xCE*/, 'Í' /*0xCD*/, 'Í' /*0xCD*/, 'Í' /*0xCD*/, 'Í' /*0xCD*/,
302 'Ì' /*0xCC*/, 'Î' /*0xCE*/, 'Ì' /*0xCC*/, 'Ì' /*0xCC*/, 'Ì' /*0xCC*/, 'Ì' /*0xCC*/, 'Ì' /*0xCC*/
305 STATIC CONST UBYTE o_descr[] =
307 DPF_MOD, 0x10,
308 DPF_MOD, 0x25,
309 0, 'ø', /* 0xF8 */
310 0, 'Ø', /* 0xD8 */
311 0, 0x0F,
312 0, 0x0F,
313 0, 0x8F,
314 0, 0x8F,
316 'o', 'ó' /*0xF3*/, 'ò' /*0xF2*/, 'ô' /*0xF4*/, 'õ' /*0xF5*/, 'ö' /*0xF6*/, 'o',
317 'ó' /*0xF3*/, 'ó' /*0xF3*/, 'ô' /*0xF4*/, 'ó' /*0xF3*/, 'ó' /*0xF3*/, 'ó' /*0xF3*/, 'ó' /*0xF3*/,
318 'ò' /*0xF2*/, 'ô' /*0xF4*/, 'ò' /*0xF2*/, 'ò' /*0xF2*/, 'ò' /*0xF2*/, 'ò' /*0xF2*/, 'ò' /*0xF2*/,
320 'O', 'Ó' /*0xD3*/, 'Ò' /*0xD2*/, 'Ô' /*0xD4*/, 'Õ' /*0xD5*/, 'Ö' /*0xD6*/, 'O',
321 'Ó' /*0xD3*/, 'Ó' /*0xD3*/, 'Ô' /*0xD4*/, 'Ó' /*0xD3*/, 'Ó' /*0xD3*/, 'Ó' /*0xD3*/, 'Ó' /*0xD3*/,
322 'Ò' /*0xD2*/, 'Ô' /*0xD4*/, 'Ò' /*0xD2*/, 'Ò' /*0xD2*/, 'Ò' /*0xD2*/, 'Ò' /*0xD2*/, 'Ò' /*0xD2*/
325 STATIC CONST UBYTE y_descr[] =
327 DPF_MOD, 0x10,
328 DPF_MOD, 0x25,
329 0, '±',
330 0, '¬',
331 0, 0x19,
332 0, 0x19,
333 0, 0x99,
334 0, 0x99,
336 'y', 'ý', 'y', 'y', 'y', 'ÿ', 'y',
337 'ý', 'ý', 'ý', 'ý', 'ý', 'ý', 'ý',
338 'y', 'y', 'y', 'y', 'y', 'y', 'y',
340 'Y', 'Ý', 'Y', 'Y', 'Y', 'Y', 'Y',
341 'Ý', 'Ý', 'Ý', 'Ý', 'Ý', 'Ý', 'Ý',
342 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'
345 STATIC CONST UBYTE n_descr[] =
347 DPF_MOD, 0x10,
348 DPF_MOD, 0x25,
349 0, '­',
350 0, '¯',
351 0, 0x0E,
352 0, 0x0E,
353 0, 0x8E,
354 0, 0x8E,
356 'n', 'n', 'n', 'n', 'ñ', 'n', 'n',
357 'n', 'n', 'n', 'n', 'n', 'n', 'n',
358 'n', 'n', 'n', 'n', 'n', 'n', 'n',
360 'N', 'N', 'N', 'N', 'Ñ', 'N', 'N',
361 'N', 'N', 'N', 'N', 'N', 'N', 'N',
362 'N', 'N', 'N', 'N', 'N', 'N', 'N'
365 STATIC CONST UBYTE f_descr[] =
367 0, 'f',
368 0, 'F',
369 DPF_DEAD, 1 + (7 << DP_2DFACSHIFT),
370 DPF_DEAD, 1 + (7 << DP_2DFACSHIFT),
371 0, 0x06,
372 0, 0x06,
373 0, 0x86,
374 0, 0x86
377 STATIC CONST UBYTE g_descr[] =
379 0, 'g',
380 0, 'G',
381 DPF_DEAD, 2 + (7 << DP_2DFACSHIFT),
382 DPF_DEAD, 2 + (7 << DP_2DFACSHIFT),
383 0, 0x07,
384 0, 0x07,
385 0, 0x87,
386 0, 0x87
389 STATIC CONST UBYTE h_descr[] =
391 0, 'h',
392 0, 'H',
393 DPF_DEAD, 3,
394 DPF_DEAD, 3,
395 0, 0x08,
396 0, 0x08,
397 0, 0x88,
398 0, 0x88
401 STATIC CONST UBYTE j_descr[] =
403 0, 'j',
404 0, 'J',
405 DPF_DEAD, 4,
406 DPF_DEAD, 4,
407 0, 0x0A,
408 0, 0x0A,
409 0, 0x8A,
410 0, 0x8A,
413 STATIC CONST UBYTE k_descr[] =
415 0, 'k',
416 0, 'K',
417 DPF_DEAD, 5,
418 DPF_DEAD, 5,
419 0, 0x0B,
420 0, 0x0B,
421 0, 0x8B,
422 0, 0x8B,
425 #if 0
426 // Making key 0 a dead key would require a fix
427 // because prev. key is initialized with 0.
428 // Keymap.library treads that as if dead key 0 has
429 // been pressed before.
430 STATIC CONST UBYTE key00_descr[] =
432 DPF_DEAD, 3,
433 0, '°',
434 0, '`',
435 0, '~',
436 0, 0,
437 0, 0,
438 0, 0,
439 0, 0
441 #endif
443 STATIC CONST UBYTE key0c_descr[] =
445 DPF_DEAD, 1 + (7 << DP_2DFACSHIFT),
446 DPF_DEAD, 2 + (7 << DP_2DFACSHIFT),
447 0, '=',
448 0, '+'
451 STATIC CONST IPTR lokeymap[] =
453 BYTES('°', '^', '°', '^'), /* 00 Left of 1 Key */
454 BYTES('!', '¹', '!', '1'), /* 01 1 */
455 BYTES('@', '²', '"', '2'), /* 02 2 */
456 BYTES('#', '³', '§', '3'), /* 03 3 */
457 BYTES('¢', '°', '$', '4'), /* 04 4 */
458 BYTES('%', '¼', '%', '5'), /* 05 5 */
459 BYTES('^', '½', '&', '6'), /* 06 6 */
460 BYTES('¾', '{', '/', '7'), /* 07 7 */
461 BYTES('*', '[', '(', '8'), /* 08 8 */
462 BYTES('«', ']', ')', '9'), /* 09 9 */
463 BYTES('»', '}', '=', '0'), /* 0A 0 */
464 BYTES('|', '\\', '?', 'ß'), /* 0B Right of 0 */
465 DEAD(key0c_descr), /* 0C 2nd right of 0 */
466 BYTES('`', '`', '\'', '#'), /* 0D 3rd right of 0 */
467 BYTES(0, 0, 0, 0), /* 0E undefined */
468 BYTES(0, 0, 0, '0'), /* 0F NUM 0 */
469 BYTES('@', '@', 'Q', 'q'), /* 10 */
470 BYTES('°', '°', 'W', 'w'), /* 11 */
471 DEAD(e_descr), /* 12 */
472 BYTES('®', '®', 'R', 'r'), /* 13 */
473 BYTES('Þ', 'þ', 'T', 't'), /* 14 */
474 BYTES('¥', EUR, 'Z', 'z'), /* 15 */
475 DEAD(u_descr), /* 16 */
476 DEAD(i_descr), /* 17 */
477 DEAD(o_descr), /* 18 */
478 BYTES('¶', '¶', 'P', 'p'), /* 19 */
480 BYTES('{', '[', 'Ü', 'ü'), /* 1A */
481 BYTES('*', '~', '*', '+'), /* 1B */
482 BYTES(0, 0, 0, 0), /* 1C undefined */
483 BYTES(0, 0, 0, '1'), /* 1D NUM 1*/
484 BYTES(0, 0, 0, '2'), /* 1E NUM 2*/
485 BYTES(0, 0, 0, '3'), /* 1F NUM 3*/
487 DEAD(a_descr), /* 20 */
488 BYTES('§', 'ß', 'S', 's'), /* 21 */
489 BYTES('Ð', 'ð', 'D', 'd'), /* 22 */
490 DEAD(f_descr), /* 23 */
491 DEAD(g_descr), /* 24 */
492 DEAD(h_descr), /* 25 */
493 DEAD(j_descr), /* 26 */
494 DEAD(k_descr), /* 27 */
495 BYTES('£', '£', 'L', 'l'), /* 28 */
497 BYTES(':', ';', 'Ö', 'ö'), /* 29 */
498 BYTES('"', '\'', 'Ä', 'ä'), /* 2A */
499 BYTES('`', '`', '\'', '#'), /* 2B */
500 BYTES(0, 0, 0, 0), /* 2C undefined */
501 BYTES(0, 0, 0, '4'), /* 2D NUM 4 */
502 BYTES(0, 0, 0, '5'), /* 2E NUM 5 */
503 BYTES(0, 0, 0, '6'), /* 2F NUM 6 */
504 BYTES('¦', '|', '>', '<'), /* 30 */
505 DEAD(y_descr), /* 31 */
506 BYTES('÷', '×', 'X', 'x'), /* 32 */
507 BYTES('Ç', 'ç', 'C', 'c'), /* 33 */
508 BYTES('ª', 'ª', 'V', 'v'), /* 34 */
509 BYTES('º', 'º', 'B', 'b'), /* 35 */
510 DEAD(n_descr), /* 36 */
511 BYTES('µ', 'µ', 'M', 'm'), /* 37 */
513 BYTES('<', ',', ';', ','), /* 38 */
514 BYTES('>', '.', ':', '.'), /* 39 */
515 BYTES('?', '/', '_', '-'), /* 3A */
516 BYTES(0, 0, 0, 0), /* 3B */
517 BYTES(0, 0, 0, ','), /* 3C NUM . */
518 BYTES(0, 0, 0, '7'), /* 3D NUM 7 */
519 BYTES(0, 0, 0, '8'), /* 3E NUM 8 */
520 BYTES(0, 0, 0, '9'), /* 3F NUM 9 */
523 #include "standard.h"
525 STATIC CONST UBYTE space_descr[] =
527 DPF_MOD, 0x4,
528 0, 0XA0,
530 ' ', '´' /*0xB4*/, '`', '^', '~', '¨' /*0xA8*/, '°' /*0xB0*/,
531 '´' /*0xB4*/, '´' /*0xB4*/, '^', '´' /*0xB4*/, '´' /*0xB4*/, '´' /*0xB4*/, '´' /*0xB4*/,
532 '`', '^', '`', '`', '`', '`', '`'
535 STATIC CONST IPTR hikeymap[] =
537 DEAD(space_descr), /* 40 */
538 BYTES(8, 8, 8, 8), /* 41 BACKSPACE*/
539 STRING(tab_descr), /* 42 TAB */
540 BYTES(13, 13, 13, 13), /* 43 ENTER */
541 BYTES(0, 0, 10, 13), /* 44 RETURN */
542 BYTES(0, 0, 0x9B, 27), /* 45 ESCAPE */
543 BYTES(127, 127, 127, 127), /* 46 DEL */
544 STRING(insert_descr), /* 47 INSERT ?? */
545 STRING(pageup_descr), /* 48 PAGEUP ?? */
546 STRING(pagedown_descr), /* 49 PAGEDOWN ?? */
547 BYTES('-', '-', '-', '-'), /* 4A NUMPAD - */
548 STRING(f11_descr), /* 4B F11 ?? */
549 STRING(up_descr), /* 4C CURSOR UP*/
550 STRING(down_descr), /* 4D CURSOR DOWN*/
551 STRING(right_descr), /* 4E CURSOR RIGHT */
552 STRING(left_descr), /* 4F CURSOR LEFT */
553 STRING(f1_descr), /* 50 F1 */
554 STRING(f2_descr), /* 51 */
555 STRING(f3_descr), /* 52 */
556 STRING(f4_descr), /* 53 */
557 STRING(f5_descr), /* 54 */
558 STRING(f6_descr), /* 55 */
559 STRING(f7_descr), /* 56 */
560 STRING(f8_descr), /* 57 */
561 STRING(f9_descr), /* 58 */
562 STRING(f10_descr), /* 59 */
563 BYTES(0, 0, 0, 0), /* 5A */
564 BYTES('/', '/', '/', '/'), /* 5B */
565 BYTES('*', '*', '*', '*'), /* 5C */
566 BYTES('-', '-', '-', '-'), /* 5D */
567 BYTES('+', '+', '+', '+'), /* 5E */
568 STRING(help_descr), /* 5F HELP */
569 BYTES(0, 0, 0, 0), /* 60 */
570 BYTES(0, 0, 0, 0), /* 61 */
571 BYTES(0, 0, 0, 0), /* 62 */
572 BYTES(0, 0, 0, 0), /* 63 */
573 BYTES(0, 0, 0, 0), /* 64 */
574 BYTES(0, 0, 0, 0), /* 65 */
575 BYTES(0, 0, 0, 0), /* 66 */
576 BYTES(0, 0, 0, 0), /* 67 */
577 BYTES(0, 0, 0, 0), /* 68 */
578 BYTES(0, 0, 0, 0), /* 69 */
579 BYTES(0, 0, 0, 0), /* 6A */
580 BYTES(0, 0, 0, 0), /* 6B */
581 BYTES(0, 0, 0, 0), /* 6C */
582 BYTES(0, 0, 0, 0), /* 6D */
583 STRING(pausebreak_descr), /* 6E PAUSE/BREAK ?? */
584 STRING(f12_descr), /* 6F F12 ?? */
585 STRING(home_descr), /* 70 HOME ?? */
586 STRING(end_descr), /* 71 END ?? */
587 BYTES(0, 0, 0, 0), /* 72 */
588 BYTES(0, 0, 0, 0), /* 73 */
589 BYTES(0, 0, 0, 0), /* 74 */
590 BYTES(0, 0, 0, 0), /* 75 */
591 BYTES(0, 0, 0, 0), /* 76 */
592 BYTES(0, 0, 0, 0), /* 77 */
593 BYTES(0, 0, 0, 0), /* 78 */
594 BYTES(0, 0, 0, 0), /* 79 */
595 BYTES(0, 0, 0, 0), /* 7A */
596 BYTES(0, 0, 0, 0), /* 7B */
597 BYTES(0, 0, 0, 0), /* 7C */
598 BYTES(0, 0, 0, 0), /* 7D */
599 BYTES(0, 0, 0, 0), /* 7E */
600 BYTES(0, 0, 0, 0), /* 7F */
603 #undef SETBITS
605 #define SETBITS(b0, b1, b2, b3, b4, b5, b6, b7) \
606 (b0<<0)|(b1<<1)|(b2<<2)|(b3<<3)|(b4<<4)|(b5<<5)|(b6<<6)|(b7<<7)
608 STATIC CONST UBYTE locapsable[] =
610 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 00 - 07 */
611 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 08 - 0F */
613 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
614 SETBITS(1, 1, 1, 0, 0, 0, 0, 0), /* 18 - 1F */
616 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
617 SETBITS(1, 1, 1, 0, 0, 0, 0, 0), /* 28 - 2F */
619 SETBITS(0, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
620 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 38 - 3F */
623 STATIC CONST UBYTE hicapsable[] =
625 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 40 - 47 */
626 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 48 - 4F */
628 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
629 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 58 - 5F */
631 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
632 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
634 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
635 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */
638 STATIC CONST UBYTE lorepeatable[] =
640 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 00 - 07 */
641 SETBITS(1, 1, 1, 1, 1, 1, 0, 1), /* 08 - 0F */
643 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
644 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 18 - 1F */
646 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
647 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 28 - 2F */
649 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
650 SETBITS(1, 1, 1, 0, 1, 1, 1, 1) /* 38 - 3F */
653 STATIC CONST UBYTE hirepeatable[] =
655 SETBITS(1, 1, 1, 0, 0, 0, 1, 0), /* 40 - 47 */
656 SETBITS(1, 1, 0, 0, 1, 1, 1, 1), /* 48 - 4F */
658 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
659 SETBITS(0, 0, 1, 1, 1, 1, 1, 0), /* 58 - 5F */
661 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
662 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
664 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
665 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */