xref: /netbsd-src/sys/arch/amiga/dev/kbdmap.h (revision ae1bfcddc410612bc8c58b807e1830becb69a24c)
1 /*
2  *	$Id: kbdmap.h,v 1.5 1994/02/11 07:01:57 chopps Exp $
3  */
4 
5 #define NUL	0
6 #define SOH	1
7 #define STX	2
8 #define ETX	3
9 #define EOT	4
10 #define ENQ	5
11 #define ACK	6
12 #define	BEL	7
13 #define BS	8
14 #define HT	9
15 #define LF	10
16 #define VT	11
17 #define FF	12
18 #define CR	13
19 #define SO	14
20 #define SI	15
21 #define DLE	16
22 #define DC1	17
23 #define DC2	18
24 #define DC3	19
25 #define DC4	20
26 #define NAK	21
27 #define SYN	22
28 #define ETB	23
29 #define CAN	24
30 #define EM	25
31 #define SUB	26
32 #define ESC	27
33 #define FS	28
34 #define GS	29
35 #define RS	30
36 #define US	31
37 #define	DEL	127
38 #define IND	132
39 #define NEL	133
40 #define SSA	134
41 #define ESA	135
42 #define HTS	136
43 #define HTJ	137
44 #define VTS	138
45 #define PLD	139
46 #define PLU	140
47 #define RI	141
48 #define SS2	142
49 #define SS3	143
50 #define DCS	144
51 #define PU1	145
52 #define PU2	146
53 #define STS	147
54 #define CCH	148
55 #define MW	149
56 #define SPA	150
57 #define EPA	151
58 #define CSI	155
59 #define ST	156
60 #define OSC	157
61 #define PM	158
62 #define APC	159
63 
64 
65 /* a normal Amiga keyboard has 0x60 `normal' keys, plus modifier keys that
66    don't appear in the keymap */
67 #define KBD_NUM_KEYS	0x60
68 
69 /* size of string table */
70 #define KBD_STRTAB_SIZE	255
71 
72 /* for dead keys, index into acctable */
73 #define	KBD_ACC_GRAVE	0
74 #define KBD_ACC_ACUTE	1
75 #define KBD_ACC_CIRC	2
76 #define KBD_ACC_TILDE	3
77 #define KBD_ACC_DIER	4
78 #define KBD_NUM_ACC	5
79 
80 
81 struct key {
82 	unsigned char	mode;	/* see possible values below */
83 	unsigned char	code;
84 };
85 
86 #define KBD_MODE_STRING	(1<<0)	/* code is index into strings[] */
87 #define KBD_MODE_DEAD	(1<<1)	/* acc-index in upper nibble, code = plain acc */
88 #define KBD_MODE_CAPS	(1<<2)	/* key is capsable. Only used in non-shifted maps */
89 #define KBD_MODE_KPAD	(1<<3)	/* key is on keypad */
90 #define KBD_MODE_GRAVE	(KBD_ACC_GRAVE << 4)
91 #define KBD_MODE_ACUTE	(KBD_ACC_ACUTE << 4)
92 #define KBD_MODE_CIRC	(KBD_ACC_CIRC  << 4)
93 #define KBD_MODE_TILDE	(KBD_ACC_TILDE << 4)
94 #define KBD_MODE_DIER	(KBD_ACC_DIER  << 4)
95 #define KBD_MODE_ACCENT(m) ((m) >> 4)	/* get accent from mode */
96 #define KBD_MODE_ACCMASK  (0xf0)
97 
98 struct kbdmap {
99 	struct key 	keys[KBD_NUM_KEYS],
100 		   	shift_keys[KBD_NUM_KEYS],
101 		   	alt_keys[KBD_NUM_KEYS],
102 			alt_shift_keys[KBD_NUM_KEYS];
103 	unsigned char	strings[KBD_STRTAB_SIZE];
104 };
105 
106 
107 #ifdef KERNEL
108 /* XXX: ITE interface */
109 extern struct kbdmap kbdmap, ascii_kbdmap;
110 extern unsigned char acctable[KBD_NUM_ACC][64];
111 #endif
112