#include static UBYTE LoKeyMapTypes[64] = { KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KCF_NOP, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KCF_NOP, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KCF_NOP, KCF_NOP, KC_VANILLA, KC_VANILLA, KC_VANILLA, KCF_NOP, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA, KCF_NOP, KC_VANILLA, KC_VANILLA, KC_VANILLA, KC_VANILLA }; static UBYTE LoKeyMap[64][4] = { {0xFE, 0xE0, '~', '`' }, {0xA1, 0xB1, '!', '1' }, {0xC0, 0xB2, '@', '2' }, {0xA3, 0xB3, '#', '3' }, {0xA4, 0xB4, '$', '4' }, {0xA5, 0xB5, '%', '5' }, {0xDE, 0xB6, '^', '6' }, {0xA6, 0xB7, '&', '7' }, {0xAA, 0xB8, '*', '8' }, {0xA8, 0xB9, '(', '9' }, {0xA9, 0xB0, ')', '0' }, {0xDF, 0xAD, '_', '-' }, {0xAB, 0xBD, '+', '=' }, {0xFC, 0xDC, '|', '\\' }, {0x00, 0x00, 0x00, 0x00 }, {0xB0, 0xB0, '0', '0' }, {0xD1, 0xF1, 'Q', 'q' }, {0xD7, 0xF7, 'W', 'w' }, {0xC5, 0xE5, 'E', 'e' }, {0xD2, 0xF2, 'R', 'r' }, {0xD4, 0xF4, 'T', 't' }, {0xD9, 0xF9, 'Y', 'y' }, {0xD5, 0xF5, 'U', 'u' }, {0xC9, 0xE9, 'I', 'i' }, {0xCF, 0xEF, 'O', 'o' }, {0xD0, 0xF0, 'P', 'p' }, {0xFB, 0xDB, '{', '[' }, {0xFD, 0xDD, '}', ']' }, {0x00, 0x00, 0x00, 0x00 }, {0xB1, 0xB1, '1', '1' }, {0xB2, 0xB2, '2', '2' }, {0xB3, 0xB3, '3', '3' }, {0xC1, 0xE1, 'A', 'a' }, {0xD3, 0xF3, 'S', 's' }, {0xC4, 0xE4, 'D', 'd' }, {0xC6, 0xE6, 'F', 'f' }, {0xC7, 0xE7, 'G', 'g' }, {0xC8, 0xE8, 'H', 'h' }, {0xCA, 0xEA, 'J', 'j' }, {0xCB, 0xEB, 'K', 'k' }, {0xCC, 0xEC, 'L', 'l' }, {0xBA, 0xBB, ':', ';' }, {0xA2, 0xA7, '"', '\'' }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0xB4, 0xB4, '4', '4' }, {0xB5, 0xB5, '5', '5' }, {0xB6, 0xB6, '6', '6' }, {0x00, 0x00, 0x00, 0x00 }, {0xDA, 0xFA, 'Z', 'z' }, {0xD8, 0xF8, 'X', 'x' }, {0xC3, 0xE3, 'C', 'c' }, {0xD6, 0xF6, 'V', 'v' }, {0xC2, 0xE2, 'B', 'b' }, {0xCE, 0xEE, 'N', 'n' }, {0xCD, 0xED, 'M', 'm' }, {0xBC, 0xAC, '<', ',' }, {0xBE, 0xAE, '>', '.' }, {0xBF, 0xAF, '?', '/' }, {0x00, 0x00, 0x00, 0x00 }, {0xAE, 0xAE, '.', '.' }, {0xB7, 0xB7, '7', '7' }, {0xB8, 0xB8, '8', '8' }, {0xB9, 0xB9, '9', '9' } }; static UBYTE LoCapsable[8] = { 0x00, 0x00, 0xFF, 0x03, 0xFF, 0x01, 0xFE, 0x00 }; static UBYTE LoRepeatable[8] = { 0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xF7 }; static UBYTE HiKeyMapTypes[40] = { KC_NOQUAL, /* Space */ KCF_STRING | KCF_SHIFT, /* Backspace */ KC_NOQUAL, /* Tab */ KC_NOQUAL, /* ENTER (numeric) */ KCF_CONTROL, /* Return */ KC_NOQUAL, /* Escape */ KCF_STRING | KCF_SHIFT, /* DEL */ KCF_NOP, KCF_NOP, KCF_NOP, KCF_ALT, /* Numeric - */ KCF_NOP, KCF_STRING | KCF_ALT | KCF_SHIFT, /* Cursor Up */ KCF_STRING | KCF_ALT | KCF_SHIFT, /* Cursor Down */ KCF_STRING | KCF_ALT | KCF_SHIFT, /* Cursor Right */ KCF_STRING | KCF_ALT | KCF_SHIFT, /* Cursor Left */ KCF_STRING | KCF_SHIFT, /*F1*/ KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, KCF_STRING | KCF_SHIFT, /*F10*/ KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KC_NOQUAL, /* HELP */ KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP, KCF_NOP }; static UBYTE HiKeyMap[40][4] = { {0x00, 0x00, 0x00, ' ' }, /* Space */ {0x00, 0x00, 0x17, 0x08 }, /* Backspace */ {0x00, 0x00, 0x00, 0x09 }, /* Tab */ {0x00, 0x00, 0x00, 0x0A }, /* ENTER (numeric) */ {0x00, 0x00, 0x0A, 0x0D }, /* Return */ {0x00, 0x00, 0x00, 0x1B }, /* Escape */ {0x00, 0x00, 0xFF, 0x7F }, /* DEL */ {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0xFF, '-' }, /* Numeric - */ {0x00, 0x00, 0x00, 0x00 }, {0xD6, 0xBC, 0xD6, 0x10 }, /* Cursor Up */ {0x16, 0xBE, 0x16, 0x0E }, /* Cursor Down */ {0xC6, 0x05, 0xC6, 0x06 }, /* Cursor Right */ {0xC2, 0x01, 0xC2, 0x02 }, /* Cursor Left */ {0x00, 0x00, 0x00, 0x00 }, /*F1*/ {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, /*F10*/ {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x15 }, /* HELP */ {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00 } }; static UBYTE HiCapsable[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static UBYTE HiRepeatable[8] = { 0x47, 0xF4, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00 }; static char *HiStrings[] = { "\x01\x04\x02\x05\b\x1B\x7F", /* Backspace */ "\x01\x04\x02\x05\b\x1B\x7F", /* DEL */ "\x01\x08\x02\x09\x02\x0B\x02\x0D\x10\x1BV\x1B<\x18\x10", /* CU */ "\x01\x08\x01\x09\x02\x0A\x02\x0C\x0E\x16\x1B>\x18\x0E", /* CD */ "\x01\x08\x02\x09\x01\x0B\x02\x0C\x06\x1BF\x05\x18N", /* CR */ "\x01\x08\x02\x09\x01\x0B\x02\x0C\x02\x1BB\x01\x18P", /* CL */ "\x02\x04\x02\x06\x18\x16\x18\x13", /* F1 ^x^v ^x^s */ "\x02\x04\x02\x06\x18B\x18\x02", /* F2 ^xB ^x^b */ "\x02\x04\x02\x06\x18N\x18P", /* F3 ^xN ^xP */ "\x02\x04\x02\x06\x182\x181", /* F4 ^x2 ^x1 */ "\x02\x04\x02\x06\x18\x1A\x18Z", /* F5 ^x^z ^xZ */ "\x02\x04\x02\x06\x18\x10\x18\x0E", /* F6 ^x^n ^x^p */ "\x02\x04\x02\x06\x18=\x1B!", /* F7 ^x= ^[! */ "\x01\x04\x02\x05\x0F\x0B\x0B", /* F8 ^o ^x^d */ "\x02\x04\x02\x06\x18E\x18\x18", /* F9 ^xE ^x^x */ "\x01\x04\x02\x05\x1A\x18\x03", /* F10 ^z ^x^c */ NULL }; static struct KeyMap KeyMap = { (APTR)LoKeyMapTypes, (APTR)LoKeyMap, (APTR)LoCapsable, (APTR)LoRepeatable, (APTR)HiKeyMapTypes, (APTR)HiKeyMap, (APTR)HiCapsable, (APTR)HiRepeatable };