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
146