VChar
typedef ByteEnum VChar;
#define VC_NULL 0x0 /* NULL */
#define VC_CTRL_A 0x1 /* <ctrl>-A */
#define VC_CTRL_B 0x2 /* <ctrl>-B */
#define VC_CTRL_C 0x3 /* <ctrl>-C */
#define VC_CTRL_D 0x4 /* <ctrl>-D */
#define VC_CTRL_E 0x5 /* <ctrl>-E */
#define VC_CTRL_F 0x6 /* <ctrl>-F */
#define VC_CTRL_G 0x7 /* <ctrl>-G */
#define VC_CTRL_H 0x8 /* <ctrl>-H */
#define VC_CTRL_I 0x9 /* <ctrl>-I */
#define VC_CTRL_J 0xa /* <ctrl>-J */
#define VC_CTRL_K 0xb /* <ctrl>-K */
#define VC_CTRL_L 0xc /* <ctrl>-L */
#define VC_CTRL_M 0xd /* <ctrl>-M */
#define VC_CTRL_N 0xe /* <ctrl>-N */
#define VC_CTRL_O 0xf /* <ctrl>-O */
#define VC_CTRL_P 0x10 /* <ctrl>-P */
#define VC_CTRL_Q 0x11 /* <ctrl>-Q */
#define VC_CTRL_R 0x12 /* <ctrl>-R */
#define VC_CTRL_S 0x13 /* <ctrl>-S */
#define VC_CTRL_T 0x14 /* <ctrl>-T */
#define VC_CTRL_U 0x15 /* <ctrl>-U */
#define VC_CTRL_V 0x16 /* <ctrl>-V */
#define VC_CTRL_W 0x17 /* <ctrl>-W */
#define VC_CTRL_X 0x18 /* <ctrl>-X */
#define VC_CTRL_Y 0x19 /* <ctrl>-Y */
#define VC_CTRL_Z 0x1a /* <ctrl>-Z */
#define VC_ESCAPE 0x1b /* ESC */
#define VC_BLANK 0x20 /* space */
/*
* Numeric keypad keys
*/
#define VC_NUMPAD_ENTER 0xd /* only on PS/2 keyboards */
#define VC_NUMPAD_DIV `/' /* only on PS/2 keyboards */
#define VC_NUMPAD_MULT `*'
#define VC_NUMPAD_PLUS `+'
#define VC_NUMPAD_MINUS `-'
#define VC_NUMPAD_PERIOD `.'
#define VC_NUMPAD_0 `0'
#define VC_NUMPAD_1 `1'
#define VC_NUMPAD_2 `2'
#define VC_NUMPAD_3 `3'
#define VC_NUMPAD_4 `4'
#define VC_NUMPAD_5 `5'
#define VC_NUMPAD_6 `6'
#define VC_NUMPAD_7 `7'
#define VC_NUMPAD_8 `8'
#define VC_NUMPAD_9 `9'
/*
* Extended keyboard codes -- non-ASCII
*/
#define VC_F1 0x80 /* Function keys */
#define VC_F2 0x81
#define VC_F3 0x82
#define VC_F4 0x83
#define VC_F5 0x84
#define VC_F6 0x85
#define VC_F7 0x86
#define VC_F8 0x87
#define VC_F9 0x88
#define VC_F10 0x89
#define VC_F11 0x8a /* only on PS/2 keyboards */
#define VC_F12 0x8b /* only on PS/2 keyboards */
#define VC_F13 0x8c /* non-standard key */
#define VC_F14 0x8d /* non-standard key */
#define VC_F15 0x8e /* non-standard key */
#define VC_F16 0x8f /* non-standard key */
#define VC_UP 0x90 /* Cursor keys */
#define VC_DOWN 0x91
#define VC_RIGHT 0x92
#define VC_LEFT 0x93
#define VC_HOME 0x94 /* Scroll commands */
#define VC_END 0x95
#define VC_PREVIOUS 0x96
#define VC_NEXT 0x97
#define VC_INS 0x98 /* INS */
#define VC_DEL 0x9a /* DEL */
#define VC_PRINTSCREEN 0x9b /* from <shift>-NUMPAD_MULT */
#define VC_PAUSE 0x9c /* from <ctrl>-NUMLOCK */
#define VC_BREAK 0x9e /* from <ctrl>- or <alt>-combo */
#define VC_SYSTEMRESET 0x9f /* <ctrl>-<alt>-<del> combo */
/*
* Joystick control keys (0xa0 - 0xa9)
*/
#define VC_JOYSTICK_0 0xa0 ; joystick 0 degrees
#define VC_JOYSTICK_45 0xa1 ; joystick 45 degrees
#define VC_JOYSTICK_90 0xa2 ; joystick 90 degrees
#define VC_JOYSTICK_135 0xa3 ; joystick 135 degrees
#define VC_JOYSTICK_180 0xa4 ; joystick 180 degrees
#define VC_JOYSTICK_225 0xa5 ; joystick 225 degrees
#define VC_JOYSTICK_270 0xa6 ; joystick 270 degrees
#define VC_JOYSTICK_315 0xa7 ; joystick 315 degrees
#define VC_FIRE_BUTTON_1 0xa8 ; fire button #1
#define VC_FIRE_BUTTON_2 0xa9 ; fire button #2
/*
* Shift Keys (0xe0 - 0xe7)
*/
#define VC_LALT 0xe0
#define VC_RALT 0xe1
#define VC_LCTRL 0xe2
#define VC_RCTRL 0xe3
#define VC_LSHIFT 0xe4
#define VC_RSHIFT 0xe5
#define VC_SYSREQ 0xe6 /* Not on base PC keyboard */
#define VC_ALT_GR 0xe7
/*
* Toggle state keys (0xe8 - 0xef)
*/
#define VC_CAPSLOCK 0xe8
#define VC_NUMLOCK 0xe9
#define VC_SCROLLLOCK 0xea
/*
* Extended state keys (0xf0 - 0xf7)
*/
#define VC_INVALID_KEY 0xff
#define VC_BACKSPACE VC_CTRL_H
#define VC_TAB VC_CTRL_I
#define VC_LF VC_CTRL_J
#define VC_ENTER VC_CTRL_M