|
@@ -51,102 +51,102 @@ static Keybscan kbscan;
|
|
|
|
|
|
static Rune kbtab[256] =
|
|
|
{
|
|
|
-[0x00] No, '\x1b', '1', '2', '3', '4', '5', '6',
|
|
|
-[0x08] '7', '8', '9', '0', '-', '=', '\b', '\t',
|
|
|
-[0x10] 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
|
|
|
-[0x18] 'o', 'p', '[', ']', '\n', Ctrl, 'a', 's',
|
|
|
-[0x20] 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
|
|
-[0x28] '\'', '`', Shift, '\\', 'z', 'x', 'c', 'v',
|
|
|
-[0x30] 'b', 'n', 'm', ',', '.', '/', Shift, '*',
|
|
|
-[0x38] Alt, ' ', Ctrl, KF|1, KF|2, KF|3, KF|4, KF|5,
|
|
|
-[0x40] KF|6, KF|7, KF|8, KF|9, KF|10, Num, Scroll, '7',
|
|
|
-[0x48] '8', '9', '-', '4', '5', '6', '+', '1',
|
|
|
-[0x50] '2', '3', '0', '.', No, No, No, KF|11,
|
|
|
-[0x58] KF|12, No, No, No, No, No, No, No,
|
|
|
-[0x60] No, No, No, No, No, No, No, No,
|
|
|
-[0x68] No, No, No, No, No, No, No, No,
|
|
|
-[0x70] No, No, No, No, No, No, No, No,
|
|
|
-[0x78] No, View, No, Up, No, No, No, No,
|
|
|
+[0x00] = No, '\x1b', '1', '2', '3', '4', '5', '6',
|
|
|
+[0x08] = '7', '8', '9', '0', '-', '=', '\b', '\t',
|
|
|
+[0x10] = 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
|
|
|
+[0x18] = 'o', 'p', '[', ']', '\n', Ctrl, 'a', 's',
|
|
|
+[0x20] = 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
|
|
|
+[0x28] = '\'', '`', Shift, '\\', 'z', 'x', 'c', 'v',
|
|
|
+[0x30] = 'b', 'n', 'm', ',', '.', '/', Shift, '*',
|
|
|
+[0x38] = kbAlt, ' ', Ctrl, KF|1, KF|2, KF|3, KF|4, KF|5,
|
|
|
+[0x40] = KF|6, KF|7, KF|8, KF|9, KF|10, Num, Scroll, '7',
|
|
|
+[0x48] = '8', '9', '-', '4', '5', '6', '+', '1',
|
|
|
+[0x50] = '2', '3', '0', '.', No, No, No, KF|11,
|
|
|
+[0x58] = KF|12, No, No, No, No, No, No, No,
|
|
|
+[0x60] = No, No, No, No, No, No, No, No,
|
|
|
+[0x68] = No, No, No, No, No, No, No, No,
|
|
|
+[0x70] = No, No, No, No, No, No, No, No,
|
|
|
+[0x78] = No, View, No, Up, No, No, No, No,
|
|
|
};
|
|
|
|
|
|
static Rune kbtabshift[256] =
|
|
|
{
|
|
|
-[0x00] No, '\x1b', '!', '@', '#', '$', '%', '^',
|
|
|
-[0x08] '&', '*', '(', ')', '_', '+', '\b', '\t',
|
|
|
-[0x10] 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
|
|
|
-[0x18] 'O', 'P', '{', '}', '\n', Ctrl, 'A', 'S',
|
|
|
-[0x20] 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
|
|
|
-[0x28] '"', '~', Shift, '|', 'Z', 'X', 'C', 'V',
|
|
|
-[0x30] 'B', 'N', 'M', '<', '>', '?', Shift, '*',
|
|
|
-[0x38] Alt, ' ', Ctrl, KF|1, KF|2, KF|3, KF|4, KF|5,
|
|
|
-[0x40] KF|6, KF|7, KF|8, KF|9, KF|10, Num, Scroll, '7',
|
|
|
-[0x48] '8', '9', '-', '4', '5', '6', '+', '1',
|
|
|
-[0x50] '2', '3', '0', '.', No, No, No, KF|11,
|
|
|
-[0x58] KF|12, No, No, No, No, No, No, No,
|
|
|
-[0x60] No, No, No, No, No, No, No, No,
|
|
|
-[0x68] No, No, No, No, No, No, No, No,
|
|
|
-[0x70] No, No, No, No, No, No, No, No,
|
|
|
-[0x78] No, Up, No, Up, No, No, No, No,
|
|
|
+[0x00] = No, '\x1b', '!', '@', '#', '$', '%', '^',
|
|
|
+[0x08] = '&', '*', '(', ')', '_', '+', '\b', '\t',
|
|
|
+[0x10] = 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
|
|
|
+[0x18] = 'O', 'P', '{', '}', '\n', Ctrl, 'A', 'S',
|
|
|
+[0x20] = 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
|
|
|
+[0x28] = '"', '~', Shift, '|', 'Z', 'X', 'C', 'V',
|
|
|
+[0x30] = 'B', 'N', 'M', '<', '>', '?', Shift, '*',
|
|
|
+[0x38] = kbAlt, ' ', Ctrl, KF|1, KF|2, KF|3, KF|4, KF|5,
|
|
|
+[0x40] = KF|6, KF|7, KF|8, KF|9, KF|10, Num, Scroll, '7',
|
|
|
+[0x48] = '8', '9', '-', '4', '5', '6', '+', '1',
|
|
|
+[0x50] = '2', '3', '0', '.', No, No, No, KF|11,
|
|
|
+[0x58] = KF|12, No, No, No, No, No, No, No,
|
|
|
+[0x60] = No, No, No, No, No, No, No, No,
|
|
|
+[0x68] = No, No, No, No, No, No, No, No,
|
|
|
+[0x70] = No, No, No, No, No, No, No, No,
|
|
|
+[0x78] = No, Up, No, Up, No, No, No, No,
|
|
|
};
|
|
|
|
|
|
static Rune kbtabesc1[256] =
|
|
|
{
|
|
|
-[0x00] No, No, No, No, No, No, No, No,
|
|
|
-[0x08] No, No, No, No, No, No, No, No,
|
|
|
-[0x10] No, No, No, No, No, No, No, No,
|
|
|
-[0x18] No, No, No, No, '\n', Ctrl, No, No,
|
|
|
-[0x20] No, No, No, No, No, No, No, No,
|
|
|
-[0x28] No, No, Shift, No, No, No, No, No,
|
|
|
-[0x30] No, No, No, No, No, '/', No, Print,
|
|
|
-[0x38] Altgr, No, No, No, No, No, No, No,
|
|
|
-[0x40] No, No, No, No, No, No, Break, Home,
|
|
|
-[0x48] Up, Pgup, No, Left, No, Right, No, End,
|
|
|
-[0x50] Down, Pgdown, Ins, Del, No, No, No, No,
|
|
|
-[0x58] No, No, No, No, No, No, No, No,
|
|
|
-[0x60] No, No, No, No, No, No, No, No,
|
|
|
-[0x68] No, No, No, No, No, No, No, No,
|
|
|
-[0x70] No, No, No, No, No, No, No, No,
|
|
|
-[0x78] No, Up, No, No, No, No, No, No,
|
|
|
+[0x00] = No, No, No, No, No, No, No, No,
|
|
|
+[0x08] = No, No, No, No, No, No, No, No,
|
|
|
+[0x10] = No, No, No, No, No, No, No, No,
|
|
|
+[0x18] = No, No, No, No, '\n', Ctrl, No, No,
|
|
|
+[0x20] = No, No, No, No, No, No, No, No,
|
|
|
+[0x28] = No, No, Shift, No, No, No, No, No,
|
|
|
+[0x30] = No, No, No, No, No, '/', No, Print,
|
|
|
+[0x38] = Altgr, No, No, No, No, No, No, No,
|
|
|
+[0x40] = No, No, No, No, No, No, Break, Home,
|
|
|
+[0x48] = Up, Pgup, No, Left, No, Right, No, End,
|
|
|
+[0x50] = Down, Pgdown, Ins, Del, No, No, No, No,
|
|
|
+[0x58] = No, No, No, No, No, No, No, No,
|
|
|
+[0x60] = No, No, No, No, No, No, No, No,
|
|
|
+[0x68] = No, No, No, No, No, No, No, No,
|
|
|
+[0x70] = No, No, No, No, No, No, No, No,
|
|
|
+[0x78] = No, Up, No, No, No, No, No, No,
|
|
|
};
|
|
|
|
|
|
static Rune kbtabaltgr[256] =
|
|
|
{
|
|
|
-[0x00] No, No, No, No, No, No, No, No,
|
|
|
-[0x08] No, No, No, No, No, No, No, No,
|
|
|
-[0x10] No, No, No, No, No, No, No, No,
|
|
|
-[0x18] No, No, No, No, '\n', Ctrl, No, No,
|
|
|
-[0x20] No, No, No, No, No, No, No, No,
|
|
|
-[0x28] No, No, Shift, No, No, No, No, No,
|
|
|
-[0x30] No, No, No, No, No, '/', No, Print,
|
|
|
-[0x38] Altgr, No, No, No, No, No, No, No,
|
|
|
-[0x40] No, No, No, No, No, No, Break, Home,
|
|
|
-[0x48] Up, Pgup, No, Left, No, Right, No, End,
|
|
|
-[0x50] Down, Pgdown, Ins, Del, No, No, No, No,
|
|
|
-[0x58] No, No, No, No, No, No, No, No,
|
|
|
-[0x60] No, No, No, No, No, No, No, No,
|
|
|
-[0x68] No, No, No, No, No, No, No, No,
|
|
|
-[0x70] No, No, No, No, No, No, No, No,
|
|
|
-[0x78] No, Up, No, No, No, No, No, No,
|
|
|
+[0x00] = No, No, No, No, No, No, No, No,
|
|
|
+[0x08] = No, No, No, No, No, No, No, No,
|
|
|
+[0x10] = No, No, No, No, No, No, No, No,
|
|
|
+[0x18] = No, No, No, No, '\n', Ctrl, No, No,
|
|
|
+[0x20] = No, No, No, No, No, No, No, No,
|
|
|
+[0x28] = No, No, Shift, No, No, No, No, No,
|
|
|
+[0x30] = No, No, No, No, No, '/', No, Print,
|
|
|
+[0x38] = Altgr, No, No, No, No, No, No, No,
|
|
|
+[0x40] = No, No, No, No, No, No, Break, Home,
|
|
|
+[0x48] = Up, Pgup, No, Left, No, Right, No, End,
|
|
|
+[0x50] = Down, Pgdown, Ins, Del, No, No, No, No,
|
|
|
+[0x58] = No, No, No, No, No, No, No, No,
|
|
|
+[0x60] = No, No, No, No, No, No, No, No,
|
|
|
+[0x68] = No, No, No, No, No, No, No, No,
|
|
|
+[0x70] = No, No, No, No, No, No, No, No,
|
|
|
+[0x78] = No, Up, No, No, No, No, No, No,
|
|
|
};
|
|
|
|
|
|
static Rune kbtabctrl[256] =
|
|
|
{
|
|
|
-[0x00] No, '\x1b', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16',
|
|
|
-[0x08] '\x17', '\x18', '\x19', '\x10', '\n', '\x1d', '\b', '\t',
|
|
|
-[0x10] '\x11', '\x17', '\x05', '\x12', '\x14', '\x19', '\x15', '\t',
|
|
|
-[0x18] '\x0f', '\x10', '\x1b', '\x1d', '\n', Ctrl, '\x01', '\x13',
|
|
|
-[0x20] '\x04', '\x06', '\x07', '\b', '\n', '\x0b', '\x0c', '\x1b',
|
|
|
-[0x28] '\x07', No, Shift, '\x1c', '\x1a', '\x18', '\x03', '\x16',
|
|
|
-[0x30] '\x02', '\x0e', '\n', '\x0c', '\x0e', '\x0f', Shift, '\n',
|
|
|
-[0x38] Alt, No, Ctrl, '\x05', '\x06', '\x07', '\x04', '\x05',
|
|
|
-[0x40] '\x06', '\x07', '\x0c', '\n', '\x0e', '\x05', '\x06', '\x17',
|
|
|
-[0x48] '\x18', '\x19', '\n', '\x14', '\x15', '\x16', '\x0b', '\x11',
|
|
|
-[0x50] '\x12', '\x13', '\x10', '\x0e', No, No, No, '\x0f',
|
|
|
-[0x58] '\x0c', No, No, No, No, No, No, No,
|
|
|
-[0x60] No, No, No, No, No, No, No, No,
|
|
|
-[0x68] No, No, No, No, No, No, No, No,
|
|
|
-[0x70] No, No, No, No, No, No, No, No,
|
|
|
-[0x78] No, '\x07', No, '\b', No, No, No, No,
|
|
|
+[0x00] = No, '\x1b', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16',
|
|
|
+[0x08] = '\x17', '\x18', '\x19', '\x10', '\n', '\x1d', '\b', '\t',
|
|
|
+[0x10] = '\x11', '\x17', '\x05', '\x12', '\x14', '\x19', '\x15', '\t',
|
|
|
+[0x18] = '\x0f', '\x10', '\x1b', '\x1d', '\n', Ctrl, '\x01', '\x13',
|
|
|
+[0x20] = '\x04', '\x06', '\x07', '\b', '\n', '\x0b', '\x0c', '\x1b',
|
|
|
+[0x28] = '\x07', No, Shift, '\x1c', '\x1a', '\x18', '\x03', '\x16',
|
|
|
+[0x30] = '\x02', '\x0e', '\n', '\x0c', '\x0e', '\x0f', Shift, '\n',
|
|
|
+[0x38] = kbAlt, No, Ctrl, '\x05', '\x06', '\x07', '\x04', '\x05',
|
|
|
+[0x40] = '\x06', '\x07', '\x0c', '\n', '\x0e', '\x05', '\x06', '\x17',
|
|
|
+[0x48] = '\x18', '\x19', '\n', '\x14', '\x15', '\x16', '\x0b', '\x11',
|
|
|
+[0x50] = '\x12', '\x13', '\x10', '\x0e', No, No, No, '\x0f',
|
|
|
+[0x58] = '\x0c', No, No, No, No, No, No, No,
|
|
|
+[0x60] = No, No, No, No, No, No, No, No,
|
|
|
+[0x68] = No, No, No, No, No, No, No, No,
|
|
|
+[0x70] = No, No, No, No, No, No, No, No,
|
|
|
+[0x78] = No, '\x07', No, '\b', No, No, No, No,
|
|
|
};
|
|
|
|
|
|
int
|