Char 28 ("CTRL \") was never sent by French keymap. Console handler closes the window...
[AROS.git] / workbench / devs / keymaps / pc105_f.c
blob5311a1efc0cde20cfe8fbec2d188e04a80526e51
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: French PC105 Keymap
6 Lang: English
7 */
9 #include "common.h"
11 DEFINE_KEYMAP("pc105_f")
13 #undef N
14 #undef S
15 #undef A
16 #undef C
17 #undef D
18 #undef V
19 #undef ST
20 #undef NOP
22 #define N KC_NOQUAL
23 #define S KCF_SHIFT
24 #define A KCF_ALT
25 #define C KCF_CONTROL
26 #define D KCF_DEAD
27 #define V KC_VANILLA
28 #define ST KCF_STRING
29 #define NOP KCF_NOP
31 #define EUR 0xA4 /* ISO 8859-15: Euro = 164 = 0xA4) */
33 STATIC CONST UBYTE lokeymaptypes[] =
35 S|A, /* 00 left of 1 */
36 S|A, /* 01 1 */
37 V, /* 02 2 */
38 V, /* 03 3 */
39 S|A, /* 04 4 */
40 S|A, /* 05 */
41 S|A, /* 06 */
42 S|A, /* 07 */
43 ST|V, /* 08 */
44 S|A, /* 09 */
45 S|A, /* 0A */
46 S|A, /* 0B Right of 0 */
47 S|A, /* 0C 2nd right of 0 */
48 N, /* 0D 3rd right of 0 */
49 N, /* 0E undef */
50 S|A, /* 0F NUM 0 */
52 D|V, /* 10 a */
53 V, /* 11 z */
54 D|V, /* 12 e */
55 V, /* 13 r */
56 V, /* 14 t */
57 V, /* 15 z */
58 D|V, /* 16 u */
59 D|V, /* 17 i */
60 D|V, /* 18 o */
61 V, /* 19 p */
63 D|S|A, /* 1A dead key ^" */
64 S|A, /* 1B $ £ */
65 N, /* 1C undefined */
66 N, /* 1D NUM 1 */
67 N, /* 1E NUM 2 */
68 N, /* 1F NUM 3 */
70 V, /* 20 q */
71 V, /* 21 s */
72 V, /* 22 d */
73 V, /* 23 f */
74 V, /* 24 g */
75 V, /* 25 h */
76 V, /* 26 j */
77 V, /* 27 k */
78 V, /* 28 l */
79 V, /* 29 m */
81 D|S|A, /* 2A ù % */
82 D|S|A, /* 2B * µ */
83 N, /* 2C undefined */
84 N, /* 2D NUM 4 */
85 N, /* 2E NUM 5 */
86 N, /* 2F NUM 6 */
87 S|A, /* 30 < > */
88 V, /* 31 w */
89 V, /* 32 x */
90 D|V, /* 33 c */
91 V, /* 34 v */
92 V, /* 35 b */
93 V, /* 36 n */
95 D|S|A, /* 37 , ? */
96 S|A, /* 38 ; . */
97 S|A, /* 39 : / */
98 S, /* 3A ! § */
99 N, /* 3B undefined */
100 N, /* 3C NUM . */
101 N, /* 3D NUM 7 */
102 N, /* 3E NUM 8 */
103 N, /* 3F NUM 9 */
106 STATIC CONST UBYTE hikeymaptypes[] =
108 D|A, /* 40 SPACE */
109 N, /* 41 BACKSPACE */
110 ST|S, /* 42 TAB */
111 N, /* 43 ENTER */
112 C, /* 44 RETURN */
113 A, /* 45 ESCAPE */
114 N, /* 46 DEL */
115 ST|S, /* 47 INSERT ?? */
116 ST|S, /* 48 PAGE UP ?? */
117 ST|S, /* 49 PAGE DOWN ?? */
118 N, /* 4A NUMERIC PAD - */
119 ST|S, /* 4B F11 ?? */
120 ST|S, /* 4C CURSORUP*/
121 ST|S, /* 4D CURSORDOWN */
122 ST|S, /* 4E CURSORRIGHT */
123 ST|S, /* 4F CURSORLEFT */
124 ST|S, /* 50 F1 */
125 ST|S, /* 51 F2 */
126 ST|S, /* 52 F3 */
127 ST|S, /* 53 F4 */
128 ST|S, /* 54 F5 */
129 ST|S, /* 55 F6 */
130 ST|S, /* 56 F7 */
131 ST|S, /* 57 F8 */
132 ST|S, /* 58 F9 */
133 ST|S, /* 59 F10 */
134 NOP, /* 5A NUMLOCK */
135 N, /* 5B NUMPAD ) */
136 N, /* 5C NUMPAD / */
137 N, /* 5D NUMPAD * */
138 N, /* 5E NUMPAD + */
139 ST, /* 5F HELP */
140 NOP, /* 60 LEFT SHIFT*/
141 NOP, /* 61 RIGHT SHIFT */
142 NOP, /* 62 CAPS LOCK */
143 NOP, /* 63 CONTROL */
144 NOP, /* 64 LALT */
145 NOP, /* 65 RALT */
146 NOP, /* 66 LCOMMAND */
147 NOP, /* 67 RCOMMAND */
148 NOP, /* 68 LEFT MOUSE BUTTON*/
149 NOP, /* 69 RIGHT MOUSE BUTTON */
150 NOP, /* 6A MIDDLE MOUSE BUTTON */
151 NOP, /* 6B */
152 NOP, /* 6C */
153 NOP, /* 6D */
154 ST|A, /* 6E PAUSE/BREAK ??*/
155 ST|S, /* 6F F12 ?? */
156 ST|C, /* 70 HOME ?? */
157 ST|C, /* 71 END ?? */
158 NOP, /* 72 */
159 NOP, /* 73 */
160 NOP, /* 74 */
161 NOP, /* 75 */
162 NOP, /* 76 */
163 NOP, /* 77 */
164 NOP, /* 78 */
165 NOP, /* 79 */
166 NOP, /* 7A */
167 NOP, /* 7B */
168 NOP, /* 7C */
169 NOP, /* 7D */
170 NOP, /* 7E */
171 NOP /* 7F */
174 #undef N
175 #undef S
176 #undef A
177 #undef C
178 #undef D
179 #undef V
180 #undef ST
181 #undef NOP
183 #undef STRING
184 #undef DEAD
185 #undef BYTES
187 #define STRING(x) (IPTR)x
188 #define DEAD(x) (IPTR)x
189 #define BYTES(b0, b1, b2, b3) \
190 (((UBYTE)b0)<<24) | (((UBYTE)b1)<<16) | (((UBYTE)b2)<<8) | (((UBYTE)b3)<<0)
192 /* dead symbols
194 1= ´
195 2 = `
196 3 = ^
197 4 = ~
198 5 = "
199 6 = °
203 STATIC CONST UBYTE KEY08_descr[] =
205 1,16,
206 1,17,
207 1,18,
208 1,19,
209 1,20,
210 1,21,
211 1,22,
212 1,23,
213 '_', /* NO QUAL */
214 '8', /* SHIFT */
215 '\\', /* ALT */
216 0, /* ALT + SHIFT */
217 '_', /* CTRL */
218 '8', /* CTRL + SHIFT */
219 28, /* CTRL + ALT */
220 0, /* CTRL + ALT + SHIFT */
223 STATIC CONST UBYTE a_descr[] =
225 DPF_MOD, 0x10,
226 DPF_MOD, 0x17,
227 0, 'æ', /* 0xE6 */
228 0, 'Æ', /* 0xC6 */
229 0, 0x01,
230 0, 0x01,
231 0, 0x81,
232 0, 0x81,
234 'a', 'á' /*0xE1*/, 'à' /*0xE0*/, 'â' /*0xE2*/, 'ã' /*0xE3*/, 'ä' /*0xE4*/, 'å' /*0xE5*/,
236 'A', 'Á' /*0xC1*/, 'À' /*0xC0*/, 'Â' /*0xC2*/, 'Ã' /*0xC3*/, 'Ä' /*0xC4*/, 'Å' /*0xC5*/
239 STATIC CONST UBYTE e_descr[] =
241 DPF_MOD, 0x10,
242 DPF_MOD, 0x17,
243 0, EUR,
244 0, '¢',
245 0, 0x05,
246 0, 0x05,
247 0, 0x85,
248 0, 0x85,
250 'e', 'é' /*0xE9*/, 'è' /*0xE8*/, 'ê' /*0xEA*/, 'e', 'ë' /*0xEB*/, 'e',
252 'E', 'É' /*0xC9*/, 'È' /*0xC8*/, 'Ê' /*0xCA*/, 'E', 'Ë' /*0xCB*/, 'E'
255 STATIC CONST UBYTE u_descr[] =
257 DPF_MOD, 0x10,
258 DPF_MOD, 0x17,
259 0, 'µ', /* 0xB5 */
260 0, 'µ', /* 0xB5 */
261 0, 0x15,
262 0, 0x15,
263 0, 0x95,
264 0, 0x95,
266 'u', 'ú' /*0xFA*/, 'ù' /*0xF9*/, 'û' /*0xFB*/, 'u', 'ü' /*0xFC*/, 'u',
268 'U', 'Ú' /*0xDA*/, 'Ù' /*0xD9*/, 'Û' /*0xDB*/, 'U', 'Ü' /*0xDC*/, 'U'
271 STATIC CONST UBYTE i_descr[] =
273 DPF_MOD, 0x10,
274 DPF_MOD, 0x17,
275 0, '¡', /* 0xA1 */
276 0, '¦', /* 0xA6 */
277 0, 0x09,
278 0, 0x09,
279 0, 0x89,
280 0, 0x89,
282 'i', 'í' /*0xED*/, 'ì' /*0xEC*/, 'î' /*0xEE*/, 'i', 'ï' /*0xEF*/, 'i',
284 'I', 'Í' /*0xCD*/, 'Ì' /*0xCC*/, 'Î' /*0xCE*/, 'I', 'Ï' /*0xCF*/, 'I'
287 STATIC CONST UBYTE o_descr[] =
289 DPF_MOD, 0x10,
290 DPF_MOD, 0x17,
291 0, 'ø', /* 0xF8 */
292 0, 'Ø', /* 0xD8 */
293 0, 0x0F,
294 0, 0x0F,
295 0, 0x8F,
296 0, 0x8F,
298 'o', 'ó' /*0xF3*/, 'ò' /*0xF2*/, 'ô' /*0xF4*/, 'õ' /*0xF5*/, 'ö' /*0xF6*/, 'o',
300 'O', 'Ó' /*0xD3*/, 'Ò' /*0xD2*/, 'Ô' /*0xD4*/, 'Õ' /*0xD5*/, 'Ö' /*0xD6*/, 'O'
303 STATIC CONST UBYTE c_descr[] =
305 DPF_MOD, 0x10,
306 DPF_MOD, 0x17,
307 0, '¢' /*0xA2*/,
308 0, '©' /*0xA9*/,
309 0, 0x03,
310 0, 0x03,
311 0, 0x83,
312 0, 0x83,
314 'c', 'ç' /*0xE7*/, 'c', 'c', 'c', 'c', 'c',
316 'C', 'Ç' /*0xC7*/, 'C', 'C', 'C', 'C', 'C'
319 STATIC CONST UBYTE space_descr[] =
321 DPF_MOD, 0x4,
322 0, 0XA0,
324 ' ', '´' /*0xB4*/, '`','^','~', '¨' /*0xA8*/, '°' /*0xB0*/
327 STATIC CONST UBYTE KEY1A_descr[] =
329 DPF_DEAD, 3,
330 DPF_DEAD, 5,
331 DPF_DEAD, 5,
332 DPF_DEAD, 6
335 STATIC CONST UBYTE KEY37_descr[] =
337 0, ',',
338 0, '?',
339 DPF_DEAD, 1,
340 DPF_DEAD, 1
343 STATIC CONST UBYTE KEY2A_descr[] =
345 0, 'ù',
346 0, '%',
347 DPF_DEAD, 3,
348 DPF_DEAD, 3
351 STATIC CONST UBYTE KEY2B_descr[] =
353 0, '*',
354 0, 'µ',
355 DPF_DEAD, 2,
356 DPF_DEAD, 2
359 STATIC CONST IPTR lokeymap[] =
361 BYTES('¬', '¬', '~', '²'), /* 00 Left of 1 Key */
362 BYTES('¡', '¹', '1', '&'), /* 01 1 */
363 BYTES('²', '~', '2', 'é'), /* 02 2 */
364 BYTES('£', '#', '3', '"'), /* 03 3 */
365 BYTES('$', '{', '4','\''), /* 04 4 */
366 BYTES('5', '[', '5', '('), /* 05 5 */
367 BYTES('6', '|', '6', '-'), /* 06 6 */
368 BYTES('7', '`', '7', 'è'), /* 07 7 */
369 STRING(KEY08_descr), /* 08 8 */ /* old: BYTES('8','\\', '8', '_'), */
370 BYTES('±', '^', '9', 'ç'), /* 09 9 */
371 BYTES('°', '@', '0', 'à'), /* 0A 0 */
372 BYTES('¿', ']', '°', ')'), /* 0B Right of 0 */
373 BYTES('+', '}', '+', '='), /* 0C 2nd right of 0 */
374 BYTES('|', '|', '|', '|'), /* 0D 3rd right of 0 */
375 BYTES(0, 0, 0, 0), /* 0E undefined */
376 BYTES('0', '0', '0', '0'), /* 0F NUM 0 */
377 DEAD(a_descr), /* 10 */ /* old: BYTES('Æ', 'æ', 'A', 'a'), */
378 BYTES('<', '«', 'Z', 'z'), /* 11 */
379 DEAD(e_descr), /* 12 */ /* old: BYTES('¢', EUR, 'E', 'e'), */
380 BYTES('®', '¶', 'R', 'r'), /* 13 */
381 BYTES('T', 't', 'T', 't'), /* 14 */
382 BYTES('¥', 'y', 'Y', 'y'), /* 15 */
383 DEAD(u_descr), /* 16 */ /* old: BYTES('U', 'u', 'U', 'u'), */
384 DEAD(i_descr), /* 17 */ /* old: BYTES('I', 'i', 'I', 'i'), */
385 DEAD(o_descr), /* 18 */ /* old: BYTES('Ø', 'ø', 'O', 'o'), */
386 BYTES('Þ', 'þ', 'P', 'p'), /* 19 */
388 DEAD(KEY1A_descr), /* 1A */ /* old: BYTES('°', '°', '"', '^'), */
389 BYTES('£', '¤', '£', '$'), /* 1B */
390 BYTES(0, 0, 0, 0), /* 1C undefined */
391 BYTES('1', '1', '1', '1'), /* 1D NUM 1*/
392 BYTES('2', '2', '2', '2'), /* 1E NUM 2*/
393 BYTES('3', '3', '3', '3'), /* 1F NUM 3*/
395 BYTES('Q', '@', 'Q', 'q'), /* 20 */
396 BYTES('§', 'ß', 'S', 's'), /* 21 */
397 BYTES('Ð', 'ð', 'D', 'd'), /* 22 */
398 BYTES('ª', 'f', 'F', 'f'), /* 23 */
399 BYTES('G', 'g', 'G', 'g'), /* 24 */
400 BYTES('H', 'h', 'H', 'h'), /* 25 */
401 BYTES('J', 'j', 'J', 'j'), /* 26 */
402 BYTES('&', 'k', 'K', 'k'), /* 27 */
403 BYTES('L', 'l', 'L', 'l'), /* 28 */
404 BYTES('º', 'µ', 'M', 'm'), /* 29 */
406 DEAD(KEY2A_descr), /* 2A */
407 DEAD(KEY2B_descr), /* 2B */
408 BYTES(0, 0, 0, 0), /* 2C undefined */
409 BYTES('4', '4', '4', '4'), /* 2D NUM 4 */
410 BYTES('5', '5', '5', '5'), /* 2E NUM 5 */
411 BYTES('6', '6', '6', '6'), /* 2F NUM 6 */
412 BYTES('¦', '|', '>', '<'), /* 30 */
413 BYTES('W', 'w', 'W', 'w'), /* 31 */
414 BYTES('>', '»', 'X', 'x'), /* 32 */
415 DEAD(c_descr), /* 33 */
416 BYTES('`', 'v', 'V', 'v'), /* 34 */
417 BYTES('\'','b', 'B', 'b'), /* 35 */
418 BYTES('N', 'n', 'N', 'n'), /* 36 */
420 DEAD(KEY37_descr), /* 37 */
421 BYTES('×', ';', '.', ';'), /* 38 */
422 BYTES('÷', '·', '/', ':'), /* 39 */
423 BYTES('§', '!', '§', '!'), /* 3A */
424 BYTES(0, 0, 0, 0), /* 3B */
425 BYTES('.', '.', '.', '.'), /* 3C NUM . */
426 BYTES('7', '7', '7', '7'), /* 3D NUM 7 */
427 BYTES('8', '8', '8', '8'), /* 3E NUM 8 */
428 BYTES('9', '9', '9', '9'), /* 3F NUM 9 */
431 #include "standard.h"
433 STATIC CONST IPTR hikeymap[] =
435 DEAD(space_descr), /* 40 */
436 BYTES(8, 8, 8, 8), /* 41 BACKSPACE*/
437 STRING(tab_descr), /* 42 TAB */
438 BYTES(13, 13, 13, 13), /* 43 ENTER */
439 BYTES(0, 0, 10, 13), /* 44 RETURN */
440 BYTES(0, 0, 0x9B, 27), /* 45 ESCAPE */
441 BYTES(127, 127, 127, 127), /* 46 DEL */
442 STRING(insert_descr), /* 47 INSERT ?? */
443 STRING(pageup_descr), /* 48 PAGEUP ?? */
444 STRING(pagedown_descr), /* 49 PAGEDOWN ?? */
445 BYTES('-', '-', '-', '-'), /* 4A NUMPAD - */
446 STRING(f11_descr), /* 4B F11 ?? */
447 STRING(up_descr), /* 4C CURSOR UP*/
448 STRING(down_descr), /* 4D CURSOR DOWN*/
449 STRING(right_descr), /* 4E CURSOR RIGHT */
450 STRING(left_descr), /* 4F CURSOR LEFT */
451 STRING(f1_descr), /* 50 F1 */
452 STRING(f2_descr), /* 51 */
453 STRING(f3_descr), /* 52 */
454 STRING(f4_descr), /* 53 */
455 STRING(f5_descr), /* 54 */
456 STRING(f6_descr), /* 55 */
457 STRING(f7_descr), /* 56 */
458 STRING(f8_descr), /* 57 */
459 STRING(f9_descr), /* 58 */
460 STRING(f10_descr), /* 59 */
461 BYTES(0, 0, 0, 0), /* 5A */
462 BYTES('/', '/', '/', '/'), /* 5B */
463 BYTES('*', '*', '*', '*'), /* 5C */
464 BYTES('-', '-', '-', '-'), /* 5D */
465 BYTES('+', '+', '+', '+'), /* 5E */
466 STRING(help_descr), /* 5F HELP */
467 BYTES(0, 0, 0, 0), /* 60 */
468 BYTES(0, 0, 0, 0), /* 61 */
469 BYTES(0, 0, 0, 0), /* 62 */
470 BYTES(0, 0, 0, 0), /* 63 */
471 BYTES(0, 0, 0, 0), /* 64 */
472 BYTES(0, 0, 0, 0), /* 65 */
473 BYTES(0, 0, 0, 0), /* 66 */
474 BYTES(0, 0, 0, 0), /* 67 */
475 BYTES(0, 0, 0, 0), /* 68 */
476 BYTES(0, 0, 0, 0), /* 69 */
477 BYTES(0, 0, 0, 0), /* 6A */
478 BYTES(0, 0, 0, 0), /* 6B */
479 BYTES(0, 0, 0, 0), /* 6C */
480 BYTES(0, 0, 0, 0), /* 6D */
481 STRING(pausebreak_descr), /* 6E PAUSE/BREAK ?? */
482 STRING(f12_descr), /* 6F F12 ?? */
483 STRING(home_descr), /* 70 HOME ?? */
484 STRING(end_descr), /* 71 END ?? */
485 BYTES(0, 0, 0, 0), /* 72 */
486 BYTES(0, 0, 0, 0), /* 73 */
487 BYTES(0, 0, 0, 0), /* 74 */
488 BYTES(0, 0, 0, 0), /* 75 */
489 BYTES(0, 0, 0, 0), /* 76 */
490 BYTES(0, 0, 0, 0), /* 77 */
491 BYTES(0, 0, 0, 0), /* 78 */
492 BYTES(0, 0, 0, 0), /* 79 */
493 BYTES(0, 0, 0, 0), /* 7A */
494 BYTES(0, 0, 0, 0), /* 7B */
495 BYTES(0, 0, 0, 0), /* 7C */
496 BYTES(0, 0, 0, 0), /* 7D */
497 BYTES(0, 0, 0, 0), /* 7E */
498 BYTES(0, 0, 0, 0), /* 7F */
501 #undef SETBITS
503 #define SETBITS(b0, b1, b2, b3, b4, b5, b6, b7) \
504 (b0<<0)|(b1<<1)|(b2<<2)|(b3<<3)|(b4<<4)|(b5<<5)|(b6<<6)|(b7<<7)
506 STATIC CONST UBYTE locapsable[] =
508 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 00 - 07 */
509 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 08 - 0F */
511 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
512 SETBITS(1, 1, 0, 0, 0, 0, 0, 0), /* 18 - 1F */
514 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
515 SETBITS(1, 0, 0, 0, 0, 0, 0, 0), /* 28 - 2F */
517 SETBITS(0, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
518 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 38 - 3F */
521 STATIC CONST UBYTE hicapsable[] =
523 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 40 - 47 */
524 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 48 - 4F */
526 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
527 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 58 - 5F */
529 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
530 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
532 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
533 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */
536 STATIC CONST UBYTE lorepeatable[] =
538 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 00 - 07 */
539 SETBITS(1, 1, 1, 1, 1, 1, 0, 1), /* 08 - 0F */
541 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
542 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 18 - 1F */
544 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
545 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 28 - 2F */
547 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
548 SETBITS(1, 1, 1, 0, 1, 1, 1, 1) /* 38 - 3F */
551 STATIC CONST UBYTE hirepeatable[] =
553 SETBITS(1, 1, 1, 0, 0, 0, 1, 0), /* 40 - 47 */
554 SETBITS(1, 1, 0, 0, 1, 1, 1, 1), /* 48 - 4F */
556 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
557 SETBITS(0, 0, 1, 1, 1, 1, 1, 0), /* 58 - 5F */
559 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
560 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
562 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
563 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */