| 1 | /*	$NetBSD: lk201.h,v 1.9 2005/12/11 12:21:20 christos Exp $	*/ |
| 2 | |
| 3 | |
| 4 | /* |
| 5 | * Ascii values of command keys. |
| 6 | */ |
| 7 | #define KBD_TAB		'\t' |
| 8 | #define KBD_DEL		127 |
| 9 | #define KBD_RET		'\r' |
| 10 | |
| 11 | /* |
| 12 | * Define "hardware-independent" codes for the control, shift, meta and |
| 13 | * function keys. Codes start after the last 7-bit ASCII code (127) |
| 14 | * and are assigned in an arbitrary order. |
| 15 | */ |
| 16 | #define KBD_NOKEY	128 |
| 17 | |
| 18 | #define KBD_F1		201 |
| 19 | #define KBD_F2		202 |
| 20 | #define KBD_F3		203 |
| 21 | #define KBD_F4		204 |
| 22 | #define KBD_F5		205 |
| 23 | #define KBD_F6		206 |
| 24 | #define KBD_F7		207 |
| 25 | #define KBD_F8		208 |
| 26 | #define KBD_F9		209 |
| 27 | #define KBD_F10		210 |
| 28 | #define KBD_F11		211 |
| 29 | #define KBD_F12		212 |
| 30 | #define KBD_F13		213 |
| 31 | #define KBD_F14		214 |
| 32 | #define KBD_HELP	215 |
| 33 | #define KBD_DO		216 |
| 34 | #define KBD_F17		217 |
| 35 | #define KBD_F18		218 |
| 36 | #define KBD_F19		219 |
| 37 | #define KBD_F20		220 |
| 38 | |
| 39 | #define KBD_FIND	221 |
| 40 | #define KBD_INSERT	222 |
| 41 | #define KBD_REMOVE	223 |
| 42 | #define KBD_SELECT	224 |
| 43 | #define KBD_PREVIOUS	225 |
| 44 | #define KBD_NEXT	226 |
| 45 | |
| 46 | #define KBD_KP_ENTER	227 |
| 47 | #define KBD_KP_F1	228 |
| 48 | #define KBD_KP_F2	229 |
| 49 | #define KBD_KP_F3	230 |
| 50 | #define KBD_KP_F4	231 |
| 51 | #define KBD_LEFT	232 |
| 52 | #define KBD_RIGHT	233 |
| 53 | #define KBD_DOWN	234 |
| 54 | #define KBD_UP		235 |
| 55 | |
| 56 | #define KBD_CONTROL	236 |
| 57 | #define KBD_SHIFT	237 |
| 58 | #define KBD_CAPSLOCK	238 |
| 59 | #define KBD_ALTERNATE	239 |
| 60 | |
| 61 | |
| 62 | |
| 63 | /* |
| 64 | * Definitions for the Keyboard and mouse. |
| 65 | */ |
| 66 | /* |
| 67 | * Special key values. |
| 68 | */ |
| 69 | #define	KEY_R_SHIFT	0xab |
| 70 | #define KEY_SHIFT	0xae |
| 71 | #define KEY_CONTROL	0xaf |
| 72 | #define KEY_CAPSLOCK	0xb0 |
| 73 | #define	KEY_R_ALT	0xb2 |
| 74 | #define KEY_UP		0xb3 |
| 75 | #define KEY_REPEAT	0xb4 |
| 76 | #define KEY_F1		0x56 |
| 77 | #define KEY_COMMAND	KEY_F1 |
| 78 | |
| 79 | /* |
| 80 | * Lk201/301 keyboard |
| 81 | */ |
| 82 | #define LK_UPDOWN	0x86		/* bits for setting lk201 modes */ |
| 83 | #define LK_AUTODOWN	0x82 |
| 84 | #define LK_DOWN		0x80 |
| 85 | #define LK_DEFAULTS	0xd3		/* reset mode settings */ |
| 86 | #define LK_AR_ENABLE	0xe3		/* global auto repeat enable	*/ |
| 87 | #define LK_CL_ENABLE	0x1b		/* keyclick enable		*/ |
| 88 | #define LK_KBD_ENABLE	0x8b		/* keyboard enable		*/ |
| 89 | #define LK_BELL_ENABLE	0x23		/* the bell			*/ |
| 90 | #define LK_LED_ENABLE	0x13		/* light led			*/ |
| 91 | #define LK_LED_DISABLE	0x11		/* turn off led			*/ |
| 92 | #define LK_RING_BELL	0xa7		/* ring keyboard bell		*/ |
| 93 | #define LED_1		0x81		/* led bits			*/ |
| 94 | #define LED_2		0x82 |
| 95 | #define LED_3		0x84 |
| 96 | #define LED_4		0x88 |
| 97 | #define LED_ALL		0x8f |
| 98 | #define LK_HELP		0x7c		/* help key			*/ |
| 99 | #define LK_DO		0x7d		/* do key			*/ |
| 100 | #define LK_KDOWN_ERROR	0x3d		/* key down on powerup error	*/ |
| 101 | #define LK_POWER_ERROR	0x3e		/* keyboard failure on pwrup tst*/ |
| 102 | #define LK_OUTPUT_ERROR 0xb5		/* keystrokes lost during inhbt */ |
| 103 | #define LK_INPUT_ERROR	0xb6		/* garbage command to keyboard	*/ |
| 104 | #define LK_LOWEST	0x56		/* lowest significant keycode	*/ |
| 105 | |
| 106 | /* max volume is 0, lowest is 0x7 */ |
| 107 | #define	LK_PARAM_VOLUME(v)		(0x80|((v)&0x7)) |
| 108 | |
| 109 | /* mode command details */ |
| 110 | #define	LK_CMD_MODE(m,div)		((m)|((div)<<3)) |
| 111 | |
| 112 | |
| 113 | /* |
| 114 | * Command characters for the mouse. |
| 115 | */ |
| 116 | #define MOUSE_SELF_TEST		'T' |
| 117 | #define MOUSE_INCREMENTAL	'R' |
| 118 | |
| 119 | /* |
| 120 | * Mouse output bits. |
| 121 | * |
| 122 | * 	MOUSE_START_FRAME	Start of report frame bit. |
| 123 | *	MOUSE_X_SIGN		Sign bit for X. |
| 124 | *	MOUSE_Y_SIGN		Sign bit for Y. |
| 125 | *	MOUSE_X_OFFSET		X offset to start cursor at. |
| 126 | *	MOUSE_Y_OFFSET		Y offset to start cursor at. |
| 127 | */ |
| 128 | #define MOUSE_START_FRAME	0x80 |
| 129 | #define MOUSE_X_SIGN		0x10 |
| 130 | #define MOUSE_Y_SIGN		0x08 |
| 131 | |
| 132 | /* |
| 133 | * Definitions for mouse buttons |
| 134 | */ |
| 135 | #define EVENT_LEFT_BUTTON	0x01 |
| 136 | #define EVENT_MIDDLE_BUTTON	0x02 |
| 137 | #define EVENT_RIGHT_BUTTON	0x03 |
| 138 | #define RIGHT_BUTTON		0x01 |
| 139 | #define MIDDLE_BUTTON		0x02 |
| 140 | #define LEFT_BUTTON		0x04 |
| 141 | |
| 142 | #ifdef _KERNEL |
| 143 | extern int LKgetc(dev_t dev); |
| 144 | extern void lkdivert(int (*getc_fn)(dev_t dev), dev_t dev); |
| 145 | #endif |