keyboard.h File Reference

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 Documentation

#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.


Function Documentation

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   ) 

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.

void KeyboardStop ( void   ) 


Variable Documentation

Definition at line 14 of file keyboard.c.


Generated on Sat Apr 10 23:28:07 2010 for 80X86 MULTI-TASKING OPERATION SYSTEM by  doxygen 1.5.9