Lines Matching +full:0 +full:x9c

20 #define KBD_STATUS_REG		0x64	/* Status register (R) */
21 #define KBD_DATA_REG 0x60 /* Keyboard data register (R/W) */
25 #define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
26 #define KBD_STAT_MOUSE_OBF 0x20 /* Mouse output buffer full */
39 static int shift_lock; /* CAPS LOCK state (0-off, 1-on) */ in kdb_get_kbd_char()
45 (inb(KBD_STATUS_REG) == 0xff && inb(KBD_DATA_REG) == 0xff)) { in kdb_get_kbd_char()
46 kbd_exists = 0; in kdb_get_kbd_char()
51 if ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_get_kbd_char()
73 if (((scancode&0x7f) == 0x2a) || ((scancode&0x7f) == 0x36)) { in kdb_get_kbd_char()
77 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
80 shift_key = 0; in kdb_get_kbd_char()
84 if ((scancode&0x7f) == 0x1d) { in kdb_get_kbd_char()
88 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
91 ctrl_key = 0; in kdb_get_kbd_char()
95 if ((scancode & 0x80) != 0) { in kdb_get_kbd_char()
96 if (scancode == 0x9c) in kdb_get_kbd_char()
97 kbd_last_ret = 0; in kdb_get_kbd_char()
101 scancode &= 0x7f; in kdb_get_kbd_char()
107 if (scancode == 0x3a) { in kdb_get_kbd_char()
114 kdb_toggleled(0x4); in kdb_get_kbd_char()
119 if (scancode == 0x0e) { in kdb_get_kbd_char()
128 case 0xF: /* Tab */ in kdb_get_kbd_char()
130 case 0x53: /* Del */ in kdb_get_kbd_char()
132 case 0x47: /* Home */ in kdb_get_kbd_char()
134 case 0x4F: /* End */ in kdb_get_kbd_char()
136 case 0x4B: /* Left */ in kdb_get_kbd_char()
138 case 0x48: /* Up */ in kdb_get_kbd_char()
140 case 0x50: /* Down */ in kdb_get_kbd_char()
142 case 0x4D: /* Right */ in kdb_get_kbd_char()
146 if (scancode == 0xe0) in kdb_get_kbd_char()
154 if (scancode == 0x73) in kdb_get_kbd_char()
155 scancode = 0x59; in kdb_get_kbd_char()
156 else if (scancode == 0x7d) in kdb_get_kbd_char()
157 scancode = 0x7c; in kdb_get_kbd_char()
166 keychar = 0x0020; in kdb_get_kbd_char()
169 keychar &= 0x0fff; in kdb_get_kbd_char()
186 if (scancode == 0x1c) { in kdb_get_kbd_char()
191 return keychar & 0xff; in kdb_get_kbd_char()
212 kbd_last_ret = 0; in kdb_kbd_cleanup_state()
218 * + Need to handle KP ENTER, which has break code 0xe0 0x9c. in kdb_kbd_cleanup_state()
228 while ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_kbd_cleanup_state()
244 * If we see 0xe0, this is either a break code for KP in kdb_kbd_cleanup_state()
247 * skip the 0xe0 and try again. in kdb_kbd_cleanup_state()
249 * If we see 0x1c, this must be a repeat ENTER or KP in kdb_kbd_cleanup_state()
250 * ENTER (and we swallowed 0xe0 before). Try again. in kdb_kbd_cleanup_state()
254 * see anything other than 0x9c, we have to try again. in kdb_kbd_cleanup_state()
259 if (scancode != 0x9c) in kdb_kbd_cleanup_state()