285 lines
6.0 KiB
C
285 lines
6.0 KiB
C
|
static const uint8_t el_phys_map[256] = {
|
||
|
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
|
||
|
0x19, 0x1a, 0x1b, 0x1c, 0xff, 0xff, 0xff, 0xff,
|
||
|
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
|
||
|
0x29, 0x2a, 0x2b, 0x2c, 0xff, 0xff, 0xff, 0xff,
|
||
|
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
|
||
|
0x39, 0x3a, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
|
||
|
0x49, 0x4a, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0x51, 0xff, 0xff, 0x54, 0xff, 0x56, 0xff,
|
||
|
0x58, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0x52, 0x53, 0xff, 0x55, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||
|
};
|
||
|
|
||
|
static const int used_keys[] = {
|
||
|
KEY_ESC,
|
||
|
KEY_1,
|
||
|
KEY_LEFTSHIFT,
|
||
|
KEY_BACKSLASH,
|
||
|
KEY_F1,
|
||
|
KEY_2,
|
||
|
KEY_F2,
|
||
|
KEY_3,
|
||
|
KEY_DOLLAR,
|
||
|
KEY_F3,
|
||
|
KEY_4,
|
||
|
KEY_EURO,
|
||
|
KEY_F4,
|
||
|
KEY_5,
|
||
|
KEY_GRAVE,
|
||
|
KEY_F5,
|
||
|
KEY_6,
|
||
|
KEY_F6,
|
||
|
KEY_7,
|
||
|
KEY_MINUS,
|
||
|
KEY_F7,
|
||
|
KEY_8,
|
||
|
KEY_EQUAL,
|
||
|
KEY_F8,
|
||
|
KEY_9,
|
||
|
KEY_F9,
|
||
|
KEY_BACKSPACE,
|
||
|
KEY_DELETE,
|
||
|
KEY_TAB,
|
||
|
KEY_Q,
|
||
|
KEY_W,
|
||
|
KEY_E,
|
||
|
KEY_R,
|
||
|
KEY_T,
|
||
|
KEY_Y,
|
||
|
KEY_U,
|
||
|
KEY_I,
|
||
|
KEY_O,
|
||
|
KEY_P,
|
||
|
KEY_ENTER,
|
||
|
KEY_LEFTMETA,
|
||
|
KEY_SYSRQ,
|
||
|
KEY_A,
|
||
|
KEY_S,
|
||
|
KEY_D,
|
||
|
KEY_F,
|
||
|
KEY_G,
|
||
|
KEY_H,
|
||
|
KEY_J,
|
||
|
KEY_K,
|
||
|
KEY_L,
|
||
|
KEY_SEMICOLON,
|
||
|
KEY_INSERT,
|
||
|
KEY_Z,
|
||
|
KEY_X,
|
||
|
KEY_C,
|
||
|
KEY_V,
|
||
|
KEY_B,
|
||
|
KEY_N,
|
||
|
KEY_M,
|
||
|
KEY_COMMA,
|
||
|
KEY_HOME,
|
||
|
KEY_DOT,
|
||
|
KEY_UP,
|
||
|
KEY_SLASH,
|
||
|
KEY_END,
|
||
|
KEY_LEFTCTRL,
|
||
|
KEY_FN,
|
||
|
KEY_LEFTALT,
|
||
|
KEY_SPACE,
|
||
|
KEY_RIGHTALT,
|
||
|
KEY_APOSTROPHE,
|
||
|
KEY_LEFT,
|
||
|
KEY_LEFTBRACE,
|
||
|
KEY_DOWN,
|
||
|
KEY_RIGHTBRACE,
|
||
|
KEY_RIGHT,
|
||
|
};
|
||
|
|
||
|
static const char* key_names[] = {
|
||
|
[KEY_ESC] = "ESC",
|
||
|
[KEY_1] = "1",
|
||
|
[KEY_LEFTSHIFT] = "LEFTSHIFT",
|
||
|
[KEY_BACKSLASH] = "BACKSLASH",
|
||
|
[KEY_F1] = "F1",
|
||
|
[KEY_2] = "2",
|
||
|
[KEY_F2] = "F2",
|
||
|
[KEY_3] = "3",
|
||
|
[KEY_DOLLAR] = "DOLLAR",
|
||
|
[KEY_F3] = "F3",
|
||
|
[KEY_4] = "4",
|
||
|
[KEY_EURO] = "EURO",
|
||
|
[KEY_F4] = "F4",
|
||
|
[KEY_5] = "5",
|
||
|
[KEY_GRAVE] = "GRAVE",
|
||
|
[KEY_F5] = "F5",
|
||
|
[KEY_6] = "6",
|
||
|
[KEY_F6] = "F6",
|
||
|
[KEY_7] = "7",
|
||
|
[KEY_MINUS] = "MINUS",
|
||
|
[KEY_F7] = "F7",
|
||
|
[KEY_8] = "8",
|
||
|
[KEY_EQUAL] = "EQUAL",
|
||
|
[KEY_F8] = "F8",
|
||
|
[KEY_9] = "9",
|
||
|
[KEY_F9] = "F9",
|
||
|
[KEY_BACKSPACE] = "BACKSPACE",
|
||
|
[KEY_DELETE] = "DELETE",
|
||
|
[KEY_TAB] = "TAB",
|
||
|
[KEY_Q] = "Q",
|
||
|
[KEY_W] = "W",
|
||
|
[KEY_E] = "E",
|
||
|
[KEY_R] = "R",
|
||
|
[KEY_T] = "T",
|
||
|
[KEY_Y] = "Y",
|
||
|
[KEY_U] = "U",
|
||
|
[KEY_I] = "I",
|
||
|
[KEY_O] = "O",
|
||
|
[KEY_P] = "P",
|
||
|
[KEY_ENTER] = "ENTER",
|
||
|
[KEY_LEFTMETA] = "LEFTMETA",
|
||
|
[KEY_SYSRQ] = "SYSRQ",
|
||
|
[KEY_A] = "A",
|
||
|
[KEY_S] = "S",
|
||
|
[KEY_D] = "D",
|
||
|
[KEY_F] = "F",
|
||
|
[KEY_G] = "G",
|
||
|
[KEY_H] = "H",
|
||
|
[KEY_J] = "J",
|
||
|
[KEY_K] = "K",
|
||
|
[KEY_L] = "L",
|
||
|
[KEY_SEMICOLON] = "SEMICOLON",
|
||
|
[KEY_INSERT] = "INSERT",
|
||
|
[KEY_Z] = "Z",
|
||
|
[KEY_X] = "X",
|
||
|
[KEY_C] = "C",
|
||
|
[KEY_V] = "V",
|
||
|
[KEY_B] = "B",
|
||
|
[KEY_N] = "N",
|
||
|
[KEY_M] = "M",
|
||
|
[KEY_COMMA] = "COMMA",
|
||
|
[KEY_HOME] = "HOME",
|
||
|
[KEY_DOT] = "DOT",
|
||
|
[KEY_UP] = "UP",
|
||
|
[KEY_SLASH] = "SLASH",
|
||
|
[KEY_END] = "END",
|
||
|
[KEY_LEFTCTRL] = "LEFTCTRL",
|
||
|
[KEY_FN] = "FN",
|
||
|
[KEY_LEFTALT] = "LEFTALT",
|
||
|
[KEY_SPACE] = "SPACE",
|
||
|
[KEY_RIGHTALT] = "RIGHTALT",
|
||
|
[KEY_APOSTROPHE] = "APOSTROPHE",
|
||
|
[KEY_LEFT] = "LEFT",
|
||
|
[KEY_LEFTBRACE] = "LEFTBRACE",
|
||
|
[KEY_DOWN] = "DOWN",
|
||
|
[KEY_RIGHTBRACE] = "RIGHTBRACE",
|
||
|
[KEY_RIGHT] = "RIGHT",
|
||
|
};
|
||
|
|
||
|
static const int keymap_base[256][2] = {
|
||
|
[0x11] = { KEY_ESC },
|
||
|
[0x12] = { KEY_1 },
|
||
|
[0x13] = { KEY_2 },
|
||
|
[0x14] = { KEY_3 },
|
||
|
[0x15] = { KEY_4 },
|
||
|
[0x16] = { KEY_5 },
|
||
|
[0x17] = { KEY_6 },
|
||
|
[0x18] = { KEY_7 },
|
||
|
[0x19] = { KEY_8 },
|
||
|
[0x1a] = { KEY_9 },
|
||
|
[0x1c] = { KEY_BACKSPACE },
|
||
|
[0x21] = { KEY_TAB },
|
||
|
[0x22] = { KEY_Q },
|
||
|
[0x23] = { KEY_W },
|
||
|
[0x24] = { KEY_E },
|
||
|
[0x25] = { KEY_R },
|
||
|
[0x26] = { KEY_T },
|
||
|
[0x27] = { KEY_Y },
|
||
|
[0x28] = { KEY_U },
|
||
|
[0x29] = { KEY_I },
|
||
|
[0x2a] = { KEY_O },
|
||
|
[0x2b] = { KEY_P },
|
||
|
[0x2c] = { KEY_ENTER },
|
||
|
[0x31] = { KEY_LEFTMETA },
|
||
|
[0x32] = { KEY_A },
|
||
|
[0x33] = { KEY_S },
|
||
|
[0x34] = { KEY_D },
|
||
|
[0x35] = { KEY_F },
|
||
|
[0x36] = { KEY_G },
|
||
|
[0x37] = { KEY_H },
|
||
|
[0x38] = { KEY_J },
|
||
|
[0x39] = { KEY_K },
|
||
|
[0x3a] = { KEY_L },
|
||
|
[0x3b] = { KEY_SEMICOLON },
|
||
|
[0x41] = { KEY_LEFTSHIFT },
|
||
|
[0x42] = { KEY_Z },
|
||
|
[0x43] = { KEY_X },
|
||
|
[0x44] = { KEY_C },
|
||
|
[0x45] = { KEY_V },
|
||
|
[0x46] = { KEY_B },
|
||
|
[0x47] = { KEY_N },
|
||
|
[0x48] = { KEY_M },
|
||
|
[0x49] = { KEY_COMMA },
|
||
|
[0x4a] = { KEY_DOT },
|
||
|
[0x4b] = { KEY_SLASH },
|
||
|
[0x51] = { KEY_LEFTCTRL },
|
||
|
[0x52] = { KEY_FN },
|
||
|
[0x53] = { KEY_LEFTALT },
|
||
|
[0x54] = { KEY_SPACE },
|
||
|
[0x55] = { KEY_RIGHTALT },
|
||
|
[0x56] = { KEY_APOSTROPHE },
|
||
|
[0x57] = { KEY_LEFTBRACE },
|
||
|
[0x58] = { KEY_RIGHTBRACE },
|
||
|
};
|
||
|
|
||
|
static const int keymap_fn[256][2] = {
|
||
|
[0x12] = { KEY_LEFTSHIFT, KEY_BACKSLASH },
|
||
|
[0x13] = { KEY_BACKSLASH },
|
||
|
[0x14] = { KEY_DOLLAR },
|
||
|
[0x15] = { KEY_EURO },
|
||
|
[0x16] = { KEY_LEFTSHIFT, KEY_GRAVE },
|
||
|
[0x17] = { KEY_GRAVE },
|
||
|
[0x18] = { KEY_MINUS },
|
||
|
[0x19] = { KEY_EQUAL },
|
||
|
[0x1a] = { KEY_LEFTSHIFT, KEY_MINUS },
|
||
|
[0x1c] = { KEY_DELETE },
|
||
|
[0x31] = { KEY_LEFTSHIFT, KEY_SYSRQ },
|
||
|
[0x3b] = { KEY_INSERT },
|
||
|
[0x49] = { KEY_HOME },
|
||
|
[0x4a] = { KEY_UP },
|
||
|
[0x4b] = { KEY_END },
|
||
|
[0x56] = { KEY_LEFT },
|
||
|
[0x57] = { KEY_DOWN },
|
||
|
[0x58] = { KEY_RIGHT },
|
||
|
};
|
||
|
|
||
|
static const int keymap_pine[256][2] = {
|
||
|
[0x12] = { KEY_F1 },
|
||
|
[0x13] = { KEY_F2 },
|
||
|
[0x14] = { KEY_F3 },
|
||
|
[0x15] = { KEY_F4 },
|
||
|
[0x16] = { KEY_F5 },
|
||
|
[0x17] = { KEY_F6 },
|
||
|
[0x18] = { KEY_F7 },
|
||
|
[0x19] = { KEY_F8 },
|
||
|
[0x1a] = { KEY_F9 },
|
||
|
};
|
||
|
|