Go to the source code of this file.
Data Structures | |
| struct | KEY_BUFFER |
| struct | KEYBOARD_CONTROL |
Defines | |
| #define | GENERALCODE_STATE 0 |
| #define | EXTENDCODE_STATE 1 |
| #define | EXTENDCODE2_1STCODE_STATE 2 |
| #define | EXTENDCODE2_2NDCODE_STATE 3 |
| #define | KEY_RELEASE 0x80 |
| #define | KEY_PRESS 0x00 |
| #define | KEY_MINUS 0x0c |
| #define | KEY_EQUAL 0x0d |
| #define | KEY_UL2DR_SLASH 0x2b |
| #define | KEY_DIVIDE 0x035 |
| #define | KEY_DOT 0x034 |
| #define | KEY_UPPER_DOT 0x028 |
| #define | KEY_COMMA 0x033 |
| #define | KEY_UPPER_COMMA 0x29 |
| #define | KEY_SEMICOLON 0x27 |
| #define | KEY_LEFT_BRACKET 0x1a |
| #define | KEY_RIGHT_BRACKET 0x1b |
| #define | KEY_0 0x0b |
| #define | KEY_1 0x02 |
| #define | KEY_2 0x03 |
| #define | KEY_3 0x04 |
| #define | KEY_4 0x05 |
| #define | KEY_5 0x06 |
| #define | KEY_6 0x07 |
| #define | KEY_7 0x08 |
| #define | KEY_8 0x09 |
| #define | KEY_9 0x0a |
| #define | KEY_a 0x1e |
| #define | KEY_b 0x30 |
| #define | KEY_c 0x2e |
| #define | KEY_d 0x20 |
| #define | KEY_e 0x12 |
| #define | KEY_f 0x21 |
| #define | KEY_g 0x22 |
| #define | KEY_h 0x23 |
| #define | KEY_i 0x17 |
| #define | KEY_j 0x24 |
| #define | KEY_k 0x25 |
| #define | KEY_l 0x26 |
| #define | KEY_m 0x32 |
| #define | KEY_n 0x31 |
| #define | KEY_o 0x18 |
| #define | KEY_p 0x19 |
| #define | KEY_q 0x10 |
| #define | KEY_r 0x13 |
| #define | KEY_s 0x1f |
| #define | KEY_t 0x14 |
| #define | KEY_u 0x16 |
| #define | KEY_v 0x2f |
| #define | KEY_w 0x11 |
| #define | KEY_x 0x2d |
| #define | KEY_y 0x15 |
| #define | KEY_z 0x2c |
| #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 |
| #define | KEY_ESC 0x01 |
| #define | KEY_NUMLOCK 0x45 |
| #define | KEY_SCROLL_LOCK 0x46 |
| #define | KEY_SHIFT_RIGHT 0x36 |
| #define | KEY_SHIFT_LEFT 0x2a |
| #define | KEY_ALT_LEFT 0x38 |
| #define | KEY_CAPSLOCK 0x3a |
| #define | KEY_TAB 0x0f |
| #define | KEY_CTRL_LEFT 0x1d |
| #define | KEY_ENTER 0x1c |
| #define | KEY_BACKSPACE 0x0e |
| #define | KEY_SPACE 0x39 |
| #define | KEY_NUMPAD_0 0x52 |
| #define | KEY_NUMPAD_1 0x4f |
| #define | KEY_NUMPAD_2 0x50 |
| #define | KEY_NUMPAD_3 0x51 |
| #define | KEY_NUMPAD_4 0x4b |
| #define | KEY_NUMPAD_5 0x4c |
| #define | KEY_NUMPAD_6 0x4d |
| #define | KEY_NUMPAD_7 0x47 |
| #define | KEY_NUMPAD_8 0x48 |
| #define | KEY_NUMPAD_9 0x49 |
| #define | KEY_NUMPAD_DOT 0x53 |
| #define | KEY_NUMPAD_STAR 0x37 |
| #define | KEY_NUMPAD_MINUS 0x4a |
| #define | KEY_NUMPAD_PLUS 0x4e |
| #define | KEY_NUMPAD_DIVIDE 0x35 |
| #define | KEY_NUMPAD_ENTER 0x1c |
| #define | KEY_PRTSC 0x37 |
| #define | KEY_HOME 0x47 |
| #define | KEY_END 0x4f |
| #define | KEY_PAGEUP 0x49 |
| #define | KEY_PAGEDOWN 0x51 |
| #define | KEY_ARROWUP 0x48 |
| #define | KEY_ARROWDOWN 0x50 |
| #define | KEY_ARROWLEFT 0x4b |
| #define | KEY_ARRORRIGHT 0x4d |
| #define | KEY_DEL 0x53 |
| #define | KEY_INS 0x52 |
| #define | KEY_ALT_RIGHT 0x38 |
| #define | KEY_CTRL_RIGHT 0x1d |
| #define | KEY_WINDOWS_MENU 0x5d |
| #define | KEY_WINDOWS_START 0x5b |
| #define | KEY_PAUSE 0xe1 |
| #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_DC1 0x11 |
| #define | ASCII_DC2 0x12 |
| #define | ASCII_DC3 0x13 |
| #define | ASCII_DC4 0x14 |
| #define | ASCII_NAK 0x15 |
| #define | ASCII_SYN 0x26 |
| #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_SP 0x20 |
| #define | ASCII_DEL 0x7f |
| #define | KB_SPECIAL_F1_KEY 0x80 |
| #define | KB_SPECIAL_F2_KEY 0x81 |
| #define | KB_SPECIAL_F3_KEY 0x82 |
| #define | KB_SPECIAL_F4_KEY 0x83 |
| #define | KB_SPECIAL_F5_KEY 0x84 |
| #define | KB_SPECIAL_F6_KEY 0x85 |
| #define | KB_SPECIAL_F7_KEY 0x86 |
| #define | KB_SPECIAL_F8_KEY 0x87 |
| #define | KB_SPECIAL_F9_KEY 0x88 |
| #define | KB_SPECIAL_F10_KEY 0x89 |
| #define | KB_SPECIAL_F11_KEY 0x8a |
| #define | KB_SPECIAL_F12_KEY 0x8b |
| #define | KB_SPECIAL_PRTSCR_KEY 0x8c |
| #define | KB_SPECIAL_SCROLL_LOCK_KEY 0x8d |
| #define | KB_SPECIAL_PAUSE_BREAK_KEY 0x8e |
| #define | KB_SPECIAL_TAB_KEY 0x8f |
| #define | KB_SPECIAL_SHIFT_AT_LEFT_KEY 0x90 |
| #define | KB_SPECIAL_SHIFT_AT_RIGHT_KEY 0x91 |
| #define | KB_SPECIAL_CTRL_AT_LEFT_KEY 0x92 |
| #define | KB_SPECIAL_CTRL_AT_RIGHT_KEY 0x93 |
| #define | KB_SPECIAL_WINDOW_AT_LEFT_KEY 0x94 |
| #define | KB_SPECIAL_WINDOW_AT_RIGHT_KEY 0x95 |
| #define | KB_SPECIAL_ATL_AT_LEFT_KEY 0x96 |
| #define | KB_SPECIAL_ATL_AT_RIGHT_KEY 0x97 |
| #define | KB_SPECIAL_MENUS_KEY 0x98 |
| #define | KB_SPECIAL_INSERT_KEY 0x99 |
| #define | KB_SPECIAL_HOME_KEY 0x9a |
| #define | KB_SPECIAL_PAGE_DOWN_KEY 0x9b |
| #define | KB_SPECIAL_END_KEY 0x9c |
| #define | KB_SPECIAL_PAGE_UP_KEY 0x9d |
| #define | KB_SPECIAL_CAP_LOCK_KEY 0x9e |
| #define | KB_SPECIAL_UP_ARROW_KEY 0x9f |
| #define | KB_SPECIAL_LEFT_ARROW_KEY 0xa0 |
| #define | KB_SPECIAL_DOWN_ARROW_KEY 0xa1 |
| #define | KB_SPECIAL_RIGHT_ARROW_KEY 0xa2 |
| #define | KB_SPECIAL_NUM_LOCK_KEY 0xa3 |
| #define | KB_SPECIAL_INS 0xa4 |
| #define | KB_DATA_REG 0x60 |
| #define | KB_CMD_REG 0x64 |
| #define | KB_STATUS_REG 0x64 |
| #define | LED_CODE 0xed |
| #define | KB_ACK 0xfa |
| #define | KB_SCROLLLOCK_LED 0x01 |
| #define | KB_NUMBERLOCK_LED 0x02 |
| #define | KB_CAPSLOCK_LED 0x04 |
| #define | KEYBOARD_KEYBUFFER_SZIE 50 |
Functions | |
| void | KeyboardInit (void) |
| void | KeyboardStop (void) |
| void | KeyboardHandler (void) |
| U8 | KeyboardKeyBufferCheck (void) |
| U8 | KeyboardKeyBufferCheckIsr (void) |
| void | KeyboardKeyBufferPut (U8 Data) |
| void | KeyboardKeyBufferPutIsr (U8 Data) |
| U8 | KeyboardKeyBufferGet (void) |
Variables | |
| KEYBOARD_CONTROL | KeyboardCtrl |
| #define ASCII_ACK 0x06 |
Definition at line 134 of file keyboard.h.
| #define ASCII_BEL 0x07 |
Definition at line 135 of file keyboard.h.
| #define ASCII_BS 0x08 |
Definition at line 136 of file keyboard.h.
| #define ASCII_CAN 0x18 |
Definition at line 152 of file keyboard.h.
| #define ASCII_CR 0x0d |
Definition at line 141 of file keyboard.h.
| #define ASCII_DC1 0x11 |
Definition at line 145 of file keyboard.h.
| #define ASCII_DC2 0x12 |
Definition at line 146 of file keyboard.h.
| #define ASCII_DC3 0x13 |
Definition at line 147 of file keyboard.h.
| #define ASCII_DC4 0x14 |
Definition at line 148 of file keyboard.h.
| #define ASCII_DEL 0x7f |
Definition at line 161 of file keyboard.h.
| #define ASCII_DLE 0x10 |
Definition at line 144 of file keyboard.h.
| #define ASCII_EM 0x19 |
Definition at line 153 of file keyboard.h.
| #define ASCII_ENQ 0x05 |
Definition at line 133 of file keyboard.h.
| #define ASCII_EOT 0x04 |
Definition at line 132 of file keyboard.h.
| #define ASCII_ESC 0x1b |
Definition at line 155 of file keyboard.h.
| #define ASCII_ETB 0x17 |
Definition at line 151 of file keyboard.h.
| #define ASCII_ETX 0x03 |
Definition at line 131 of file keyboard.h.
| #define ASCII_FF 0x0c |
Definition at line 140 of file keyboard.h.
| #define ASCII_FS 0x1c |
Definition at line 156 of file keyboard.h.
| #define ASCII_GS 0x1d |
Definition at line 157 of file keyboard.h.
| #define ASCII_HT 0x09 |
Definition at line 137 of file keyboard.h.
| #define ASCII_LF 0x0a |
Definition at line 138 of file keyboard.h.
| #define ASCII_NAK 0x15 |
Definition at line 149 of file keyboard.h.
| #define ASCII_NUL 0x00 |
Definition at line 128 of file keyboard.h.
| #define ASCII_RS 0x1e |
Definition at line 158 of file keyboard.h.
| #define ASCII_SI 0x0f |
Definition at line 143 of file keyboard.h.
| #define ASCII_SO 0x0e |
Definition at line 142 of file keyboard.h.
| #define ASCII_SOH 0x01 |
Definition at line 129 of file keyboard.h.
| #define ASCII_SP 0x20 |
Definition at line 160 of file keyboard.h.
| #define ASCII_STX 0x02 |
Definition at line 130 of file keyboard.h.
| #define ASCII_SUB 0x1a |
Definition at line 154 of file keyboard.h.
| #define ASCII_SYN 0x26 |
Definition at line 150 of file keyboard.h.
| #define ASCII_US 0x1f |
Definition at line 159 of file keyboard.h.
| #define ASCII_VT 0x0b |
Definition at line 139 of file keyboard.h.
| #define EXTENDCODE2_1STCODE_STATE 2 |
Definition at line 6 of file keyboard.h.
| #define EXTENDCODE2_2NDCODE_STATE 3 |
Definition at line 7 of file keyboard.h.
| #define EXTENDCODE_STATE 1 |
Definition at line 5 of file keyboard.h.
| #define GENERALCODE_STATE 0 |
Definition at line 4 of file keyboard.h.
| #define KB_ACK 0xfa |
Definition at line 206 of file keyboard.h.
| #define KB_CAPSLOCK_LED 0x04 |
Definition at line 210 of file keyboard.h.
| #define KB_CMD_REG 0x64 |
Definition at line 203 of file keyboard.h.
| #define KB_DATA_REG 0x60 |
Definition at line 202 of file keyboard.h.
| #define KB_NUMBERLOCK_LED 0x02 |
Definition at line 209 of file keyboard.h.
| #define KB_SCROLLLOCK_LED 0x01 |
Definition at line 208 of file keyboard.h.
| #define KB_SPECIAL_ATL_AT_LEFT_KEY 0x96 |
Definition at line 185 of file keyboard.h.
| #define KB_SPECIAL_ATL_AT_RIGHT_KEY 0x97 |
Definition at line 186 of file keyboard.h.
| #define KB_SPECIAL_CAP_LOCK_KEY 0x9e |
Definition at line 193 of file keyboard.h.
| #define KB_SPECIAL_CTRL_AT_LEFT_KEY 0x92 |
Definition at line 181 of file keyboard.h.
| #define KB_SPECIAL_CTRL_AT_RIGHT_KEY 0x93 |
Definition at line 182 of file keyboard.h.
| #define KB_SPECIAL_DOWN_ARROW_KEY 0xa1 |
Definition at line 196 of file keyboard.h.
| #define KB_SPECIAL_END_KEY 0x9c |
Definition at line 191 of file keyboard.h.
| #define KB_SPECIAL_F10_KEY 0x89 |
Definition at line 172 of file keyboard.h.
| #define KB_SPECIAL_F11_KEY 0x8a |
Definition at line 173 of file keyboard.h.
| #define KB_SPECIAL_F12_KEY 0x8b |
Definition at line 174 of file keyboard.h.
| #define KB_SPECIAL_F1_KEY 0x80 |
Definition at line 163 of file keyboard.h.
| #define KB_SPECIAL_F2_KEY 0x81 |
Definition at line 164 of file keyboard.h.
| #define KB_SPECIAL_F3_KEY 0x82 |
Definition at line 165 of file keyboard.h.
| #define KB_SPECIAL_F4_KEY 0x83 |
Definition at line 166 of file keyboard.h.
| #define KB_SPECIAL_F5_KEY 0x84 |
Definition at line 167 of file keyboard.h.
| #define KB_SPECIAL_F6_KEY 0x85 |
Definition at line 168 of file keyboard.h.
| #define KB_SPECIAL_F7_KEY 0x86 |
Definition at line 169 of file keyboard.h.
| #define KB_SPECIAL_F8_KEY 0x87 |
Definition at line 170 of file keyboard.h.
| #define KB_SPECIAL_F9_KEY 0x88 |
Definition at line 171 of file keyboard.h.
| #define KB_SPECIAL_HOME_KEY 0x9a |
Definition at line 189 of file keyboard.h.
| #define KB_SPECIAL_INS 0xa4 |
Definition at line 199 of file keyboard.h.
| #define KB_SPECIAL_INSERT_KEY 0x99 |
Definition at line 188 of file keyboard.h.
| #define KB_SPECIAL_LEFT_ARROW_KEY 0xa0 |
Definition at line 195 of file keyboard.h.
| #define KB_SPECIAL_MENUS_KEY 0x98 |
Definition at line 187 of file keyboard.h.
| #define KB_SPECIAL_NUM_LOCK_KEY 0xa3 |
Definition at line 198 of file keyboard.h.
| #define KB_SPECIAL_PAGE_DOWN_KEY 0x9b |
Definition at line 190 of file keyboard.h.
| #define KB_SPECIAL_PAGE_UP_KEY 0x9d |
Definition at line 192 of file keyboard.h.
| #define KB_SPECIAL_PAUSE_BREAK_KEY 0x8e |
Definition at line 177 of file keyboard.h.
| #define KB_SPECIAL_PRTSCR_KEY 0x8c |
Definition at line 175 of file keyboard.h.
| #define KB_SPECIAL_RIGHT_ARROW_KEY 0xa2 |
Definition at line 197 of file keyboard.h.
| #define KB_SPECIAL_SCROLL_LOCK_KEY 0x8d |
Definition at line 176 of file keyboard.h.
| #define KB_SPECIAL_SHIFT_AT_LEFT_KEY 0x90 |
Definition at line 179 of file keyboard.h.
| #define KB_SPECIAL_SHIFT_AT_RIGHT_KEY 0x91 |
Definition at line 180 of file keyboard.h.
| #define KB_SPECIAL_TAB_KEY 0x8f |
Definition at line 178 of file keyboard.h.
| #define KB_SPECIAL_UP_ARROW_KEY 0x9f |
Definition at line 194 of file keyboard.h.
| #define KB_SPECIAL_WINDOW_AT_LEFT_KEY 0x94 |
Definition at line 183 of file keyboard.h.
| #define KB_SPECIAL_WINDOW_AT_RIGHT_KEY 0x95 |
Definition at line 184 of file keyboard.h.
| #define KB_STATUS_REG 0x64 |
Definition at line 204 of file keyboard.h.
| #define KEY_0 0x0b |
Definition at line 25 of file keyboard.h.
| #define KEY_1 0x02 |
Definition at line 26 of file keyboard.h.
| #define KEY_2 0x03 |
Definition at line 27 of file keyboard.h.
| #define KEY_3 0x04 |
Definition at line 28 of file keyboard.h.
| #define KEY_4 0x05 |
Definition at line 29 of file keyboard.h.
| #define KEY_5 0x06 |
Definition at line 30 of file keyboard.h.
| #define KEY_6 0x07 |
Definition at line 31 of file keyboard.h.
| #define KEY_7 0x08 |
Definition at line 32 of file keyboard.h.
| #define KEY_8 0x09 |
Definition at line 33 of file keyboard.h.
| #define KEY_9 0x0a |
Definition at line 34 of file keyboard.h.
| #define KEY_a 0x1e |
Definition at line 36 of file keyboard.h.
| #define KEY_ALT_LEFT 0x38 |
Definition at line 82 of file keyboard.h.
| #define KEY_ALT_RIGHT 0x38 |
Definition at line 118 of file keyboard.h.
| #define KEY_ARRORRIGHT 0x4d |
Definition at line 115 of file keyboard.h.
| #define KEY_ARROWDOWN 0x50 |
Definition at line 113 of file keyboard.h.
| #define KEY_ARROWLEFT 0x4b |
Definition at line 114 of file keyboard.h.
| #define KEY_ARROWUP 0x48 |
Definition at line 112 of file keyboard.h.
| #define KEY_b 0x30 |
Definition at line 37 of file keyboard.h.
| #define KEY_BACKSPACE 0x0e |
Definition at line 87 of file keyboard.h.
| #define KEY_c 0x2e |
Definition at line 38 of file keyboard.h.
| #define KEY_CAPSLOCK 0x3a |
Definition at line 83 of file keyboard.h.
| #define KEY_COMMA 0x033 |
Definition at line 19 of file keyboard.h.
| #define KEY_CTRL_LEFT 0x1d |
Definition at line 85 of file keyboard.h.
| #define KEY_CTRL_RIGHT 0x1d |
Definition at line 119 of file keyboard.h.
| #define KEY_d 0x20 |
Definition at line 39 of file keyboard.h.
| #define KEY_DEL 0x53 |
Definition at line 116 of file keyboard.h.
| #define KEY_DIVIDE 0x035 |
Definition at line 16 of file keyboard.h.
| #define KEY_DOT 0x034 |
Definition at line 17 of file keyboard.h.
| #define KEY_e 0x12 |
Definition at line 40 of file keyboard.h.
| #define KEY_END 0x4f |
Definition at line 109 of file keyboard.h.
| #define KEY_ENTER 0x1c |
Definition at line 86 of file keyboard.h.
| #define KEY_EQUAL 0x0d |
Definition at line 14 of file keyboard.h.
| #define KEY_ESC 0x01 |
Definition at line 76 of file keyboard.h.
| #define KEY_f 0x21 |
Definition at line 41 of file keyboard.h.
| #define KEY_F1 0x3b |
Definition at line 63 of file keyboard.h.
| #define KEY_F10 0x44 |
Definition at line 72 of file keyboard.h.
| #define KEY_F11 0x57 |
Definition at line 73 of file keyboard.h.
| #define KEY_F12 0x58 |
Definition at line 74 of file keyboard.h.
| #define KEY_F2 0x3c |
Definition at line 64 of file keyboard.h.
| #define KEY_F3 0x3d |
Definition at line 65 of file keyboard.h.
| #define KEY_F4 0x3e |
Definition at line 66 of file keyboard.h.
| #define KEY_F5 0x3f |
Definition at line 67 of file keyboard.h.
| #define KEY_F6 0x40 |
Definition at line 68 of file keyboard.h.
| #define KEY_F7 0x41 |
Definition at line 69 of file keyboard.h.
| #define KEY_F8 0x42 |
Definition at line 70 of file keyboard.h.
| #define KEY_F9 0x43 |
Definition at line 71 of file keyboard.h.
| #define KEY_g 0x22 |
Definition at line 42 of file keyboard.h.
| #define KEY_h 0x23 |
Definition at line 43 of file keyboard.h.
| #define KEY_HOME 0x47 |
Definition at line 108 of file keyboard.h.
| #define KEY_i 0x17 |
Definition at line 44 of file keyboard.h.
| #define KEY_INS 0x52 |
Definition at line 117 of file keyboard.h.
| #define KEY_j 0x24 |
Definition at line 45 of file keyboard.h.
| #define KEY_k 0x25 |
Definition at line 46 of file keyboard.h.
| #define KEY_l 0x26 |
Definition at line 47 of file keyboard.h.
| #define KEY_LEFT_BRACKET 0x1a |
Definition at line 22 of file keyboard.h.
| #define KEY_m 0x32 |
Definition at line 48 of file keyboard.h.
| #define KEY_MINUS 0x0c |
Definition at line 13 of file keyboard.h.
| #define KEY_n 0x31 |
Definition at line 49 of file keyboard.h.
| #define KEY_NUMLOCK 0x45 |
Definition at line 77 of file keyboard.h.
| #define KEY_NUMPAD_0 0x52 |
Definition at line 90 of file keyboard.h.
| #define KEY_NUMPAD_1 0x4f |
Definition at line 91 of file keyboard.h.
| #define KEY_NUMPAD_2 0x50 |
Definition at line 92 of file keyboard.h.
| #define KEY_NUMPAD_3 0x51 |
Definition at line 93 of file keyboard.h.
| #define KEY_NUMPAD_4 0x4b |
Definition at line 94 of file keyboard.h.
| #define KEY_NUMPAD_5 0x4c |
Definition at line 95 of file keyboard.h.
| #define KEY_NUMPAD_6 0x4d |
Definition at line 96 of file keyboard.h.
| #define KEY_NUMPAD_7 0x47 |
Definition at line 97 of file keyboard.h.
| #define KEY_NUMPAD_8 0x48 |
Definition at line 98 of file keyboard.h.
| #define KEY_NUMPAD_9 0x49 |
Definition at line 99 of file keyboard.h.
| #define KEY_NUMPAD_DIVIDE 0x35 |
Definition at line 105 of file keyboard.h.
| #define KEY_NUMPAD_DOT 0x53 |
Definition at line 100 of file keyboard.h.
| #define KEY_NUMPAD_ENTER 0x1c |
Definition at line 106 of file keyboard.h.
| #define KEY_NUMPAD_MINUS 0x4a |
Definition at line 102 of file keyboard.h.
| #define KEY_NUMPAD_PLUS 0x4e |
Definition at line 103 of file keyboard.h.
| #define KEY_NUMPAD_STAR 0x37 |
Definition at line 101 of file keyboard.h.
| #define KEY_o 0x18 |
Definition at line 50 of file keyboard.h.
| #define KEY_p 0x19 |
Definition at line 51 of file keyboard.h.
| #define KEY_PAGEDOWN 0x51 |
Definition at line 111 of file keyboard.h.
| #define KEY_PAGEUP 0x49 |
Definition at line 110 of file keyboard.h.
| #define KEY_PAUSE 0xe1 |
Definition at line 124 of file keyboard.h.
| #define KEY_PRESS 0x00 |
Definition at line 11 of file keyboard.h.
| #define KEY_PRTSC 0x37 |
Definition at line 107 of file keyboard.h.
| #define KEY_q 0x10 |
Definition at line 52 of file keyboard.h.
| #define KEY_r 0x13 |
Definition at line 53 of file keyboard.h.
| #define KEY_RELEASE 0x80 |
Definition at line 10 of file keyboard.h.
| #define KEY_RIGHT_BRACKET 0x1b |
Definition at line 23 of file keyboard.h.
| #define KEY_s 0x1f |
Definition at line 54 of file keyboard.h.
| #define KEY_SCROLL_LOCK 0x46 |
Definition at line 78 of file keyboard.h.
| #define KEY_SEMICOLON 0x27 |
Definition at line 21 of file keyboard.h.
| #define KEY_SHIFT_LEFT 0x2a |
Definition at line 81 of file keyboard.h.
| #define KEY_SHIFT_RIGHT 0x36 |
Definition at line 80 of file keyboard.h.
| #define KEY_SPACE 0x39 |
Definition at line 88 of file keyboard.h.
| #define KEY_t 0x14 |
Definition at line 55 of file keyboard.h.
| #define KEY_TAB 0x0f |
Definition at line 84 of file keyboard.h.
| #define KEY_u 0x16 |
Definition at line 56 of file keyboard.h.
| #define KEY_UL2DR_SLASH 0x2b |
Definition at line 15 of file keyboard.h.
| #define KEY_UPPER_COMMA 0x29 |
Definition at line 20 of file keyboard.h.
| #define KEY_UPPER_DOT 0x028 |
Definition at line 18 of file keyboard.h.
| #define KEY_v 0x2f |
Definition at line 57 of file keyboard.h.
| #define KEY_w 0x11 |
Definition at line 58 of file keyboard.h.
| #define KEY_WINDOWS_MENU 0x5d |
Definition at line 121 of file keyboard.h.
| #define KEY_WINDOWS_START 0x5b |
Definition at line 122 of file keyboard.h.
| #define KEY_x 0x2d |
Definition at line 59 of file keyboard.h.
| #define KEY_y 0x15 |
Definition at line 60 of file keyboard.h.
| #define KEY_z 0x2c |
Definition at line 61 of file keyboard.h.
| #define KEYBOARD_KEYBUFFER_SZIE 50 |
Definition at line 214 of file keyboard.h.
| #define LED_CODE 0xed |
Definition at line 205 of file keyboard.h.
| void KeyboardHandler | ( | void | ) |
Definition at line 41 of file keyboard.c.
00041 { 00042 U8 ScanCode; 00043 U8 KeyCode; 00044 U8 KeyStatus; 00045 00046 ScanCode=InByte(KB_DATA_REG); 00047 if(ScanCode==KB_ACK){ 00048 KeyboardCtrl.Ack=true; 00049 return; 00050 } 00051 switch(KeyboardCtrl.State){ 00052 case GENERALCODE_STATE: 00053 if(ScanCode==0xe0){ 00054 KeyboardCtrl.State=EXTENDCODE_STATE; 00055 break; 00056 } 00057 else if(ScanCode==0xe1){ 00058 KeyboardCtrl.State=EXTENDCODE2_1STCODE_STATE; 00059 break; 00060 } 00061 KeyStatus=ScanCode&0x80; 00062 ScanCode=ScanCode&0x7f; 00063 switch(ScanCode){ 00064 case KEY_0: 00065 if(KeyboardCtrl.LeftShift==true) KeyCode=')'; 00066 else if(KeyboardCtrl.RightShift==true) KeyCode=')'; 00067 else KeyCode='0'; 00068 break; 00069 case KEY_1: 00070 if(KeyboardCtrl.LeftShift==true) KeyCode='!'; 00071 else if(KeyboardCtrl.RightShift==true) KeyCode='!'; 00072 else KeyCode='1'; 00073 break; 00074 case KEY_2: 00075 if(KeyboardCtrl.LeftShift==true) KeyCode='@'; 00076 else if(KeyboardCtrl.RightShift==true) KeyCode='@'; 00077 else KeyCode='2'; 00078 break; 00079 case KEY_3: 00080 if(KeyboardCtrl.LeftShift==true) KeyCode='#'; 00081 else if(KeyboardCtrl.RightShift==true) KeyCode='#'; 00082 else KeyCode='3'; 00083 break; 00084 case KEY_4: 00085 if(KeyboardCtrl.LeftShift==true) KeyCode='$'; 00086 else if(KeyboardCtrl.RightShift==true) KeyCode='$'; 00087 else KeyCode='4'; 00088 break; 00089 case KEY_5: 00090 if(KeyboardCtrl.LeftShift==true) KeyCode='%'; 00091 else if(KeyboardCtrl.RightShift==true) KeyCode='%'; 00092 else KeyCode='5'; 00093 break; 00094 case KEY_6: 00095 if(KeyboardCtrl.LeftShift==true) KeyCode='^'; 00096 else if(KeyboardCtrl.RightShift==true) KeyCode='^'; 00097 else KeyCode='6'; 00098 break; 00099 case KEY_7: 00100 if(KeyboardCtrl.LeftShift==true) KeyCode='&'; 00101 else if(KeyboardCtrl.RightShift==true) KeyCode='&'; 00102 else KeyCode='7'; 00103 break; 00104 case KEY_8: 00105 if(KeyboardCtrl.LeftShift==true) KeyCode='*'; 00106 else if(KeyboardCtrl.RightShift==true) KeyCode='*'; 00107 else KeyCode='8'; 00108 break; 00109 case KEY_9: 00110 if(KeyboardCtrl.LeftShift==true) KeyCode='('; 00111 else if(KeyboardCtrl.RightShift==true) KeyCode='('; 00112 else KeyCode='9'; 00113 break; 00114 case KEY_a: 00115 if(KeyboardCtrl.CapsLock==true) KeyCode='A'; 00116 else if(KeyboardCtrl.LeftShift==true) KeyCode='A'; 00117 else if(KeyboardCtrl.RightShift==true) KeyCode='A'; 00118 else KeyCode='a'; 00119 break; 00120 case KEY_b: 00121 if(KeyboardCtrl.CapsLock==true) KeyCode='B'; 00122 else if(KeyboardCtrl.LeftShift==true) KeyCode='B'; 00123 else if(KeyboardCtrl.RightShift==true) KeyCode='B'; 00124 else KeyCode='b'; 00125 break; 00126 case KEY_c: 00127 if(KeyboardCtrl.CapsLock==true) KeyCode='C'; 00128 else if(KeyboardCtrl.LeftShift==true) KeyCode='C'; 00129 else if(KeyboardCtrl.RightShift==true) KeyCode='C'; 00130 else KeyCode='c'; 00131 break; 00132 case KEY_d: 00133 if(KeyboardCtrl.CapsLock==true) KeyCode='D'; 00134 else if(KeyboardCtrl.LeftShift==true) KeyCode='D'; 00135 else if(KeyboardCtrl.RightShift==true) KeyCode='D'; 00136 else KeyCode='d'; 00137 break; 00138 case KEY_e: 00139 if(KeyboardCtrl.CapsLock==true) KeyCode='E'; 00140 else if(KeyboardCtrl.LeftShift==true) KeyCode='E'; 00141 else if(KeyboardCtrl.RightShift==true) KeyCode='E'; 00142 else KeyCode='e'; 00143 break; 00144 case KEY_f: 00145 if(KeyboardCtrl.CapsLock==true) KeyCode='F'; 00146 else if(KeyboardCtrl.LeftShift==true) KeyCode='F'; 00147 else if(KeyboardCtrl.RightShift==true) KeyCode='F'; 00148 else KeyCode='f'; 00149 break; 00150 case KEY_g: 00151 if(KeyboardCtrl.CapsLock==true) KeyCode='G'; 00152 else if(KeyboardCtrl.LeftShift==true) KeyCode='G'; 00153 else if(KeyboardCtrl.RightShift==true) KeyCode='G'; 00154 else KeyCode='g'; 00155 break; 00156 case KEY_h: 00157 if(KeyboardCtrl.CapsLock==true) KeyCode='H'; 00158 else if(KeyboardCtrl.LeftShift==true) KeyCode='H'; 00159 else if(KeyboardCtrl.RightShift==true) KeyCode='H'; 00160 else KeyCode='h'; 00161 break; 00162 case KEY_i: 00163 if(KeyboardCtrl.CapsLock==true) KeyCode='I'; 00164 else if(KeyboardCtrl.LeftShift==true) KeyCode='I'; 00165 else if(KeyboardCtrl.RightShift==true) KeyCode='I'; 00166 else KeyCode='i'; 00167 break; 00168 case KEY_j: 00169 if(KeyboardCtrl.CapsLock==true) KeyCode='J'; 00170 else if(KeyboardCtrl.LeftShift==true) KeyCode='J'; 00171 else if(KeyboardCtrl.RightShift==true) KeyCode='J'; 00172 else KeyCode='j'; 00173 break; 00174 case KEY_k: 00175 if(KeyboardCtrl.CapsLock==true) KeyCode='K'; 00176 else if(KeyboardCtrl.LeftShift==true) KeyCode='K'; 00177 else if(KeyboardCtrl.RightShift==true) KeyCode='K'; 00178 else KeyCode='k'; 00179 break; 00180 case KEY_l: 00181 if(KeyboardCtrl.CapsLock==true) KeyCode='L'; 00182 else if(KeyboardCtrl.LeftShift==true) KeyCode='L'; 00183 else if(KeyboardCtrl.RightShift==true) KeyCode='L'; 00184 else KeyCode='l'; 00185 break; 00186 case KEY_m: 00187 if(KeyboardCtrl.CapsLock==true) KeyCode='M'; 00188 else if(KeyboardCtrl.LeftShift==true) KeyCode='M'; 00189 else if(KeyboardCtrl.RightShift==true) KeyCode='M'; 00190 else KeyCode='m'; 00191 break; 00192 case KEY_n: 00193 if(KeyboardCtrl.CapsLock==true) KeyCode='N'; 00194 else if(KeyboardCtrl.LeftShift==true) KeyCode='N'; 00195 else if(KeyboardCtrl.RightShift==true) KeyCode='N'; 00196 else KeyCode='n'; 00197 break; 00198 case KEY_o: 00199 if(KeyboardCtrl.CapsLock==true) KeyCode='O'; 00200 else if(KeyboardCtrl.LeftShift==true) KeyCode='O'; 00201 else if(KeyboardCtrl.RightShift==true) KeyCode='O'; 00202 else KeyCode='o'; 00203 break; 00204 case KEY_p: 00205 if(KeyboardCtrl.CapsLock==true) KeyCode='P'; 00206 else if(KeyboardCtrl.LeftShift==true) KeyCode='P'; 00207 else if(KeyboardCtrl.RightShift==true) KeyCode='P'; 00208 else KeyCode='p'; 00209 break; 00210 case KEY_q: 00211 if(KeyboardCtrl.CapsLock==true) KeyCode='Q'; 00212 else if(KeyboardCtrl.LeftShift==true) KeyCode='Q'; 00213 else if(KeyboardCtrl.RightShift==true) KeyCode='Q'; 00214 else KeyCode='q'; 00215 break; 00216 case KEY_r: 00217 if(KeyboardCtrl.CapsLock==true) KeyCode='R'; 00218 else if(KeyboardCtrl.LeftShift==true) KeyCode='R'; 00219 else if(KeyboardCtrl.RightShift==true) KeyCode='R'; 00220 else KeyCode='r'; 00221 break; 00222 case KEY_s: 00223 if(KeyboardCtrl.CapsLock==true) KeyCode='S'; 00224 else if(KeyboardCtrl.LeftShift==true) KeyCode='S'; 00225 else if(KeyboardCtrl.RightShift==true) KeyCode='S'; 00226 else KeyCode='s'; 00227 break; 00228 case KEY_t: 00229 if(KeyboardCtrl.CapsLock==true) KeyCode='T'; 00230 else if(KeyboardCtrl.LeftShift==true) KeyCode='T'; 00231 else if(KeyboardCtrl.RightShift==true) KeyCode='T'; 00232 else KeyCode='t'; 00233 break; 00234 case KEY_u: 00235 if(KeyboardCtrl.CapsLock==true) KeyCode='U'; 00236 else if(KeyboardCtrl.LeftShift==true) KeyCode='U'; 00237 else if(KeyboardCtrl.RightShift==true) KeyCode='U'; 00238 else KeyCode='u'; 00239 break; 00240 case KEY_v: 00241 if(KeyboardCtrl.CapsLock==true) KeyCode='V'; 00242 else if(KeyboardCtrl.LeftShift==true) KeyCode='V'; 00243 else if(KeyboardCtrl.RightShift==true) KeyCode='V'; 00244 else KeyCode='v'; 00245 break; 00246 case KEY_w: 00247 if(KeyboardCtrl.CapsLock==true) KeyCode='W'; 00248 else if(KeyboardCtrl.LeftShift==true) KeyCode='W'; 00249 else if(KeyboardCtrl.RightShift==true) KeyCode='W'; 00250 else KeyCode='w'; 00251 break; 00252 case KEY_x: 00253 if(KeyboardCtrl.CapsLock==true) KeyCode='X'; 00254 else if(KeyboardCtrl.LeftShift==true) KeyCode='X'; 00255 else if(KeyboardCtrl.RightShift==true) KeyCode='X'; 00256 else KeyCode='x'; 00257 break; 00258 case KEY_y: 00259 if(KeyboardCtrl.CapsLock==true) KeyCode='Y'; 00260 else if(KeyboardCtrl.LeftShift==true) KeyCode='Y'; 00261 else if(KeyboardCtrl.RightShift==true) KeyCode='Y'; 00262 else KeyCode='y'; 00263 break; 00264 case KEY_z: 00265 if(KeyboardCtrl.CapsLock==true) KeyCode='Z'; 00266 else if(KeyboardCtrl.LeftShift==true) KeyCode='Z'; 00267 else if(KeyboardCtrl.RightShift==true) KeyCode='Z'; 00268 else KeyCode='z'; 00269 break; 00270 case KEY_MINUS: 00271 if(KeyboardCtrl.LeftShift==true) KeyCode='_'; 00272 else if(KeyboardCtrl.RightShift==true) KeyCode='_'; 00273 else KeyCode='-'; 00274 break; 00275 case KEY_EQUAL: 00276 if(KeyboardCtrl.LeftShift==true) KeyCode='+'; 00277 else if(KeyboardCtrl.RightShift==true) KeyCode='+'; 00278 else KeyCode='='; 00279 break; 00280 case KEY_UL2DR_SLASH: 00281 if(KeyboardCtrl.LeftShift==true) KeyCode='|'; 00282 else if(KeyboardCtrl.RightShift==true) KeyCode='|'; 00283 else KeyCode='\\'; 00284 break; 00285 case KEY_DIVIDE: 00286 if(KeyboardCtrl.LeftShift==true) KeyCode='?'; 00287 else if(KeyboardCtrl.RightShift==true) KeyCode='?'; 00288 else KeyCode='/'; 00289 break; 00290 case KEY_DOT: 00291 if(KeyboardCtrl.LeftShift==true) KeyCode='>'; 00292 else if(KeyboardCtrl.RightShift==true) KeyCode='>'; 00293 else KeyCode='.'; 00294 break; 00295 case KEY_UPPER_DOT: 00296 if(KeyboardCtrl.LeftShift==true) KeyCode='"'; 00297 else if(KeyboardCtrl.RightShift==true) KeyCode='"'; 00298 else KeyCode='\''; 00299 break; 00300 case KEY_COMMA: 00301 if(KeyboardCtrl.LeftShift==true) KeyCode='<'; 00302 else if(KeyboardCtrl.RightShift==true) KeyCode='<'; 00303 else KeyCode=','; 00304 break; 00305 case KEY_UPPER_COMMA: 00306 if(KeyboardCtrl.LeftShift==true) KeyCode='~'; 00307 else if(KeyboardCtrl.RightShift==true) KeyCode='~'; 00308 else KeyCode='`'; 00309 break; 00310 case KEY_SEMICOLON: 00311 if(KeyboardCtrl.LeftShift==true) KeyCode=':'; 00312 else if(KeyboardCtrl.RightShift==true) KeyCode=':'; 00313 else KeyCode=';'; 00314 break; 00315 case KEY_LEFT_BRACKET: 00316 if(KeyboardCtrl.LeftShift==true) KeyCode='{'; 00317 else if(KeyboardCtrl.RightShift==true) KeyCode='{'; 00318 else KeyCode='['; 00319 break; 00320 case KEY_RIGHT_BRACKET: 00321 if(KeyboardCtrl.LeftShift==true) KeyCode='}'; 00322 else if(KeyboardCtrl.RightShift==true) KeyCode='}'; 00323 else KeyCode=']'; 00324 break; 00325 case KEY_F1: KeyCode=0x80; break; 00326 case KEY_F2: KeyCode=0x81; break; 00327 case KEY_F3: KeyCode=0x82; break; 00328 case KEY_F4: KeyCode=0x83; break; 00329 case KEY_F5: KeyCode=0x84; break; 00330 case KEY_F6: KeyCode=0x85; break; 00331 case KEY_F7: KeyCode=0x86; break; 00332 case KEY_F8: KeyCode=0x87; break; 00333 case KEY_F9: KeyCode=0x88; break; 00334 case KEY_F10: KeyCode=0x89; break; 00335 case KEY_F11: KeyCode=0x8a; break; 00336 case KEY_F12: KeyCode=0x8b; break; 00337 case KEY_ESC: KeyCode=0x1b; break; 00338 case KEY_NUMLOCK: 00339 if(KeyStatus==KEY_PRESS){ 00340 if(KeyboardCtrl.NumLock==true) KeyboardCtrl.NumLock=false; 00341 else KeyboardCtrl.NumLock=true; 00342 KeyboardCtrl.LedChange=true; 00343 } 00344 KeyCode=0xa3; 00345 break; 00346 case KEY_SCROLL_LOCK: 00347 if(KeyStatus==KEY_PRESS){ 00348 if(KeyboardCtrl.ScrollLock==true) KeyboardCtrl.ScrollLock=false; 00349 else KeyboardCtrl.ScrollLock=true; 00350 KeyboardCtrl.LedChange=true; 00351 } 00352 KeyCode=0x8d; 00353 break; 00354 case KEY_SHIFT_RIGHT: 00355 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.RightShift=false; 00356 else KeyboardCtrl.RightShift=true; 00357 KeyCode=0x91; 00358 break; 00359 case KEY_SHIFT_LEFT: 00360 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.LeftShift=false; 00361 else KeyboardCtrl.LeftShift=true; 00362 KeyCode=0x90; 00363 break; 00364 case KEY_ALT_LEFT: 00365 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.LeftAlt=false; 00366 else KeyboardCtrl.LeftAlt=true; 00367 KeyCode=0x96; 00368 break; 00369 case KEY_CAPSLOCK: 00370 if(KeyStatus==KEY_PRESS){ 00371 if(KeyboardCtrl.CapsLock==true) KeyboardCtrl.CapsLock=false; 00372 else KeyboardCtrl.CapsLock=true; 00373 KeyboardCtrl.LedChange=true; 00374 } 00375 KeyCode=0x9e; 00376 break; 00377 case KEY_TAB: 00378 KeyCode=0x8f; 00379 break; 00380 case KEY_CTRL_LEFT: 00381 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.LeftCtrl=false; 00382 else KeyboardCtrl.LeftCtrl=true; 00383 KeyCode=0x92; 00384 break; 00385 case KEY_ENTER: KeyCode=0x0d; break; 00386 case KEY_BACKSPACE: KeyCode=0x08; break; 00387 case KEY_SPACE: KeyCode=0x20; break; 00388 case KEY_NUMPAD_0: 00389 if(KeyboardCtrl.NumLock==true) KeyCode='0'; 00390 else KeyCode=KB_SPECIAL_INS; 00391 break; 00392 case KEY_NUMPAD_1: 00393 if(KeyboardCtrl.NumLock==true) KeyCode='1'; 00394 else KeyCode=KB_SPECIAL_END_KEY; 00395 break; 00396 case KEY_NUMPAD_2: 00397 if(KeyboardCtrl.NumLock==true) KeyCode='2'; 00398 else KeyCode=KB_SPECIAL_DOWN_ARROW_KEY; 00399 break; 00400 case KEY_NUMPAD_3: 00401 if(KeyboardCtrl.NumLock==true) KeyCode='3'; 00402 else KeyCode=KB_SPECIAL_PAGE_DOWN_KEY; 00403 break; 00404 case KEY_NUMPAD_4: 00405 if(KeyboardCtrl.NumLock==true) KeyCode='4'; 00406 else KeyCode=KB_SPECIAL_LEFT_ARROW_KEY; 00407 break; 00408 case KEY_NUMPAD_5: 00409 if(KeyboardCtrl.NumLock==true) KeyCode='5'; 00410 else KeyCode='5'; 00411 break; 00412 case KEY_NUMPAD_6: 00413 if(KeyboardCtrl.NumLock==true) KeyCode='6'; 00414 else KeyCode=KB_SPECIAL_RIGHT_ARROW_KEY; 00415 break; 00416 case KEY_NUMPAD_7: 00417 if(KeyboardCtrl.NumLock==true) KeyCode='7'; 00418 else KeyCode=KB_SPECIAL_HOME_KEY ; 00419 break; 00420 case KEY_NUMPAD_8: 00421 if(KeyboardCtrl.NumLock==true) KeyCode='8'; 00422 else KeyCode=KB_SPECIAL_UP_ARROW_KEY; 00423 break; 00424 case KEY_NUMPAD_9: 00425 if(KeyboardCtrl.NumLock==true) KeyCode='9'; 00426 else KeyCode=KB_SPECIAL_PAGE_UP_KEY; 00427 break; 00428 case KEY_NUMPAD_DOT: 00429 if(KeyboardCtrl.NumLock==true) KeyCode='.'; 00430 else KeyCode=ASCII_DEL; 00431 break; 00432 case KEY_NUMPAD_STAR: 00433 if(KeyboardCtrl.NumLock==true) KeyCode='*'; 00434 else KeyCode='*'; 00435 break; 00436 case KEY_NUMPAD_MINUS: 00437 if(KeyboardCtrl.NumLock==true) KeyCode='-'; 00438 else KeyCode='-'; 00439 break; 00440 case KEY_NUMPAD_PLUS: 00441 if(KeyboardCtrl.NumLock==true) KeyCode='+'; 00442 else KeyCode='+'; 00443 break; 00444 default: 00445 KeyCode=0x00; 00446 break; //null key 00447 } 00448 if(KeyStatus==KEY_RELEASE) KeyCode=0x00; 00449 if(KeyboardKeyBufferCheckIsr()!=BUFFER_FULL){ 00450 if(KeyCode!=0x00) KeyboardKeyBufferPutIsr(KeyCode); 00451 } 00452 break; 00453 case EXTENDCODE_STATE: 00454 KeyStatus=ScanCode&0x80; 00455 ScanCode=ScanCode&0x7f; 00456 switch(ScanCode){ 00457 case KEY_PRTSC: KeyCode=0x8c; break; 00458 case KEY_HOME: KeyCode=0x9a; break; 00459 case KEY_END: KeyCode=0x9c; break; 00460 case KEY_PAGEUP: KeyCode=0x9d; break; 00461 case KEY_PAGEDOWN: KeyCode=0x9b; break; 00462 case KEY_ARROWUP: KeyCode=0x9f; break; 00463 case KEY_ARROWDOWN: KeyCode=0xa1; break; 00464 case KEY_ARROWLEFT: KeyCode=0xa0; break; 00465 case KEY_ARRORRIGHT:KeyCode=0xa2; break; 00466 case KEY_DEL: KeyCode=0x7f; break; 00467 case KEY_INS: KeyCode=0xa5; break; 00468 case KEY_ALT_RIGHT: 00469 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.RightAlt=false; 00470 else KeyboardCtrl.RightAlt=true; 00471 KeyCode=0x97; 00472 break; 00473 case KEY_CTRL_RIGHT: 00474 if(KeyStatus==KEY_RELEASE) KeyboardCtrl.RightCtrl=false; 00475 else KeyboardCtrl.RightCtrl=true; 00476 KeyCode=0x93; 00477 break; 00478 case KEY_WINDOWS_MENU: KeyCode=0x98; break; 00479 case KEY_WINDOWS_START:KeyCode=0x94; break; 00480 case KEY_NUMPAD_DIVIDE:KeyCode='/'; break; 00481 case KEY_NUMPAD_ENTER: KeyCode=0x0d; break; 00482 default: KeyCode=0x00; break; //for skip key 00483 } 00484 if(KeyStatus==KEY_RELEASE) KeyCode=0x00; 00485 if(KeyboardKeyBufferCheckIsr()!=BUFFER_FULL){ 00486 if(KeyCode!=0x00) KeyboardKeyBufferPutIsr(KeyCode); 00487 } 00488 KeyboardCtrl.State=GENERALCODE_STATE; 00489 break; 00490 case EXTENDCODE2_1STCODE_STATE: 00491 TheKeyCode=(U16)ScanCode; 00492 TheKeyCode=TheKeyCode<<8; 00493 KeyboardCtrl.State=EXTENDCODE2_2NDCODE_STATE; 00494 break; 00495 case EXTENDCODE2_2NDCODE_STATE: 00496 TheKeyCode=TheKeyCode+ScanCode; 00497 if(TheKeyCode==0x1d45) KeyCode=0x8e; 00498 else if(TheKeyCode==0x9dc5) KeyCode=0x00; //release value of pause key 00499 else KeyCode=0x00; 00500 if(KeyboardKeyBufferCheckIsr()!=BUFFER_FULL){ 00501 if(KeyCode!=0x00) KeyboardKeyBufferPutIsr(KeyCode); 00502 } 00503 KeyboardCtrl.State=GENERALCODE_STATE; 00504 break; 00505 } 00506 }
| void KeyboardInit | ( | void | ) |
Definition at line 16 of file keyboard.c.
00016 { 00017 PicIrqDisable(IRQ1_KEYBOARD); 00018 KeyboardCtrl.State=GENERALCODE_STATE; 00019 KeyboardCtrl.Timer=0; 00020 KeyboardCtrl.LedValue=0; 00021 KeyboardCtrl.LedChange=false; 00022 KeyboardCtrl.Ack=false; 00023 KeyboardCtrl.ScrollLock=false; 00024 KeyboardCtrl.CapsLock=false; 00025 KeyboardCtrl.NumLock=false; 00026 KeyboardCtrl.Shift=false; 00027 KeyboardCtrl.Pause=false; 00028 KeyboardCtrl.LeftCtrl=false; 00029 KeyboardCtrl.LeftShift=false; 00030 KeyboardCtrl.LeftAlt=false; 00031 KeyboardCtrl.RightCtrl=false; 00032 KeyboardCtrl.RightShift=false; 00033 KeyboardCtrl.RightAlt=false; 00034 KeyboardCtrl.KeyBuffer.Put=0; 00035 KeyboardCtrl.KeyBuffer.Get=0; 00036 OsEventAdd(&KeyboardCtrl.KeyboardEvent,&KeyboardName,OS_EVENT_KEYBOARD); 00037 InterruptIrqHandlerSet(IRQ1_KEYBOARD,KeyboardHandler); 00038 PicIrqEnable(IRQ1_KEYBOARD); 00039 }
| U8 KeyboardKeyBufferCheck | ( | void | ) |
Definition at line 522 of file keyboard.c.
00522 { 00523 if(KeyboardCtrl.KeyBuffer.Put!=KeyboardCtrl.KeyBuffer.Get){ 00524 if(KeyboardCtrl.KeyBuffer.Put==(KEYBOARD_KEYBUFFER_SZIE-1)){ 00525 if(KeyboardCtrl.KeyBuffer.Get==0) return BUFFER_FULL; 00526 else return BUFFER_NOT_EMPTY; 00527 } 00528 else{ 00529 if((KeyboardCtrl.KeyBuffer.Put+1)==KeyboardCtrl.KeyBuffer.Get) return BUFFER_FULL; 00530 else return BUFFER_NOT_EMPTY; 00531 } 00532 } 00533 else return BUFFER_EMPTY; 00534 }
| U8 KeyboardKeyBufferCheckIsr | ( | void | ) |
Definition at line 508 of file keyboard.c.
00508 { 00509 if(KeyboardCtrl.KeyBuffer.Put!=KeyboardCtrl.KeyBuffer.Get){ 00510 if(KeyboardCtrl.KeyBuffer.Put==(KEYBOARD_KEYBUFFER_SZIE-1)){ 00511 if(KeyboardCtrl.KeyBuffer.Get==0) return BUFFER_FULL; 00512 else return BUFFER_NOT_EMPTY; 00513 } 00514 else{ 00515 if((KeyboardCtrl.KeyBuffer.Put+1)==KeyboardCtrl.KeyBuffer.Get) return BUFFER_FULL; 00516 else return BUFFER_NOT_EMPTY; 00517 } 00518 } 00519 else return BUFFER_EMPTY; 00520 }
| U8 KeyboardKeyBufferGet | ( | void | ) |
Definition at line 548 of file keyboard.c.
00548 { 00549 U8 Data; 00550 00551 if(KeyboardKeyBufferCheck()==BUFFER_EMPTY) return 0; 00552 if(KeyboardCtrl.KeyBuffer.Get==(KEYBOARD_KEYBUFFER_SZIE-1)){ 00553 Data=KeyboardCtrl.KeyBuffer.Data[KeyboardCtrl.KeyBuffer.Get]; 00554 KeyboardCtrl.KeyBuffer.Get=0; 00555 } 00556 else{ 00557 Data=KeyboardCtrl.KeyBuffer.Data[KeyboardCtrl.KeyBuffer.Get]; 00558 KeyboardCtrl.KeyBuffer.Get++; 00559 } 00560 return Data; 00561 }
| void KeyboardKeyBufferPut | ( | U8 | Data | ) |
| void KeyboardKeyBufferPutIsr | ( | U8 | Data | ) |
Definition at line 536 of file keyboard.c.
00536 { 00537 if(KeyboardKeyBufferCheckIsr()==BUFFER_FULL) return; 00538 if(KeyboardCtrl.KeyBuffer.Put==(KEYBOARD_KEYBUFFER_SZIE-1)){ 00539 KeyboardCtrl.KeyBuffer.Data[KeyboardCtrl.KeyBuffer.Put]=Data; 00540 KeyboardCtrl.KeyBuffer.Put=0; 00541 } 00542 else{ 00543 KeyboardCtrl.KeyBuffer.Data[KeyboardCtrl.KeyBuffer.Put]=Data; 00544 KeyboardCtrl.KeyBuffer.Put++; 00545 } 00546 }
| void KeyboardStop | ( | void | ) |
Definition at line 14 of file keyboard.c.
1.5.9