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