root / lab3 / i8042.h
History | View | Annotate | Download (1.29 KB)
1 | 9 | up20180645 | #ifndef _LCOM_I8042_H_
|
---|---|---|---|
2 | #define _LCOM_I8042_H_
|
||
3 | |||
4 | #include <lcom/lcf.h> |
||
5 | |||
6 | /** @defgroup i8042 i8042
|
||
7 | * @{
|
||
8 | *
|
||
9 | * Constants for programming the i8042 Keyboard.
|
||
10 | */
|
||
11 | |||
12 | 10 | up20180645 | //#define KEYBOARD_IRQ 0x09 /* Keyboard IRQ address */
|
13 | 9 | up20180645 | |
14 | 10 | up20180645 | //#define BIT(n) (0x01<<(n))
|
15 | 9 | up20180645 | |
16 | #define DELAY_US 20000 |
||
17 | |||
18 | #define STAT_REG_PAR BIT(7) /* Parity Error */ |
||
19 | #define STAT_REG_TIMEOUT BIT(6) /* Timeout Error */ |
||
20 | #define STAT_REG_AUX BIT(5) /* Mouse Data */ |
||
21 | #define STAT_REG_INH BIT(4) /* Inhibit Flag */ |
||
22 | #define STAT_REG_A2 BIT(3) /* A2 Input Line */ |
||
23 | #define STAT_REG_SYS BIT(2) /* System Flag */ |
||
24 | #define STAT_REG_IBF BIT(1) /* Input Buffer Full */ |
||
25 | #define STAT_REG_OBF BIT(0) /* Output Buffer Full */ |
||
26 | |||
27 | 11 | up20180645 | #define READ_COMMAND 0x20 /* Returns Command Byte */ |
28 | |||
29 | 9 | up20180645 | #define OUTPUT_BUF 0x60 /* Output Buffer */ |
30 | #define INPUT_BUF 0x60 /* Input Buffer */ |
||
31 | 11 | up20180645 | #define STATUS_REG 0x64 /* Status Register */ |
32 | #define KBC_CMD_REG 0x64 /* Command Register */ |
||
33 | #define INT_ENABLE BIT(0) /*enable interrupt on OBF, from keyboard*/ |
||
34 | #define KBC_CMD_ARG 0x60 /* Command Arguments Adress */ |
||
35 | 9 | up20180645 | |
36 | 11 | up20180645 | #define ESC_BREAK 0x81 |
37 | 9 | up20180645 | #define TWO_BYTE_SCANCODE 0xE0 /* Two-byte long scancodes use 0xE0 as their first byte */ |
38 | 11 | up20180645 | #define MAKE_CODE BIT(7) |
39 | 9 | up20180645 | |
40 | #endif /* _LCOM_I8042_H */ |