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