real dead key
[AROS.git] / workbench / devs / keymaps / pc105_n.c
blobb40a743ab1134fb58f88316475e655c422e0fafc
1 /*
2 Copyright © 1995-2006, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Norsk (Norwegian) PC105 Keymap
6 Lang: English
7 */
9 #include <devices/keymap.h>
11 STATIC char keymapname[] = "pc105_n";
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 =
25 #if (AROS_FLAVOUR & AROS_FLAVOUR_BINCOMPAT)
27 NULL, NULL, 0, 0, keymapname
29 #else
31 NULL, NULL, keymapname, 0, 0
33 #endif
35 (UBYTE *)lokeymaptypes,
36 (IPTR *)lokeymap,
37 (UBYTE *)locapsable,
38 (UBYTE *)lorepeatable,
39 (UBYTE *)hikeymaptypes,
40 (IPTR *)hikeymap,
41 (UBYTE *)hicapsable,
42 (UBYTE *)hirepeatable
46 #undef N
47 #undef S
48 #undef A
49 #undef C
50 #undef D
51 #undef V
52 #undef ST
53 #undef NOP
55 #define N KC_NOQUAL
56 #define S KCF_SHIFT
57 #define A KCF_ALT
58 #define C KCF_CONTROL
59 #define D KCF_DEAD
60 #define V KC_VANILLA
61 #define ST KCF_STRING
62 #define NOP KCF_NOP
64 #define EUR 0xA4 /* ISO 8859-15: Euro = 164 = 0xA4) */
66 STATIC CONST UBYTE lokeymaptypes[] =
68 S, /* 00 */
69 S, /* 01 */
70 S|A, /* 02 */
71 S|A, /* 03 */
72 S, /* 04 */
73 S, /* 05 */
74 S, /* 06 */
75 S|A, /* 07 */
76 S|A, /* 08 */
77 S|A, /* 09 */
78 S|A, /* 0A */
79 ST|V, /* 0B */
80 S|A, /* 0C */
81 N, /* 0D */
82 N, /* 0E */
83 S|A, /* 0F */
84 V, /* 10 q */
85 V, /* 11 w */
86 V, /* 12 e */
87 V, /* 13 r */
88 V, /* 14 t */
89 V, /* 15 z */
90 V, /* 16 u */
91 V, /* 17 i */
92 V, /* 18 o */
93 V, /* 19 p */
94 S|A, /* 1A */
95 D, /* 1B */
96 S|A, /* 1C */
97 S|A, /* 1D */
98 S|A, /* 1E */
99 S|A, /* 1F */
100 V, /* 20 a */
101 V, /* 21 s */
102 V, /* 22 d */
103 V, /* 23 f */
104 V, /* 24 g */
105 V, /* 25 h */
106 V, /* 26 j */
107 V, /* 27 k */
108 V, /* 28 l */
109 S, /* 29 */
110 S, /* 2A */
111 S, /* 2B */
112 N, /* 2C */
113 N, /* 2D */
114 N, /* 2E */
115 N, /* 2F */
116 S|A, /* 30 */
117 V, /* 31 y */
118 V, /* 32 x */
119 V, /* 33 c */
120 V, /* 34 v */
121 V, /* 35 b */
122 V, /* 36 n */
123 V, /* 37 m */
124 S|A, /* 38 */
125 S|A, /* 39 */
126 S, /* 3A */
127 N, /* 3B */
128 N, /* 3C */
129 N, /* 3D */
130 N, /* 3E */
131 N, /* 3F */
134 STATIC CONST UBYTE hikeymaptypes[] =
136 N, /* 40 SPACE */
137 N, /* 41 BACKSPACE */
138 ST|S, /* 42 TAB */
139 N, /* 43 ENTER */
140 C, /* 44 RETURN */
141 A, /* 45 ESCAPE */
142 N, /* 46 DEL */
143 ST|S, /* 47 INSERT ?? */
144 ST|S, /* 48 PAGE UP ?? */
145 ST|S, /* 49 PAGE DOWN ?? */
146 N, /* 4A NUMERIC PAD - */
147 ST|S, /* 4B F11 ?? */
148 ST|S, /* 4C CURSORUP*/
149 ST|S, /* 4D CURSORDOWN */
150 ST|S, /* 4E CURSORRIGHT */
151 ST|S, /* 4F CURSORLEFT */
152 ST|S, /* 50 F1 */
153 ST|S, /* 51 F2 */
154 ST|S, /* 52 F3 */
155 ST|S, /* 53 F4 */
156 ST|S, /* 54 F5 */
157 ST|S, /* 55 F6 */
158 ST|S, /* 56 F7 */
159 ST|S, /* 57 F8 */
160 ST|S, /* 58 F9 */
161 ST|S, /* 59 F10 */
162 NOP, /* 5A NUMLOCK */
163 N, /* 5B NUMPAD ) */
164 N, /* 5C NUMPAD / */
165 N, /* 5D NUMPAD * */
166 N, /* 5E NUMPAD + */
167 ST, /* 5F HELP */
168 NOP, /* 60 LEFT SHIFT*/
169 NOP, /* 61 RIGHT SHIFT */
170 NOP, /* 62 CAPS LOCK */
171 NOP, /* 63 CONTROL */
172 NOP, /* 64 LALT */
173 NOP, /* 65 RALT */
174 NOP, /* 66 LCOMMAND */
175 NOP, /* 67 RCOMMAND */
176 NOP, /* 68 LEFT MOUSE BUTTON*/
177 NOP, /* 69 RIGHT MOUSE BUTTON */
178 NOP, /* 6A MIDDLE MOUSE BUTTON */
179 NOP, /* 6B */
180 NOP, /* 6C */
181 NOP, /* 6D */
182 ST|A, /* 6E PAUSE/BREAK ??*/
183 ST|S, /* 6F F12 ?? */
184 ST|C, /* 70 HOME ?? */
185 ST|C, /* 71 END ?? */
186 NOP, /* 72 */
187 NOP, /* 73 */
188 NOP, /* 74 */
189 NOP, /* 75 */
190 NOP, /* 76 */
191 NOP, /* 77 */
192 NOP, /* 78 */
193 NOP, /* 79 */
194 NOP, /* 7A */
195 NOP, /* 7B */
196 NOP, /* 7C */
197 NOP, /* 7D */
198 NOP, /* 7E */
199 NOP /* 7F */
202 #undef N
203 #undef S
204 #undef A
205 #undef C
206 #undef D
207 #undef V
208 #undef ST
209 #undef NOP
211 #undef STRING
212 #undef DEAD
213 #undef BYTES
215 #define STRING(x) (IPTR)x
216 #define DEAD(x) (IPTR)x
217 #define BYTES(b0, b1, b2, b3) \
218 (((UBYTE)b0)<<24) | (((UBYTE)b1)<<16) | (((UBYTE)b2)<<8) | (((UBYTE)b3)<<0)
220 STATIC CONST UBYTE key0b_descr[] =
222 1,16,
223 1,17,
224 1,18,
225 1,19,
226 1,20,
227 1,21,
228 1,22,
229 1,23,
230 '+', /* NO QUAL */
231 '?', /* SHIFT */
232 '\\', /* ALT */
233 '\\', /* ALT + SHIFT */
234 28, /* CTRL */
235 28, /* CTRL + SHIFT */
236 28, /* CTRL + ALT */
237 28, /* CTRL + ALT + SHIFT */
240 STATIC CONST IPTR lokeymap[] =
242 BYTES('¬', '§', '§', '|'), /* 00 Left of 1 Key */
243 BYTES('¹', '1', '!', '1'), /* 01 1 */
244 BYTES('@', '@', '"', '2'), /* 02 2 */
245 BYTES('£', '£', '#', '3'), /* 03 3 */
246 BYTES('$', '4', '$', '4'), /* 04 4 */
247 BYTES('½', '½', '%', '5'), /* 05 5 */
248 BYTES('¾', '¾', '&', '6'), /* 06 6 */
249 BYTES('{', '{', '/', '7'), /* 07 7 */
250 BYTES('[', '[', '(', '8'), /* 08 8 */
251 BYTES(']', ']', ')', '9'), /* 09 9 */
252 BYTES('}', '}', '=', '0'), /* 0A 0 */
253 STRING(key0b_descr), /* 0B Right of 0 */
254 BYTES('`', '´', '`', '\\'), /* 0C 2nd right of 0 */
255 BYTES('|', '|', '|', '|'), /* 0D 3rd right of 0 */
256 BYTES(0, 0, 0, 0), /* 0E undefined */
257 BYTES('0', '0', '0', '0'), /* 0F NUM 0 */
258 BYTES('@', '@', 'Q', 'q'), /* 10 */
259 BYTES('W', 'w', 'W', 'w'), /* 11 */
260 BYTES(EUR, EUR, 'E', 'e'), /* 12 */
261 BYTES('R', 'r', 'R', 'r'), /* 13 */
262 BYTES('T', 't', 'T', 't'), /* 14 */
263 BYTES('Y', 'y', 'Y', 'y'), /* 15 */
264 BYTES('U', 'u', 'U', 'u'), /* 16 */
265 BYTES('I', 'i', 'I', 'i'), /* 17 */
266 BYTES('O', 'o', 'O', 'o'), /* 18 */
267 BYTES('P', 'p', 'P', 'p'), /* 19 */
269 BYTES('Å', 'å', 'Å', 'å'), /* 1A */
270 BYTES('^', '~', '^', '¨'), /* 1B */
271 BYTES(0, 0, 0, 0), /* 1C undefined */
272 BYTES('1', '1', '1', '1'), /* 1D NUM 1*/
273 BYTES('2', '2', '2', '2'), /* 1E NUM 2*/
274 BYTES('3', '3', '3', '3'), /* 1F NUM 3*/
276 BYTES('A', 'a', 'A', 'a'), /* 20 */
277 BYTES('S', 's', 'S', 's'), /* 21 */
278 BYTES('D', 'd', 'D', 'd'), /* 22 */
279 BYTES('F', 'f', 'F', 'f'), /* 23 */
280 BYTES('G', 'g', 'G', 'g'), /* 24 */
281 BYTES('H', 'h', 'H', 'h'), /* 25 */
282 BYTES('J', 'j', 'J', 'j'), /* 26 */
283 BYTES('K', 'k', 'K', 'k'), /* 27 */
284 BYTES('L', 'l', 'L', 'l'), /* 28 */
286 BYTES('Ø', 'ø', 'Ø', 'ø'), /* 29 */
287 BYTES('Æ', 'æ', 'Æ', 'æ'), /* 2A */
288 BYTES('*', '\'', '*', '\''), /* 2B */
289 BYTES(0, 0, 0, 0), /* 2C undefined */
290 BYTES('4', '4', '4', '4'), /* 2D NUM 4 */
291 BYTES('5', '5', '5', '5'), /* 2E NUM 5 */
292 BYTES('6', '6', '6', '6'), /* 2F NUM 6 */
293 BYTES('|', '|', '>', '<'), /* 30 */
294 BYTES('Z', 'z', 'Z', 'z'), /* 31 */
295 BYTES('X', 'x', 'X', 'x'), /* 32 */
296 BYTES('C', 'c', 'C', 'c'), /* 33 */
297 BYTES('V', 'v', 'V', 'v'), /* 34 */
298 BYTES('B', 'b', 'B', 'b'), /* 35 */
299 BYTES('N', 'n', 'N', 'n'), /* 36 */
300 BYTES('µ', 'µ', 'M', 'm'), /* 37 */
302 BYTES(';', ',', ';', ','), /* 38 */
303 BYTES(':', '.', ':', '.'), /* 39 */
304 BYTES('_', '-', '_', '-'), /* 3A */
305 BYTES(0, 0, 0, 0), /* 3B */
306 BYTES('.', '.', '.', '.'), /* 3C NUM . */
307 BYTES('7', '7', '7', '7'), /* 3D NUM 7 */
308 BYTES('8', '8', '8', '8'), /* 3E NUM 8 */
309 BYTES('9', '9', '9', '9'), /* 3F NUM 9 */
312 #include "standard.h"
314 STATIC CONST IPTR hikeymap[] =
316 BYTES(' ', ' ', ' ', ' '), /* 40 */
317 BYTES(8, 8, 8, 8), /* 41 BACKSPACE*/
318 STRING(tab_descr), /* 42 TAB */
319 BYTES(13, 13, 13, 13), /* 43 ENTER */
320 BYTES(0, 0, 10, 13), /* 44 RETURN */
321 BYTES(0, 0, 0x9B, 27), /* 45 ESCAPE */
322 BYTES(127, 127, 127, 127), /* 46 DEL */
323 STRING(insert_descr), /* 47 INSERT ?? */
324 STRING(pageup_descr), /* 48 PAGEUP ?? */
325 STRING(pagedown_descr), /* 49 PAGEDOWN ?? */
326 BYTES('-', '-', '-', '-'), /* 4A NUMPAD - */
327 STRING(f11_descr), /* 4B F11 ?? */
328 STRING(up_descr), /* 4C CURSOR UP*/
329 STRING(down_descr), /* 4D CURSOR DOWN*/
330 STRING(right_descr), /* 4E CURSOR RIGHT */
331 STRING(left_descr), /* 4F CURSOR LEFT */
332 STRING(f1_descr), /* 50 F1 */
333 STRING(f2_descr), /* 51 */
334 STRING(f3_descr), /* 52 */
335 STRING(f4_descr), /* 53 */
336 STRING(f5_descr), /* 54 */
337 STRING(f6_descr), /* 55 */
338 STRING(f7_descr), /* 56 */
339 STRING(f8_descr), /* 57 */
340 STRING(f9_descr), /* 58 */
341 STRING(f10_descr), /* 59 */
342 BYTES(0, 0, 0, 0), /* 5A */
343 BYTES('/', '/', '/', '/'), /* 5B */
344 BYTES('*', '*', '*', '*'), /* 5C */
345 BYTES('-', '-', '-', '-'), /* 5D */
346 BYTES('+', '+', '+', '+'), /* 5E */
347 STRING(help_descr), /* 5F HELP */
348 BYTES(0, 0, 0, 0), /* 60 */
349 BYTES(0, 0, 0, 0), /* 61 */
350 BYTES(0, 0, 0, 0), /* 62 */
351 BYTES(0, 0, 0, 0), /* 63 */
352 BYTES(0, 0, 0, 0), /* 64 */
353 BYTES(0, 0, 0, 0), /* 65 */
354 BYTES(0, 0, 0, 0), /* 66 */
355 BYTES(0, 0, 0, 0), /* 67 */
356 BYTES(0, 0, 0, 0), /* 68 */
357 BYTES(0, 0, 0, 0), /* 69 */
358 BYTES(0, 0, 0, 0), /* 6A */
359 BYTES(0, 0, 0, 0), /* 6B */
360 BYTES(0, 0, 0, 0), /* 6C */
361 BYTES(0, 0, 0, 0), /* 6D */
362 STRING(pausebreak_descr), /* 6E PAUSE/BREAK ?? */
363 STRING(f12_descr), /* 6F F12 ?? */
364 STRING(home_descr), /* 70 HOME ?? */
365 STRING(end_descr), /* 71 END ?? */
366 BYTES(0, 0, 0, 0), /* 72 */
367 BYTES(0, 0, 0, 0), /* 73 */
368 BYTES(0, 0, 0, 0), /* 74 */
369 BYTES(0, 0, 0, 0), /* 75 */
370 BYTES(0, 0, 0, 0), /* 76 */
371 BYTES(0, 0, 0, 0), /* 77 */
372 BYTES(0, 0, 0, 0), /* 78 */
373 BYTES(0, 0, 0, 0), /* 79 */
374 BYTES(0, 0, 0, 0), /* 7A */
375 BYTES(0, 0, 0, 0), /* 7B */
376 BYTES(0, 0, 0, 0), /* 7C */
377 BYTES(0, 0, 0, 0), /* 7D */
378 BYTES(0, 0, 0, 0), /* 7E */
379 BYTES(0, 0, 0, 0), /* 7F */
382 #undef SETBITS
384 #define SETBITS(b0, b1, b2, b3, b4, b5, b6, b7) \
385 (b0<<0)|(b1<<1)|(b2<<2)|(b3<<3)|(b4<<4)|(b5<<5)|(b6<<6)|(b7<<7)
387 STATIC CONST UBYTE locapsable[] =
389 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 00 - 07 */
390 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 08 - 0F */
392 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
393 SETBITS(1, 1, 1, 0, 0, 0, 0, 0), /* 18 - 1F */
395 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
396 SETBITS(1, 1, 1, 0, 0, 0, 0, 0), /* 28 - 2F */
398 SETBITS(0, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
399 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 38 - 3F */
402 STATIC CONST UBYTE hicapsable[] =
404 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 40 - 47 */
405 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 48 - 4F */
407 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
408 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 58 - 5F */
410 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
411 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
413 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
414 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */
417 STATIC CONST UBYTE lorepeatable[] =
419 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 00 - 07 */
420 SETBITS(1, 1, 1, 1, 1, 1, 0, 1), /* 08 - 0F */
422 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 10 - 17 */
423 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 18 - 1F */
425 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 20 - 27 */
426 SETBITS(1, 1, 1, 1, 0, 1, 1, 1), /* 28 - 2F */
428 SETBITS(1, 1, 1, 1, 1, 1, 1, 1), /* 30 - 37 */
429 SETBITS(1, 1, 1, 0, 1, 1, 1, 1) /* 38 - 3F */
432 STATIC CONST UBYTE hirepeatable[] =
434 SETBITS(1, 1, 1, 0, 0, 0, 1, 0), /* 40 - 47 */
435 SETBITS(1, 1, 0, 0, 1, 1, 1, 1), /* 48 - 4F */
437 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 50 - 57 */
438 SETBITS(0, 0, 1, 1, 1, 1, 1, 0), /* 58 - 5F */
440 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 60 - 67 */
441 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 68 - 6F */
443 SETBITS(0, 0, 0, 0, 0, 0, 0, 0), /* 70 - 77 */
444 SETBITS(0, 0, 0, 0, 0, 0, 0, 0) /* 78 - 7F */