1 /* $NetBSD: kbdmap.h,v 1.3 2024/01/07 07:58:33 isaki Exp $ */ 2 3 #ifndef _X68K_KBDMAP_H_ 4 #define _X68K_KBDMAP_H_ 5 6 #define NUL 0 7 #define SOH 1 8 #define STX 2 9 #define ETX 3 10 #define EOT 4 11 #define ENQ 5 12 #define ACK 6 13 #define BEL 7 14 #define BS 8 15 #define HT 9 16 #define LF 10 17 #define VT 11 18 #define FF 12 19 #define CR 13 20 #define SO 14 21 #define SI 15 22 #define DLE 16 23 #define DC1 17 24 #define DC2 18 25 #define DC3 19 26 #define DC4 20 27 #define NAK 21 28 #define SYN 22 29 #define ETB 23 30 #define CAN 24 31 #define EM 25 32 #define SUB 26 33 #define ESC 27 34 #define FS 28 35 #define GS 29 36 #define RS 30 37 #define US 31 38 #define DEL 127 39 #define IND 132 40 #define NEL 133 41 #define SSA 134 42 #define ESA 135 43 #define HTS 136 44 #define HTJ 137 45 #define VTS 138 46 #define PLD 139 47 #define PLU 140 48 #define RI 141 49 #define SS2 142 50 #define SS3 143 51 #define DCS 144 52 #define PU1 145 53 #define PU2 146 54 #define STS 147 55 #define CCH 148 56 #define MW 149 57 #define SPA 150 58 #define EPA 151 59 #define CSI 155 60 #define ST 156 61 #define OSC 157 62 #define PM 158 63 #define APC 159 64 65 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 69 70 /* size of string table */ 71 #define KBD_STRTAB_SIZE 255 72 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 79 #define KBD_NUM_ACC 5 80 81 82 struct key { 83 unsigned char mode; /* see possible values below */ 84 unsigned char code; 85 }; 86 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) 98 99 struct kbdmap { 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]; 105 }; 106 107 #endif 108