63 /* a normal Amiga keyboard has 0x60 `normal' keys, plus modifier keys that
64 don't appear in the keymap */
65 #define KBD_NUM_KEYS 0x6d
67 /* size of string table */
68 #define KBD_STRTAB_SIZE 255
70 /* for dead keys, index into acctable */
71 #define KBD_ACC_GRAVE 0
72 #define KBD_ACC_ACUTE 1
73 #define KBD_ACC_CIRC 2
74 #define KBD_ACC_TILDE 3
75 #define KBD_ACC_DIER 4
80 unsigned char mode
; /* see possible values below */
84 #define KBD_MODE_STRING (1<<0) /* code is index into strings[] */
85 #define KBD_MODE_DEAD (1<<1) /* acc-index in upper nibble, code = plain acc */
86 #define KBD_MODE_CAPS (1<<2) /* key is capsable. Only used in non-shifted maps */
87 #define KBD_MODE_KPAD (1<<3) /* key is on keypad */
88 #define KBD_MODE_GRAVE (KBD_ACC_GRAVE << 4)
89 #define KBD_MODE_ACUTE (KBD_ACC_ACUTE << 4)
90 #define KBD_MODE_CIRC (KBD_ACC_CIRC << 4)
91 #define KBD_MODE_TILDE (KBD_ACC_TILDE << 4)
92 #define KBD_MODE_DIER (KBD_ACC_DIER << 4)
93 #define KBD_MODE_ACCENT(m) ((m) >> 4) /* get accent from mode */
94 #define KBD_MODE_ACCMASK (0xf0)
97 struct key keys
[KBD_NUM_KEYS
],
98 shift_keys
[KBD_NUM_KEYS
],
99 alt_keys
[KBD_NUM_KEYS
],
100 alt_shift_keys
[KBD_NUM_KEYS
];
101 unsigned char strings
[KBD_STRTAB_SIZE
];
106 /* XXX: ITE interface */
107 extern struct kbdmap kbdmap
, ascii_kbdmap
;
108 extern unsigned char acctable
[KBD_NUM_ACC
][64];