1*b46484bbSperry /* $NetBSD: kbdmap.h,v 1.2 1998/01/05 20:52:29 perry Exp $ */ 2*b46484bbSperry 3320e7320Soki #define NUL 0 4320e7320Soki #define SOH 1 5320e7320Soki #define STX 2 6320e7320Soki #define ETX 3 7320e7320Soki #define EOT 4 8320e7320Soki #define ENQ 5 9320e7320Soki #define ACK 6 10320e7320Soki #define BEL 7 11320e7320Soki #define BS 8 12320e7320Soki #define HT 9 13320e7320Soki #define LF 10 14320e7320Soki #define VT 11 15320e7320Soki #define FF 12 16320e7320Soki #define CR 13 17320e7320Soki #define SO 14 18320e7320Soki #define SI 15 19320e7320Soki #define DLE 16 20320e7320Soki #define DC1 17 21320e7320Soki #define DC2 18 22320e7320Soki #define DC3 19 23320e7320Soki #define DC4 20 24320e7320Soki #define NAK 21 25320e7320Soki #define SYN 22 26320e7320Soki #define ETB 23 27320e7320Soki #define CAN 24 28320e7320Soki #define EM 25 29320e7320Soki #define SUB 26 30320e7320Soki #define ESC 27 31320e7320Soki #define FS 28 32320e7320Soki #define GS 29 33320e7320Soki #define RS 30 34320e7320Soki #define US 31 35320e7320Soki #define DEL 127 36320e7320Soki #define IND 132 37320e7320Soki #define NEL 133 38320e7320Soki #define SSA 134 39320e7320Soki #define ESA 135 40320e7320Soki #define HTS 136 41320e7320Soki #define HTJ 137 42320e7320Soki #define VTS 138 43320e7320Soki #define PLD 139 44320e7320Soki #define PLU 140 45320e7320Soki #define RI 141 46320e7320Soki #define SS2 142 47320e7320Soki #define SS3 143 48320e7320Soki #define DCS 144 49320e7320Soki #define PU1 145 50320e7320Soki #define PU2 146 51320e7320Soki #define STS 147 52320e7320Soki #define CCH 148 53320e7320Soki #define MW 149 54320e7320Soki #define SPA 150 55320e7320Soki #define EPA 151 56320e7320Soki #define CSI 155 57320e7320Soki #define ST 156 58320e7320Soki #define OSC 157 59320e7320Soki #define PM 158 60320e7320Soki #define APC 159 61320e7320Soki 62320e7320Soki 63320e7320Soki /* a normal Amiga keyboard has 0x60 `normal' keys, plus modifier keys that 64320e7320Soki don't appear in the keymap */ 65320e7320Soki #define KBD_NUM_KEYS 0x6d 66320e7320Soki 67320e7320Soki /* size of string table */ 68320e7320Soki #define KBD_STRTAB_SIZE 255 69320e7320Soki 70320e7320Soki /* for dead keys, index into acctable */ 71320e7320Soki #define KBD_ACC_GRAVE 0 72320e7320Soki #define KBD_ACC_ACUTE 1 73320e7320Soki #define KBD_ACC_CIRC 2 74320e7320Soki #define KBD_ACC_TILDE 3 75320e7320Soki #define KBD_ACC_DIER 4 76320e7320Soki #define KBD_NUM_ACC 5 77320e7320Soki 78320e7320Soki 79320e7320Soki struct key { 80320e7320Soki unsigned char mode; /* see possible values below */ 81320e7320Soki unsigned char code; 82320e7320Soki }; 83320e7320Soki 84320e7320Soki #define KBD_MODE_STRING (1<<0) /* code is index into strings[] */ 85320e7320Soki #define KBD_MODE_DEAD (1<<1) /* acc-index in upper nibble, code = plain acc */ 86320e7320Soki #define KBD_MODE_CAPS (1<<2) /* key is capsable. Only used in non-shifted maps */ 87320e7320Soki #define KBD_MODE_KPAD (1<<3) /* key is on keypad */ 88320e7320Soki #define KBD_MODE_GRAVE (KBD_ACC_GRAVE << 4) 89320e7320Soki #define KBD_MODE_ACUTE (KBD_ACC_ACUTE << 4) 90320e7320Soki #define KBD_MODE_CIRC (KBD_ACC_CIRC << 4) 91320e7320Soki #define KBD_MODE_TILDE (KBD_ACC_TILDE << 4) 92320e7320Soki #define KBD_MODE_DIER (KBD_ACC_DIER << 4) 93320e7320Soki #define KBD_MODE_ACCENT(m) ((m) >> 4) /* get accent from mode */ 94320e7320Soki #define KBD_MODE_ACCMASK (0xf0) 95320e7320Soki 96320e7320Soki struct kbdmap { 97320e7320Soki struct key keys[KBD_NUM_KEYS], 98320e7320Soki shift_keys[KBD_NUM_KEYS], 99320e7320Soki alt_keys[KBD_NUM_KEYS], 100320e7320Soki alt_shift_keys[KBD_NUM_KEYS]; 101320e7320Soki unsigned char strings[KBD_STRTAB_SIZE]; 102320e7320Soki }; 103320e7320Soki 104320e7320Soki 105320e7320Soki #ifdef KERNEL 106320e7320Soki /* XXX: ITE interface */ 107320e7320Soki extern struct kbdmap kbdmap, ascii_kbdmap; 108320e7320Soki extern unsigned char acctable[KBD_NUM_ACC][64]; 109320e7320Soki #endif 110