1 /* $NetBSD: kbdmap.h,v 1.1.2.3 2004/09/21 13:24:20 skrll Exp $ */
3 #ifndef _X68K_KBDMAP_H_
4 #define _X68K_KBDMAP_H_
66 /* a normal x68k keyboard has 0x6d `normal' keys, plus modifier keys that
67 don't appear in the keymap */
68 #define KBD_NUM_KEYS 0x6d
70 /* size of string table */
71 #define KBD_STRTAB_SIZE 255
73 /* for dead keys, index into acctable */
74 #define KBD_ACC_GRAVE 0
75 #define KBD_ACC_ACUTE 1
76 #define KBD_ACC_CIRC 2
77 #define KBD_ACC_TILDE 3
78 #define KBD_ACC_DIER 4
83 unsigned char mode
; /* see possible values below */
87 #define KBD_MODE_STRING (1<<0) /* code is index into strings[] */
88 #define KBD_MODE_DEAD (1<<1) /* acc-index in upper nibble, code = plain acc */
89 #define KBD_MODE_CAPS (1<<2) /* key is capsable. Only used in non-shifted maps */
90 #define KBD_MODE_KPAD (1<<3) /* key is on keypad */
91 #define KBD_MODE_GRAVE (KBD_ACC_GRAVE << 4)
92 #define KBD_MODE_ACUTE (KBD_ACC_ACUTE << 4)
93 #define KBD_MODE_CIRC (KBD_ACC_CIRC << 4)
94 #define KBD_MODE_TILDE (KBD_ACC_TILDE << 4)
95 #define KBD_MODE_DIER (KBD_ACC_DIER << 4)
96 #define KBD_MODE_ACCENT(m) ((m) >> 4) /* get accent from mode */
97 #define KBD_MODE_ACCMASK (0xf0)
100 struct key keys
[KBD_NUM_KEYS
],
101 shift_keys
[KBD_NUM_KEYS
],
102 alt_keys
[KBD_NUM_KEYS
],
103 alt_shift_keys
[KBD_NUM_KEYS
];
104 unsigned char strings
[KBD_STRTAB_SIZE
];