a500kbd

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