Lines Matching +full:0 +full:x9c

18 #define KBD_STATUS_REG		0x64	/* Status register (R) */
19 #define KBD_DATA_REG 0x60 /* Keyboard data register (R/W) */
23 #define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
24 #define KBD_STAT_MOUSE_OBF 0x20 /* Mouse output buffer full */
37 static int shift_lock; /* CAPS LOCK state (0-off, 1-on) */ in kdb_get_kbd_char()
43 (inb(KBD_STATUS_REG) == 0xff && inb(KBD_DATA_REG) == 0xff)) { in kdb_get_kbd_char()
44 kbd_exists = 0; in kdb_get_kbd_char()
49 if ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_get_kbd_char()
71 if (((scancode&0x7f) == 0x2a) || ((scancode&0x7f) == 0x36)) { in kdb_get_kbd_char()
75 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
78 shift_key = 0; in kdb_get_kbd_char()
82 if ((scancode&0x7f) == 0x1d) { in kdb_get_kbd_char()
86 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
89 ctrl_key = 0; in kdb_get_kbd_char()
93 if ((scancode & 0x80) != 0) { in kdb_get_kbd_char()
94 if (scancode == 0x9c) in kdb_get_kbd_char()
95 kbd_last_ret = 0; in kdb_get_kbd_char()
99 scancode &= 0x7f; in kdb_get_kbd_char()
105 if (scancode == 0x3a) { in kdb_get_kbd_char()
112 kdb_toggleled(0x4); in kdb_get_kbd_char()
117 if (scancode == 0x0e) { in kdb_get_kbd_char()
126 case 0xF: /* Tab */ in kdb_get_kbd_char()
128 case 0x53: /* Del */ in kdb_get_kbd_char()
130 case 0x47: /* Home */ in kdb_get_kbd_char()
132 case 0x4F: /* End */ in kdb_get_kbd_char()
134 case 0x4B: /* Left */ in kdb_get_kbd_char()
136 case 0x48: /* Up */ in kdb_get_kbd_char()
138 case 0x50: /* Down */ in kdb_get_kbd_char()
140 case 0x4D: /* Right */ in kdb_get_kbd_char()
144 if (scancode == 0xe0) in kdb_get_kbd_char()
152 if (scancode == 0x73) in kdb_get_kbd_char()
153 scancode = 0x59; in kdb_get_kbd_char()
154 else if (scancode == 0x7d) in kdb_get_kbd_char()
155 scancode = 0x7c; in kdb_get_kbd_char()
164 keychar = 0x0020; in kdb_get_kbd_char()
167 keychar &= 0x0fff; in kdb_get_kbd_char()
184 if (scancode == 0x1c) { in kdb_get_kbd_char()
189 return keychar & 0xff; in kdb_get_kbd_char()
210 kbd_last_ret = 0; in kdb_kbd_cleanup_state()
216 * + Need to handle KP ENTER, which has break code 0xe0 0x9c. in kdb_kbd_cleanup_state()
226 while ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_kbd_cleanup_state()
242 * If we see 0xe0, this is either a break code for KP in kdb_kbd_cleanup_state()
245 * skip the 0xe0 and try again. in kdb_kbd_cleanup_state()
247 * If we see 0x1c, this must be a repeat ENTER or KP in kdb_kbd_cleanup_state()
248 * ENTER (and we swallowed 0xe0 before). Try again. in kdb_kbd_cleanup_state()
252 * see anything other than 0x9c, we have to try again. in kdb_kbd_cleanup_state()
257 if (scancode != 0x9c) in kdb_kbd_cleanup_state()