sgikbd initial commit (based on a500kbd: https://github.com/jtsiomb/a500kbd)
[sgikbd] / fw / src / scantbl.h
1 #ifndef SCANTBL_H_
2 #define SCANTBL_H_
3
4 /*
5 enum {
6         KEY_ESC = 27,
7
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,
12
13         KEY_LSHIFT, KEY_RSHIFT,
14         KEY_LCTRL, KEY_RCTRL,
15         KEY_LALT, KEY_RALT,
16         KEY_LWIN, KEY_RWIN, KEY_MENU,
17
18         KEY_INS, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDOWN,
19         KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN,
20
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,
25
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 */
34
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
57
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 };
82
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
104
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 };
123
124 /* some useful keycodes */
125 #define AMIKEY_CTRL             0x63
126 #define AMIKEY_LAMI             0x66
127 #define AMIKEY_RAMI             0x67
128
129 #endif  /* SCANTBL_H_ */