a500kbd

view src/scantbl.h @ 3:31a1f0b53d98

- scroll lock now acts as caps lock - the scroll-lock light indicates drive activity
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 18 Oct 2017 08:20:58 +0300
parents a4fd9c5a6655
children
line source
1 #ifndef SCANTBL_H_
2 #define SCANTBL_H_
4 /*
5 enum {
6 KEY_ESC = 27,
8 KEY_F1 = 256,
9 KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8,
10 KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_SYSRQ, KEY_BRK,
11 KEY_SCRLK, KEY_CAPSLK, KEY_NUMLK,
13 KEY_LSHIFT, KEY_RSHIFT,
14 KEY_LCTRL, KEY_RCTRL,
15 KEY_LALT, KEY_RALT,
16 KEY_LWIN, KEY_RWIN, KEY_MENU,
18 KEY_INS, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDOWN,
19 KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN,
21 KEY_KP_0, KEY_KP_1, KEY_KP_2, KEY_KP_3, KEY_KP_4,
22 KEY_KP_5, KEY_KP_6, KEY_KP_7, KEY_KP_8, KEY_KP_9,
23 KEY_KP_DIV, KEY_KP_MUL, KEY_KP_MINUS, KEY_KP_PLUS,
24 KEY_KP_DOT, KEY_KP_ENTER,
26 KEY_MM_WWW_SEARCH, KEY_MM_WWW_FAV, KEY_MM_WWW_REFRESH, KEY_MM_WWW_STOP,
27 KEY_MM_WWW_FWD, KEY_MM_WWW_BACK, KEY_MM_WWW_HOME,
28 KEY_MM_PREV, KEY_MM_NEXT, KEY_MM_PLAY, KEY_MM_STOP, KEY_MM_VOLUP, KEY_MM_VOLDOWN,
29 KEY_MM_MUTE, KEY_MM_CALC, KEY_MM_MYCOMP, KEY_MM_EMAIL, KEY_MM_SELECT,
30 KEY_APPS,
31 KEY_ACPI_POWER, KEY_ACPI_SLEEP, KEY_ACPI_WAKEUP
32 };
33 */
35 #define KEYMAP_NORMAL_SIZE (sizeof keymap_normal / sizeof *keymap_normal)
36 #if 0
37 static int keymap_normal[] = {
38 0, KEY_F9, 0, KEY_F5, KEY_F3, KEY_F1, KEY_F2, KEY_F12, /* 00 - 07 */
39 0, KEY_F10, KEY_F8, KEY_F6, KEY_F4, '\t', '`', 0, /* 08 - 0f */
40 0, KEY_LALT, KEY_LSHIFT, 0, KEY_LCTRL, 'Q', '1', 0, /* 10 - 17 */
41 0, 0, 'Z', 'S', 'A', 'W', '2', 0, /* 18 - 1f */
42 0, 'C', 'X', 'D', 'E', '4', '3', 0, /* 20 - 27 */
43 0, ' ', 'V', 'F', 'T', 'R', '5', 0, /* 28 - 2f */
44 0, 'N', 'B', 'H', 'G', 'Y', '6', 0, /* 30 - 37 */
45 0, 0, 'M', 'J', 'U', '7', '8', 0, /* 38 - 3f */
46 0, ',', 'K', 'I', 'O', '0', '9', 0, /* 40 - 47 */
47 0, '.', '/', 'L', ';', 'P', '-', 0, /* 48 - 4f */
48 0, 0, '\'', 0, '[', '=', 0, 0, /* 50 - 57 */
49 KEY_CAPSLK, KEY_RSHIFT, '\n', ']', 0, '\\', 0, 0, /* 58 - 5f */
50 0, 0, 0, 0, 0, 0, '\b', 0, /* 60 - 67 */
51 0, KEY_KP_1, 0, KEY_KP_4, KEY_KP_7, 0, 0, 0, /* 68 - 6f */
52 KEY_KP_0, KEY_KP_DOT, KEY_KP_2, KEY_KP_5, KEY_KP_6, KEY_KP_8, KEY_ESC, KEY_NUMLK, /* 70 - 77 */
53 KEY_F11, KEY_KP_PLUS, KEY_KP_3, KEY_KP_MINUS, KEY_KP_MUL, KEY_KP_9, KEY_SCRLK, 0,/* 78 - 7f */
54 0, 0, 0, KEY_F7 /* 80 - 83 */
55 };
56 #endif
58 /* converts a normal (non-extended) PS/2 scancode to an amiga rawkey value
59 * caps lock -> control
60 * ctrl -> amiga
61 * F12 -> help
62 */
63 static unsigned char keymap_normal[] = {
64 0xff, 0x58, 0xff, 0x54, 0x52, 0x50, 0x51, 0x5f, /* 00 - 07: - f9 - f5 f3 f1 f2 f12 */
65 0xff, 0x59, 0x57, 0x55, 0x53, 0x42, 0x00, 0xff, /* 08 - 0f: - f10 f8 f6 f4 tab ` - */
66 0xff, 0x64, 0x60, 0xff, 0x66, 0x10, 0x01, 0xff, /* 10 - 17: - lalt lshift - lctrl(lamiga) Q 1 - */
67 0xff, 0xff, 0x31, 0x21, 0x20, 0x11, 0x02, 0xff, /* 18 - 1f: - - Z S A W 2 - */
68 0xff, 0x33, 0x32, 0x22, 0x12, 0x04, 0x03, 0xff, /* 20 - 27: - C X D E 4 3 - */
69 0xff, 0x40, 0x34, 0x23, 0x14, 0x13, 0x05, 0xff, /* 28 - 2f: - space V F T R 5 - */
70 0xff, 0x36, 0x35, 0x25, 0x24, 0x15, 0x06, 0xff, /* 30 - 37: - N B H G Y 6 - */
71 0xff, 0xff, 0x37, 0x26, 0x16, 0x07, 0x08, 0xff, /* 38 - 3f: - - M J U 7 8 - */
72 0xff, 0x38, 0x27, 0x17, 0x18, 0x0a, 0x09, 0xff, /* 40 - 47: - , K I O 0 9 - */
73 0xff, 0x39, 0x3a, 0x28, 0x29, 0x19, 0x0b, 0xff, /* 48 - 4f: - . / L ; P minus - */
74 0xff, 0xff, 0x2a, 0xff, 0x1a, 0x0c, 0xff, 0xff, /* 50 - 57: - - \ - [ = - - */
75 0x63, 0x61, 0x44, 0x1b, 0xff, 0x0d, 0xff, 0xff, /* 58 - 5f: caps rshift enter ] - \ - - */
76 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0xff, /* 60 - 67: - - - - - - backsp - */
77 0xff, 0x1d, 0xff, 0x2d, 0x3d, 0xff, 0xff, 0xff, /* 68 - 6f: - KP1 - KP4 KP7 - - - */
78 0x0f, 0x3c, 0x1e, 0x2e, 0x2f, 0x3e, 0x45, 0x5a, /* 70 - 77: KP0 KP. KP2 KP5 KP6 KP8 esc numlk */
79 0xff, 0x5e, 0x1f, 0x4a, 0x5d, 0x3f, 0x62, 0xff, /* 78 - 7f: f11 KP+ KP3 KP- KP* KP9 scrlk(capslock) - */
80 0xff, 0xff, 0xff, 0x56 /* 80 - 83: - - - f7 */
81 };
83 #define KEYMAP_EXT_SIZE (sizeof keymap_ext / sizeof *keymap_ext)
84 #if 0
85 static int keymap_ext[] = {
86 0, 0, 0, 0, 0, 0, 0, 0, /* 00 - 07 */
87 0, 0, 0, 0, 0, 0, 0, 0, /* 08 - 0f */
88 KEY_MM_WWW_SEARCH, KEY_RALT, 0, 0, KEY_RCTRL, KEY_MM_PREV, 0, 0, /* 10 - 17 */
89 KEY_MM_WWW_FAV, 0, 0, 0, 0, 0, 0, KEY_LWIN, /* 18 - 1f */
90 KEY_MM_WWW_REFRESH, KEY_MM_VOLDOWN, 0, KEY_MM_MUTE, 0, 0, 0, KEY_RWIN, /* 20 - 27 */
91 KEY_MM_STOP, 0, 0, KEY_MM_CALC, 0, 0, 0, KEY_APPS, /* 28 - 2f */
92 KEY_MM_WWW_FWD, 0, KEY_MM_VOLUP, 0, KEY_MM_PLAY, 0, 0, KEY_ACPI_POWER, /* 30 - 37 */
93 KEY_MM_WWW_BACK, 0, KEY_MM_WWW_HOME, KEY_MM_STOP, 0, 0, 0, KEY_ACPI_SLEEP, /* 38 - 3f */
94 KEY_MM_MYCOMP, 0, 0, 0, 0, 0, 0, 0, /* 40 - 47 */
95 KEY_MM_EMAIL, 0, KEY_KP_DIV, 0, 0, KEY_MM_NEXT, 0, 0, /* 48 - 4f */
96 KEY_MM_SELECT, 0, 0, 0, 0, 0, 0, 0, /* 50 - 57 */
97 0, 0, KEY_KP_ENTER, 0, 0, 0, KEY_ACPI_WAKEUP, 0, /* 58 - 5f */
98 0, 0, 0, 0, 0, 0, 0, 0, /* 60 - 67 */
99 0, KEY_END, 0, KEY_LEFT, KEY_HOME, 0, 0, 0, /* 68 - 6f */
100 KEY_INS, KEY_DEL, KEY_DOWN, 0, KEY_RIGHT, KEY_UP, 0, 0, /* 70 - 77 */
101 0, 0, KEY_PGDOWN, 0, 0, KEY_PGUP, 0, 0, /* 78 - 7f */
102 };
103 #endif
105 static unsigned char keymap_ext[] = {
106 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 00 - 07: - - - - - - - - */
107 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 08 - 0f: - - - - - - - - */
108 0xff, 0x65, 0xff, 0xff, 0x67, 0xff, 0xff, 0xff, /* 10 - 17: - ralt - - rctrl(ramiga) - - - */
109 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x66, /* 18 - 1f: - - - - - - - lwin(lamiga) */
110 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x67, /* 20 - 27: - - - - - - - rwin(ramiga) */
111 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 28 - 2f */
112 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 30 - 37 */
113 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 38 - 3f */
114 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 40 - 47 */
115 0xff, 0xff, 0x5c, 0xff, 0xff, 0xff, 0xff, 0xff, /* 48 - 4f: - - KP/ - - - - - */
116 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 50 - 57 */
117 0xff, 0xff, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, /* 58 - 5f: - - KP_enter - - - - - */
118 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 60 - 67 */
119 0xff, 0x1d, 0xff, 0x4f, 0x3d, 0xff, 0xff, 0xff, /* 68 - 6f: - end - left home - - - */
120 0x0f, 0x46, 0x4d, 0xff, 0x4e, 0x4c, 0xff, 0xff, /* 70 - 77: ins del down - right up - - */
121 0xff, 0xff, 0x1f, 0xff, 0xff, 0x3f, 0xff, 0xff /* 78 - 7f: - - pgdown - - pgup - - */
122 };
124 /* some useful keycodes */
125 #define AMIKEY_CTRL 0x63
126 #define AMIKEY_LAMI 0x66
127 #define AMIKEY_RAMI 0x67
129 #endif /* SCANTBL_H_ */