rem: case ESCAPE:
add: case F12:
context: handle_keyboard_interrupt(void *data){	unsigned char key;	int32 retval = B_HANDLED_INTERRUPT;	key = gISA->read_io_8(0x60);	TRACE(("handle_keyboard_interrupt: key = 0x%x\n", key));	if (key & 0x80) {		// key up		if (key == LSHIFT + 0x80 || key == RSHIFT + 0x80)			shift = false;		if (key == LCONTROL + 0x80 || key == RCONTROL + 0x80)			sControl = false;		return B_HANDLED_INTERRUPT;	}	switch (key) {		case LSHIFT:		case RSHIFT:			shift = true;			break;		case LCONTROL:		//case RCONTROL:			sControl = true;			break;		case CAPS_LOCK:			if (leds & LED_CAPS)				leds &= ~LED_CAPS;			else				leds |= LED_CAPS;			set_leds();			break;		case SCR_LOCK:			if (leds & LED_SCROLL) {				leds &= ~LED_SCROLL;				//set_dprintf_enabled(false);			} else {				leds |= LED_SCROLL;				//set_dprintf_enabled(true);			}			set_leds();			break;		case NUM_LOCK:			if (leds & LED_NUM)				leds &= ~LED_NUM;			else				leds |= LED_NUM;			set_leds();			break;		/* the following code has two possibilities because of issues		 * with BeBochs & BeOS (all special keys don't map to anything		 * useful, and SYS_REQ does a screen dump in BeOS).		 * ToDo: remove these key functions some day...		 */		case ESCAPE:		case SYS_REQ:			panic("Keyboard Requested Halt\n");			break;#if 0		case F11:			dbg_set_serial_debug(dbg_get_serial_debug() ? false : true);			break;#endif		case F12:			shutdown(true);			break;		case HOME:		case END:		case CURSOR_DOWN:		case CURSOR_UP:		case CURSOR_LEFT:		case CURSOR_RIGHT:			insert_in_buf(0x1b);			insert_in_buf('[');			insert_in_buf(sControlKeys[key - HOME]);			retval = B_INVOKE_SCHEDULER;			break;		default: {			char ascii;			if (shift || sControl)				ascii = shifted_keymap[key];			else {				if (leds & LED_CAPS)					ascii = caps_keymap[key];				else					ascii = unshifted_keymap[key];			}			if (sControl && ascii >= 64 && ascii < 96)				ascii -= 0100;			TRACE(("ascii = 0x%x, '%c'\n", ascii, ascii));			if (ascii != 0) {				insert_in_buf(ascii);				retval = B_INVOKE_SCHEDULER;			} else				TRACE(("keyboard: unknown scan-code 0x%x\n", key));		}	}	return retval;}