📄 i8042_p.h
字号:
/* * COPYRIGHT (c) 1998 by Radstone Technology * * * THIS FILE IS PROVIDED TO YOU, THE USER, "AS IS", WITHOUT WARRANTY OF ANY * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK * AS TO THE QUALITY AND PERFORMANCE OF ALL CODE IN THIS FILE IS WITH YOU. * * You are hereby granted permission to use, copy, modify, and distribute * this file, provided that this notice, plus the above copyright notice * and disclaimer, appears in all copies. Radstone Technology will provide * no support for this code. * */#ifndef _I8042_P_H_#define _I8042_P_H_#ifdef __cplusplusextern "C" {#endif#define KBD_CTR_WRITE_COMMAND 0x60#define KBD_CTR_READ_COMMAND 0x20#define KBD_CTR_TEST_PASSWORD 0xA4#define KBD_CTR_LOAD_PASSWORD 0xA5#define KBD_CTR_ENABLE_PASSWORD 0xA6#define KBD_CTR_DISABLE_AUX 0xA7#define KBD_CTR_ENABLE_AUX 0xA8#define KBD_CTR_AUXLINES_TEST 0xA9#define KBD_CTR_SELFTEST 0xAA#define KBD_CTR_KBDLINES_TEST 0xAB#define KBD_CTR_DISABLE_KBD 0xAD#define KBD_CTR_ENABLE_KBD 0xAE#define KBD_CTR_WRITE_AUX 0xD4#define KBD_CTR_READ_REV 0xD5#define KBD_CTR_READ_VER 0xD6#define KBD_CTR_READ_MODEL 0xD7/* Keyboard Controller Data */#define KBD_CTR_SELFTEST_PASSED 0x55#define KBD_CTR_PASSWORD_INSTALLED 0xFA#define KBD_CTR_PASSWORD_NOT_INSTALLED 0xF1/* Controller Command Byte bit definitions. */#define KBD_CMD_BYTE_DISABLE_AUX 0x20#define KBD_CMD_BYTE_DISABLE_KBD 0x10#define KBD_CMD_ENABLE_AUX_INT 0x02#define KBD_CMD_ENABLE_KBD_INT 0x01/* Keyboard Controller Status byte masks */#define KBD_OBF_MASK 0x1 /* Output buffer full */#define KBD_IBF_MASK 0x2 /* Input buffer full */#define KBD_FROM_AUX_MASK 0x20 /* Byte from Aux Port. *//* Interface Test Results */#define INTERFACE_NO_ERROR 0x00#define CLOCK_STUCK_LOW 0x01#define CLOCK_STUCK_HIGH 0x02#define DATA_STUCK_LOW 0x03#define DATA_STUCK_HIGH 0x04/* Timeout */#define KBD_TIMEOUT 500000 /* Effectively ISA read access times *//* Keyboard Commands */#define KBD_CMD_SET_LEDS 0xed /* Set/Reset LEDs */#define KBD_CMD_ECHO 0xee /* request keyboard echo resp. "EE" */#define KBD_CMD_SEL_SCAN_CODE 0xf0 /* Scan codes 1,2,3 or 0 = rquest current. */#define KBD_CMD_READ_ID 0xf2 /* Request for two byte response */#define KBD_CMD_SET_RATE 0xf3 /* Set tellematic Rate */#define KBD_CMD_ENABLE 0xf4 /* Clears Buffer and Starts Scanning. */#define KBD_CMD_DISABLE 0xf5 /* reset to power up */#define KBD_CMD_SET_DEFAULT 0xf6 #define KBD_CMD_SET_ALL_TLMTIC 0xf7 /* Set all keys telematic */#define KBD_CMD_SET_ALL_MKBR 0xf8 /* Set all keys Make /Break */#define KBD_CMD_SET_ALL_MAKE 0xf9 /* Set all keys Make only */#define KBD_CMD_SET_KEY_TLMTIC 0xfb /* Set individual key telemativ */#define KBD_CMD_SET_KEY_MKBR 0xfc /* set individual key make/break */#define KBD_CMD_SET_KEY_MK 0xfd /* set individual key make only */#define KBD_CMD_RESEND 0xfe /* request to resend last transfer */#define KBD_CMD_RESET 0xff /* request to start a program reset */#define KBD_CMD_ACK 0xfa /* keyboard ack after reset */#define KBD_CMD_BAT 0xaa /* Keyboard Bat completion Response *//* * Define LED encodings for use with the KbdSetLEDs command */#define KBD_LED_CAPS 0x04#define KBD_LED_NUM 0x02#define KBD_LED_SCROLL 0x01/* * Define two code scan codes in keycode order */#define KEY_TWO_KEY 0xe0#define KEY_ALT 0x38#define KEY_CONTROL 0x1d#define KEY_INSERT 0x52#define KEY_DELETE 0x53#define KEY_LEFT_ARROW 0x4b#define KEY_HOME 0x47#define KEY_END 0x4F#define KEY_UP_ARROW 0x48#define KEY_DOWN_ARROW 0x50#define KEY_PAGE_UP 0x49#define KEY_PAGE_DOWN 0x51#define KEY_RIGHT_ARROW 0x4d#define KEY_KEYPAD_SLASH 0x35#define KEY_KEYPAD_ENTER 0x1c#define KEY_SYS_REQUEST 0x2a#define KEY_PRINT_SCREEN 0x37#define KEY_LEFT_SHIFT 0x2a#define KEY_RIGHT_SHIFT 0x36#define KEY_TAB 0x0f#define KEY_CAPS_LOCK 0x3a#define KEY_NUM_LOCK 0x45#define KEY_SCROLL_LOCK 0x46#define KEY_ESC 0x01#define KEY_F1 0x3b#define KEY_F2 0x3c#define KEY_F3 0x3d#define KEY_F4 0x3e#define KEY_F5 0x3f#define KEY_F6 0x40#define KEY_F7 0x41#define KEY_F8 0x42#define KEY_F9 0x43#define KEY_F10 0x44#define KEY_F11 0x57#define KEY_F12 0x58/* * ASCII control codes */#define ASCII_NUL 0x00#define ASCII_SOH 0x01#define ASCII_STX 0x02#define ASCII_ETX 0x03#define ASCII_EOT 0x04#define ASCII_ENQ 0x05#define ASCII_ACK 0x06#define ASCII_BEL 0x07#define ASCII_BS 0x08#define ASCII_HT 0x09#define ASCII_LF 0x0a#define ASCII_VT 0x0b#define ASCII_FF 0x0c#define ASCII_CR 0x0d#define ASCII_SO 0x0e#define ASCII_SI 0x0f#define ASCII_DLE 0x10#define ASCII_XON 0x11#define ASCII_DC1 0x11#define ASCII_DC2 0x12#define ASCII_XOFF 0x13#define ASCII_DC3 0x13#define ASCII_DC4 0x14#define ASCII_NAK 0x15#define ASCII_SYN 0x16#define ASCII_ETB 0x17#define ASCII_CAN 0x18#define ASCII_EM 0x19#define ASCII_SUB 0x1a#define ASCII_ESC 0x1b#define ASCII_FS 0x1c#define ASCII_GS 0x1d#define ASCII_RS 0x1e#define ASCII_US 0x1f#define ASCII_DEL 0x7f#define ASCII_SYSRQ 0x80#define ASCII_CSI 0x9b/* * Exported functions */extern boolean i8042_probe(int minor);extern void i8042_init(int minor);#if CONSOLE_USE_INTERRUPTSextern void i8042_initialize_interrupts(int minor);#elseextern int i8042_inbyte_nonblocking_polled( int minor);#endif /* CONSOLE_USE_INTERRUPTS */#ifdef __cplusplus}#endif#endif /* _I8042_P_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -