#ifndef __KEYBOARD_H #define __KEYBOARD_H #include <os/keyboard.h> #define KEYB_PORT 0x60 /* keyboard port */ #define KEYB_CTRL 0x64 /* keyboard controller port */ #define KCTRL_ENABLE_AUX 0xA8 /* enable aux port (PS/2 mouse) */ #define KCTRL_WRITE_CMD_BYTE 0x60 /* write to command register */ #define KCTRL_WRITE_AUX 0xD4 /* write next byte at port 60 to aux port */ /* flags for KCTRL_WRITE_CMD_BYTE */ #define KCTRL_IRQ1 0x01 #define KCTRL_IRQ12 0x02 #define KCTRL_SYS 0x04 #define KCTRL_OVERRIDE_INHIBIT 0x08 #define KCTRL_DISABLE_KEYB 0x10 #define KCTRL_DISABLE_AUX 0x20 #define KCTRL_TRANSLATE_XT 0x40 /* commands to keyboard */ #define KEYB_SET_LEDS 0xED #define KEYB_SET_SCANCODE_SET 0xF0 #define KEYB_IDENTIFY 0xF2 #define KEYB_SET_TYPEMATIC 0xF3 #define KEYB_ENABLE 0xF4 #define KEYB_RESET_DISABLE 0xF5 #define KEYB_ALL_TYPM_MAKE_BRK 0xFA /* default ACK from keyboard following command */ #define KEYB_ACK "\xFA" /* commands to aux device (PS/2 mouse) */ #define AUX_INFORMATION 0xE9 #define AUX_ENABLE 0xF4 #define AUX_IDENTIFY 0xF2 #define AUX_RESET 0xFF /* "raw" set 1 scancodes from PC keyboard */ #define RAW_LEFT_CTRL 0x1D #define RAW_LEFT_SHIFT 0x2A #define RAW_CAPS_LOCK 0x3A #define RAW_LEFT_ALT 0x38 #define RAW_RIGHT_ALT 0xFF #define RAW_RIGHT_CTRL 0xFF #define RAW_RIGHT_SHIFT 0x36 #define RAW_SCROLL_LOCK 0x46 #define RAW_NUM_LOCK 0x45 #define RAW_NUM7 0x47 #define RAW_NUM8 0x48 #define RAW_NUM9 0x49 #define RAW_NUM4 0x4b #define RAW_NUM5 0x4c #define RAW_NUM6 0x4d #define RAW_NUM1 0x4f #define RAW_NUM2 0x50 #define RAW_NUM3 0x51 #define RAW_NUM0 0x52 #endif