1 #define KBSTATP 0x64 /* kbd controller status port (I) */ 2 #define KBS_DIB 0x01 /* kbd data in buffer */ 3 #define KBS_IBF 0x02 /* kbd input buffer low */ 4 #define KBS_WARM 0x04 /* kbd input buffer low */ 5 #define KBS_OCMD 0x08 /* kbd output buffer has command */ 6 #define KBS_NOSEC 0x10 /* kbd security lock not engaged */ 7 /* #define KBS_TERR 0x20 /* kbd transmission error */ 8 #define KBS_AUXDIB 0x20 /* kbd aux port data in buffer */ 9 #define KBS_TOERR 0x40 /* kbd timeout error */ 10 #define KBS_PERR 0x80 /* kbd parity error */ 11 12 #define KBCMDP 0x64 /* kbd controller port (O) */ 13 #define KBDATAP 0x60 /* kbd data port (I) */ 14 #define KBOUTP 0x60 /* kbd data port (O) */ 15 16 /* 17 * Keyboard controller commands 18 */ 19 #define K_READ 0x20 /* read keyboard controller RAM (0x20-0x3f) */ 20 #define K_WRITE 0x60 /* write keyboard controller RAM (0x20-0x3f) */ 21 #define K__CMDBYTE 0x0 /* cmd byte address */ 22 #define K__SECONBYTE 0x13 /* security on byte address */ 23 #define K__SECOFFBYTE 0x14 /* security off byte address */ 24 #define K__MAKE1BYTE 0x16 /* first make strip byte address */ 25 #define K__MAKE2BYTE 0x17 /* second make strip byte address */ 26 #define K__XXX 0x1D /* byte address */ 27 #define K__YYY 0x1F /* byte address */ 28 #define K_ISPASSWD 0xA4 /* is there a passwd in keyboard controller ? */ 29 #define K__YESPASSWD 0xFA /* passwd is installed */ 30 #define K__NOPASSWD 0xF1 /* no passwd is installed */ 31 #define K_LDPASSWD 0xA5 /* load a passwd into keyboard controller */ 32 #define K_ENAPASSWD 0xA6 /* enable a passwd into keyboard controller */ 33 #define K_DISAUX 0xA7 /* disable aux device on keyboard controller */ 34 #define K_ENAAUX 0xA8 /* enable aux device on keyboard controller */ 35 #define K_DISKEY 0xAD /* disable keyboard on keyboard controller */ 36 #define K_ENAKEY 0xAE /* enable keyboard on keyboard controller */ 37 #define K_READINP 0xC0 /* read input port */ 38 #define K_READOUTP 0xD0 /* read output port */ 39 #define K_WRITEOUTP 0xD1 /* write output port */ 40 #define K_SIMKEYIN 0xD2 /* simulate keyboard input */ 41 #define K_SIMAUXIN 0xD3 /* simulate aux input */ 42 #define K_AUXOUT 0xD4 /* send next byte to aux device */ 43 #define K_TEST 0xE0 /* read test inputs, bits 0 & 1 */ 44 #define K_PULSE 0xF0 /* pulse output port (0xf0-ff) */ 45 #define K__RESET 0x0E /* reset system */ 46 47 /* 48 * Keyboard controller command byte (K__CMDBYTE) 49 */ 50 #define KC8_TRANS 0x40 /* convert to old scan codes */ 51 /*#define KC8_OLDPC 0x20 /* old 9bit codes instead of new 11bit */ 52 #define KC8_AUXDIS 0x20 /* disable aux interrupt */ 53 #define KC8_KEYDIS 0x10 /* disable keyboard */ 54 #define KC8_IGNSEC 0x08 /* ignore security lock */ 55 #define KC8_CPU 0x04 /* exit from protected mode reset */ 56 #define KC8_AUXIEN 0x02 /* enable aux interrupt */ 57 #define KC8_KEYIEN 0x01 /* enable keyboard interrupt */ 58 59 #define ENABLE_CMDBYTE (KC8_TRANS|KC8_IGNSEC|KC8_CPU|KC8_AUXIEN|KC8_KEYIEN) 60 #define DISABLE_CMDBYTE (KC8_TRANS|KC8_AUXDIS|KC8_KEYDIS|KC8_IGNSEC|KC8_CPU) 61 62 /* 63 * Output Port Definitions 64 */ 65 #define KC8_KOUT 0x80 /* keyboard data line state */ 66 #define KC8_KCLK 0x40 /* keyboard clock line state */ 67 #define KC8_IRQ12 0x20 /* aux interrupt sent */ 68 #define KC8_IRQ1 0x10 /* keyboard interrupt sent */ 69 #define KC8_AOUT 0x08 /* aux data line state */ 70 #define KC8_ACLK 0x04 /* aux clock line state */ 71 #define KC8_GATEA20 0x02 /* gate a20 */ 72 #define KC8_RESET 0x01 /* reset */ 73 74