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