#define LSHIFT_CODE 0x2A #define RSHIFT_CODE 0x36 #define NUMLOCK_CODE 0x45 #define SCROLLLOCK_CODE 0x46 #define CAPSLOCK_CODE 0x3A #define ACKNOWLEDGE_CODE 0xFA #define EXTENDED0_CODE 0xE0 #define EXTENDED1_CODE 0xE1 #define LALT_CODE 0x38 #define RALT_CODE 0xE038 #define PAUSE_CODE 0x00E11D45 #define LCTRL_CODE 0x1D #define RCTRL_CODE 0xE01D #define FLAG_BUFFER_FULL (1 << 0) #define FLAG_EXTENDED_KEY (1 << 1) #define FLAG_SCROLLLOCK_PRESSED (1 << 2) #define FLAG_NUMLOCK_PRESSED (1 << 3) #define FLAG_CAPSLOCK_PRESSED (1 << 4) #define FLAG_SCROLLLOCK_ACTIVE (1 << 5) #define FLAG_NUMLOCK_ACTIVE (1 << 6) #define FLAG_CAPSLOCK_ACTIVE (1 << 7) #define FLAG_LSHIFT_PRESSED (1 << 8) #define FLAG_RSHIFT_PRESSED (1 << 9) #define FLAG_LALT_PRESSED (1 << 10) #define FLAG_RALT_PRESSED (1 << 11) #define FLAG_LCTRL_PRESSED (1 << 12) #define FLAG_RCTRL_PRESSED (1 << 13) #define KEY_RELEASE 0x80 #define KEY_CODE 0x7F void kb_write_keycode(); void kb_read_keycode();