xref: /netbsd/sys/arch/x68k/usr.bin/loadkmap/kbdmap.h (revision b46484bb)
1*b46484bbSperry /*	$NetBSD: kbdmap.h,v 1.2 1998/01/05 20:52:29 perry Exp $	*/
2*b46484bbSperry 
3320e7320Soki #define NUL	0
4320e7320Soki #define SOH	1
5320e7320Soki #define STX	2
6320e7320Soki #define ETX	3
7320e7320Soki #define EOT	4
8320e7320Soki #define ENQ	5
9320e7320Soki #define ACK	6
10320e7320Soki #define	BEL	7
11320e7320Soki #define BS	8
12320e7320Soki #define HT	9
13320e7320Soki #define LF	10
14320e7320Soki #define VT	11
15320e7320Soki #define FF	12
16320e7320Soki #define CR	13
17320e7320Soki #define SO	14
18320e7320Soki #define SI	15
19320e7320Soki #define DLE	16
20320e7320Soki #define DC1	17
21320e7320Soki #define DC2	18
22320e7320Soki #define DC3	19
23320e7320Soki #define DC4	20
24320e7320Soki #define NAK	21
25320e7320Soki #define SYN	22
26320e7320Soki #define ETB	23
27320e7320Soki #define CAN	24
28320e7320Soki #define EM	25
29320e7320Soki #define SUB	26
30320e7320Soki #define ESC	27
31320e7320Soki #define FS	28
32320e7320Soki #define GS	29
33320e7320Soki #define RS	30
34320e7320Soki #define US	31
35320e7320Soki #define	DEL	127
36320e7320Soki #define IND	132
37320e7320Soki #define NEL	133
38320e7320Soki #define SSA	134
39320e7320Soki #define ESA	135
40320e7320Soki #define HTS	136
41320e7320Soki #define HTJ	137
42320e7320Soki #define VTS	138
43320e7320Soki #define PLD	139
44320e7320Soki #define PLU	140
45320e7320Soki #define RI	141
46320e7320Soki #define SS2	142
47320e7320Soki #define SS3	143
48320e7320Soki #define DCS	144
49320e7320Soki #define PU1	145
50320e7320Soki #define PU2	146
51320e7320Soki #define STS	147
52320e7320Soki #define CCH	148
53320e7320Soki #define MW	149
54320e7320Soki #define SPA	150
55320e7320Soki #define EPA	151
56320e7320Soki #define CSI	155
57320e7320Soki #define ST	156
58320e7320Soki #define OSC	157
59320e7320Soki #define PM	158
60320e7320Soki #define APC	159
61320e7320Soki 
62320e7320Soki 
63320e7320Soki /* a normal Amiga keyboard has 0x60 `normal' keys, plus modifier keys that
64320e7320Soki    don't appear in the keymap */
65320e7320Soki #define KBD_NUM_KEYS	0x6d
66320e7320Soki 
67320e7320Soki /* size of string table */
68320e7320Soki #define KBD_STRTAB_SIZE	255
69320e7320Soki 
70320e7320Soki /* for dead keys, index into acctable */
71320e7320Soki #define	KBD_ACC_GRAVE	0
72320e7320Soki #define KBD_ACC_ACUTE	1
73320e7320Soki #define KBD_ACC_CIRC	2
74320e7320Soki #define KBD_ACC_TILDE	3
75320e7320Soki #define KBD_ACC_DIER	4
76320e7320Soki #define KBD_NUM_ACC	5
77320e7320Soki 
78320e7320Soki 
79320e7320Soki struct key {
80320e7320Soki 	unsigned char	mode;	/* see possible values below */
81320e7320Soki 	unsigned char	code;
82320e7320Soki };
83320e7320Soki 
84320e7320Soki #define KBD_MODE_STRING	(1<<0)	/* code is index into strings[] */
85320e7320Soki #define KBD_MODE_DEAD	(1<<1)	/* acc-index in upper nibble, code = plain acc */
86320e7320Soki #define KBD_MODE_CAPS	(1<<2)	/* key is capsable. Only used in non-shifted maps */
87320e7320Soki #define KBD_MODE_KPAD	(1<<3)	/* key is on keypad */
88320e7320Soki #define KBD_MODE_GRAVE	(KBD_ACC_GRAVE << 4)
89320e7320Soki #define KBD_MODE_ACUTE	(KBD_ACC_ACUTE << 4)
90320e7320Soki #define KBD_MODE_CIRC	(KBD_ACC_CIRC  << 4)
91320e7320Soki #define KBD_MODE_TILDE	(KBD_ACC_TILDE << 4)
92320e7320Soki #define KBD_MODE_DIER	(KBD_ACC_DIER  << 4)
93320e7320Soki #define KBD_MODE_ACCENT(m) ((m) >> 4)	/* get accent from mode */
94320e7320Soki #define KBD_MODE_ACCMASK  (0xf0)
95320e7320Soki 
96320e7320Soki struct kbdmap {
97320e7320Soki 	struct key 	keys[KBD_NUM_KEYS],
98320e7320Soki 		   	shift_keys[KBD_NUM_KEYS],
99320e7320Soki 		   	alt_keys[KBD_NUM_KEYS],
100320e7320Soki 			alt_shift_keys[KBD_NUM_KEYS];
101320e7320Soki 	unsigned char	strings[KBD_STRTAB_SIZE];
102320e7320Soki };
103320e7320Soki 
104320e7320Soki 
105320e7320Soki #ifdef KERNEL
106320e7320Soki /* XXX: ITE interface */
107320e7320Soki extern struct kbdmap kbdmap, ascii_kbdmap;
108320e7320Soki extern unsigned char acctable[KBD_NUM_ACC][64];
109320e7320Soki #endif
110