|
|
1.1 root 1: #include "kbdmap.h"
2:
3: /* define a default keymap. This can be changed by keyboard ioctl's
4: (later at least..) */
5:
6: /* mode shortcuts: */
7: #define S KBD_MODE_STRING
8: #define DG (KBD_MODE_DEAD | KBD_MODE_GRAVE)
9: #define DA (KBD_MODE_DEAD | KBD_MODE_ACUTE)
10: #define DC (KBD_MODE_DEAD | KBD_MODE_CIRC)
11: #define DT (KBD_MODE_DEAD | KBD_MODE_TILDE)
12: #define DD (KBD_MODE_DEAD | KBD_MODE_DIER)
13: #define C KBD_MODE_CAPS
14: #define K KBD_MODE_KPAD
15:
16: struct kbdmap kbdmap = {
17: /* normal map */
18: {
19: 0, '`', /* 0x00 */
20: 0, '1',
21: 0, '2',
22: 0, '3',
23: 0, '4',
24: 0, '5',
25: 0, '6',
26: 0, '7',
27: 0, '8', /* 0x08 */
28: 0, '9',
29: 0, '0',
30: 0, '-',
31: 0, '=',
32: 0, '\\',
33: 0, 0,
34: K, '0',
35: C, 'q', /* 0x10 */
36: C, 'w',
37: C, 'e',
38: C, 'r',
39: C, 't',
40: C, 'y',
41: C, 'u',
42: C, 'i',
43: C, 'o', /* 0x18 */
44: C, 'p',
45: 0, '[',
46: 0, ']',
47: 0, 0,
48: K, '1',
49: K, '2',
50: K, '3',
51: C, 'a', /* 0x20 */
52: C, 's',
53: C, 'd',
54: C, 'f',
55: C, 'g',
56: C, 'h',
57: C, 'j',
58: C, 'k',
59: C, 'l', /* 0x28 */
60: 0, ';',
61: 0, '\'',
62: 0, 0,
63: 0, 0,
64: K, '4',
65: K, '5',
66: K, '6',
67: 0, 0, /* 0x30 */
68: C, 'z',
69: C, 'x',
70: C, 'c',
71: C, 'v',
72: C, 'b',
73: C, 'n',
74: C, 'm',
75: 0, ',', /* 0x38 */
76: 0, '.',
77: 0, '/',
78: 0, 0,
79: K, '.',
80: K, '7',
81: K, '8',
82: K, '9',
83: 0, ' ', /* 0x40 */
84: 0, DEL, /* really BS, DEL & BS swapped */
85: 0, '\t',
86: K, '\r', /* enter */
87: 0, '\r', /* return */
88: 0, ESC,
89: 0, '\b', /* really DEL, BS & DEL swapped */
90: 0, 0,
91: 0, 0, /* 0x48 */
92: 0, 0,
93: K, '-',
94: 0, 0,
95: S, 0x00, /* now it gets hairy.. CRSR UP */
96: S, 0x04, /* CRSR DOWN */
97: S, 0x08, /* CRSR RIGHT */
98: S, 0x0C, /* CRSR LEFT */
99: S, 0x10, /* 0x50 F1 */
100: S, 0x15, /* F2 */
101: S, 0x1A, /* F3 */
102: S, 0x1F, /* F4 */
103: S, 0x24, /* F5 */
104: S, 0x29, /* F6 */
105: S, 0x2E, /* F7 */
106: S, 0x33, /* 0x58 F8 */
107: S, 0x38, /* F9 */
108: S, 0x3D, /* F10 */
109: K, '(',
110: K, ')',
111: K, '/',
112: K, '*',
113: S, 0x42, /* HELP */
114: },
115:
116: /* shifted map */
117: {
118: 0, '~', /* 0x00 */
119: 0, '!',
120: 0, '@',
121: 0, '#',
122: 0, '$',
123: 0, '%',
124: 0, '^',
125: 0, '&',
126: 0, '*', /* 0x08 */
127: 0, '(',
128: 0, ')',
129: 0, '_',
130: 0, '+',
131: 0, '|',
132: 0, 0,
133: K, '0',
134: C, 'Q', /* 0x10 */
135: C, 'W',
136: C, 'E',
137: C, 'R',
138: C, 'T',
139: C, 'Y',
140: C, 'U',
141: C, 'I',
142: C, 'O', /* 0x18 */
143: C, 'P',
144: 0, '{',
145: 0, '}',
146: 0, 0,
147: K, '1',
148: K, '2',
149: K, '3',
150: C, 'A', /* 0x20 */
151: C, 'S',
152: C, 'D',
153: C, 'F',
154: C, 'G',
155: C, 'H',
156: C, 'J',
157: C, 'K',
158: C, 'L', /* 0x28 */
159: 0, ':',
160: 0, '\"',
161: 0, 0,
162: 0, 0,
163: K, '4',
164: K, '5',
165: K, '6',
166: 0, 0, /* 0x30 */
167: C, 'Z',
168: C, 'X',
169: C, 'C',
170: C, 'V',
171: C, 'B',
172: C, 'N',
173: C, 'M',
174: 0, '<', /* 0x38 */
175: 0, '>',
176: 0, '?',
177: 0, 0,
178: K, '.',
179: K, '7',
180: K, '8',
181: K, '9',
182: 0, ' ', /* 0x40 */
183: 0, DEL, /* really BS, DEL & BS swapped */
184: S, 0x99, /* shift TAB */
185: K, '\n', /* enter */
186: 0, '\n', /* return */
187: 0, ESC,
188: 0, '\b', /* really DEL, BS & DEL swapped */
189: 0, 0,
190: 0, 0, /* 0x48 */
191: 0, 0,
192: K, '-',
193: 0, 0,
194: S, 0x47, /* shift CRSR UP */
195: S, 0x4C, /* shift CRSR DOWN */
196: S, 0x51, /* shift CRSR RIGHT */
197: S, 0x57, /* shift CRSR LEFT */
198: S, 0x5D, /* 0x50 shift F1 */
199: S, 0x63, /* shift F2 */
200: S, 0x69, /* shift F3 */
201: S, 0x6F, /* shift F4 */
202: S, 0x75, /* shift F5 */
203: S, 0x7B, /* shift F6 */
204: S, 0x81, /* shift F7 */
205: S, 0x87, /* 0x58 shift F8 */
206: S, 0x8D, /* shift F9 */
207: S, 0x93, /* shift F10 */
208: K, '(',
209: K, ')',
210: K, '/',
211: K, '*',
212: S, 0x42, /* HELP (no special shift code) */
213: },
214:
215:
216: /* alt map */
217: {
218: 0, '`', /* 0x00 */
219: 0, '�',
220: 0, '�',
221: 0, '�',
222: 0, '�',
223: 0, '�',
224: 0, '�',
225: 0, '�',
226: 0, '�', /* 0x08 */
227: 0, '�',
228: 0, '�',
229: 0, '-',
230: 0, '=',
231: 0, '\\',
232: 0, 0,
233: K, '0',
234: C, '�', /* 0x10 */
235: 0, '�',
236: 0, '�',
237: 0, '�',
238: C, '�',
239: 0, '�',
240: 0, '�',
241: 0, '�',
242: C, '�', /* 0x18 */
243: 0, '�',
244: 0, '[',
245: 0, ']',
246: 0, 0,
247: K, '1',
248: K, '2',
249: K, '3',
250: C, '�', /* 0x20 */
251: 0, '�',
252: C, '�',
253: DA, '�',
254: DG, '`',
255: DC, '^',
256: DT, '~',
257: DD, '�',
258: 0, '�', /* 0x28 */
259: 0, ';',
260: 0, '\'',
261: 0, 0,
262: 0, 0,
263: K, '4',
264: K, '5',
265: K, '6',
266: 0, 0, /* 0x30 */
267: 0, '�',
268: 0, '�',
269: C, '�',
270: 0, '�',
271: 0, '�',
272: 0, '�',
273: 0, '�',
274: 0, ',', /* 0x38 */
275: 0, '.',
276: 0, '/',
277: 0, 0,
278: K, '.',
279: K, '7',
280: K, '8',
281: K, '9',
282: 0, ' ', /* 0x40 */
283: 0, DEL, /* really BS, DEL & BS swapped */
284: 0, '\t',
285: K, '\n', /* enter */
286: 0, '\n', /* return */
287: S, 0x9d, /* CSI */
288: 0, '\b', /* really DEL, BS & DEL swapped */
289: 0, 0,
290: 0, 0, /* 0x48 */
291: 0, 0,
292: K, '-',
293: 0, 0,
294: S, 0x00, /* now it gets hairy.. CRSR UP */
295: S, 0x04, /* CRSR DOWN */
296: S, 0x08, /* CRSR RIGHT */
297: S, 0x0C, /* CRSR LEFT */
298: S, 0x10, /* 0x50 F1 */
299: S, 0x15, /* F2 */
300: S, 0x1A, /* F3 */
301: S, 0x1F, /* F4 */
302: S, 0x24, /* F5 */
303: S, 0x29, /* F6 */
304: S, 0x2E, /* F7 */
305: S, 0x33, /* 0x58 F8 */
306: S, 0x38, /* F9 */
307: S, 0x3D, /* F10 */
308: K, '(',
309: K, ')',
310: K, '/',
311: K, '*',
312: S, 0x42, /* HELP */
313: },
314:
315: /* shift alt map */
316: {
317: 0, '~', /* 0x00 */
318: 0, '!',
319: 0, '@',
320: 0, '#',
321: 0, '$',
322: 0, '%',
323: 0, '^',
324: 0, '&',
325: 0, '*', /* 0x08 */
326: 0, '(',
327: 0, ')',
328: 0, '_',
329: 0, '+',
330: 0, '|',
331: 0, 0,
332: K, '0',
333: C, '�', /* 0x10 */
334: 0, '�',
335: 0, '�',
336: 0, '�',
337: C, '�',
338: 0, '�',
339: 0, '�',
340: 0, '�',
341: C, '�', /* 0x18 */
342: 0, '�',
343: 0, '[',
344: 0, ']',
345: 0, 0,
346: K, '1',
347: K, '2',
348: K, '3',
349: C, '�', /* 0x20 */
350: 0, '�',
351: C, '�',
352: DA, '�',
353: DG, '`',
354: DC, '^',
355: DT, '~',
356: DD, '�',
357: 0, '�', /* 0x28 */
358: 0, ';',
359: 0, '\'',
360: 0, 0,
361: 0, 0,
362: K, '4',
363: K, '5',
364: K, '6',
365: 0, 0, /* 0x30 */
366: 0, '�',
367: 0, '�',
368: C, '�',
369: 0, '�',
370: 0, '�',
371: 0, '�',
372: 0, '�',
373: 0, ',', /* 0x38 */
374: 0, '.',
375: 0, '/',
376: 0, 0,
377: K, '.',
378: K, '7',
379: K, '8',
380: K, '9',
381: 0, ' ', /* 0x40 */
382: 0, DEL, /* really BS, DEL & BS swapped */
383: 0, '\t',
384: K, '\n', /* enter */
385: 0, '\n', /* return */
386: S, 0x9d, /* CSI */
387: 0, '\b', /* really DEL, BS & DEL swapped */
388: 0, 0,
389: 0, 0, /* 0x48 */
390: 0, 0,
391: K, '-',
392: 0, 0,
393: S, 0x00, /* now it gets hairy.. CRSR UP */
394: S, 0x04, /* CRSR DOWN */
395: S, 0x08, /* CRSR RIGHT */
396: S, 0x0C, /* CRSR LEFT */
397: S, 0x10, /* 0x50 F1 */
398: S, 0x15, /* F2 */
399: S, 0x1A, /* F3 */
400: S, 0x1F, /* F4 */
401: S, 0x24, /* F5 */
402: S, 0x29, /* F6 */
403: S, 0x2E, /* F7 */
404: S, 0x33, /* 0x58 F8 */
405: S, 0x38, /* F9 */
406: S, 0x3D, /* F10 */
407: K, '(',
408: K, ')',
409: K, '/',
410: K, '*',
411: S, 0x42, /* HELP */
412: },
413:
414: {
415: /* string table. If there's a better way to get the offsets into the
416: above table, please tell me..
417:
418: NOTE: save yourself and others a lot of grief by *not* using
419: CSI == 0x9b, using the two-character sequence gives
420: much less trouble, especially in GNU-Emacs.. */
421:
422: 3, ESC, '[', 'A', /* 0x00: CRSR UP */
423: 3, ESC, '[', 'B', /* 0x04: CRSR DOWN */
424: 3, ESC, '[', 'C', /* 0x08: CRSR RIGHT */
425: 3, ESC, '[', 'D', /* 0x0C: CRSR LEFT */
426: 4, ESC, '[', '0', '~', /* 0x10: F1 */
427: 4, ESC, '[', '1', '~', /* 0x15: F2 */
428: 4, ESC, '[', '2', '~', /* 0x1A: F3 */
429: 4, ESC, '[', '3', '~', /* 0x1F: F4 */
430: 4, ESC, '[', '4', '~', /* 0x24: F5 */
431: 4, ESC, '[', '5', '~', /* 0x29: F6 */
432: 4, ESC, '[', '6', '~', /* 0x2E: F7 */
433: 4, ESC, '[', '7', '~', /* 0x33: F8 */
434: 4, ESC, '[', '8', '~', /* 0x38: F9 */
435: 4, ESC, '[', '9', '~', /* 0x3D: F10 */
436: 4, ESC, '[', '?', '~', /* 0x42: HELP */
437:
438: 4, ESC, '[', 'T', '~', /* 0x47: shift CRSR UP */
439: 4, ESC, '[', 'S', '~', /* 0x4C: shift CRSR DOWN */
440: 5, ESC, '[', ' ', '@', '~', /* 0x51: shift CRSR RIGHT */
441: 5, ESC, '[', ' ', 'A', '~', /* 0x57: shift CRSR LEFT */
442: 5, ESC, '[', '1', '0', '~', /* 0x5D: shift F1 */
443: 5, ESC, '[', '1', '1', '~', /* 0x63: shift F2 */
444: 5, ESC, '[', '1', '2', '~', /* 0x69: shift F3 */
445: 5, ESC, '[', '1', '3', '~', /* 0x6F: shift F4 */
446: 5, ESC, '[', '1', '4', '~', /* 0x75: shift F5 */
447: 5, ESC, '[', '1', '5', '~', /* 0x7B: shift F6 */
448: 5, ESC, '[', '1', '6', '~', /* 0x81: shift F7 */
449: 5, ESC, '[', '1', '7', '~', /* 0x87: shift F8 */
450: 5, ESC, '[', '1', '8', '~', /* 0x8D: shift F9 */
451: 5, ESC, '[', '1', '9', '~', /* 0x93: shift F10 */
452: 3, ESC, '[', 'Z', /* 0x99: shift TAB */
453: 2, ESC, '[', /* 0x9D: alt ESC == CSI */
454: },
455: };
456:
457: unsigned char acctable[KBD_NUM_ACC][64] = {
458: { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_"
459: "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_GRAVE */
460:
461: { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_"
462: "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_ACUTE */
463:
464: { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_"
465: "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_CIRC */
466:
467: { "@�BCDEFGHIJKLM��PQRSTUVWXYZ[\\]^_"
468: "`�bcdefghijklm��pqrstuvwxyz{|}~\177"}, /* KBD_ACC_TILDE */
469:
470: { "@�BCD�FGH�JKLMN�PQRST�VWXYZ[\\]^_"
471: "`�bcd�fgh�jklmn�pqrst�vwxyz{|}~\177"}, /* KBD_ACC_DIER */
472: };
473:
474:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.