169408Sache/* $NetBSD: kbdmap.c.ascii,v 1.6 2024/01/07 07:58:33 isaki Exp $ */ 269408Sache/* from: arch/amiga/dev/kbdmap.c */ 369408Sache/* modified for X680x0 by Masaru Oki */ 469408Sache 569408Sache#include "kbdmap.h" 669408Sache 769408Sache/* define a default keymap. This can be changed by keyboard ioctl's 869408Sache (later at least..) */ 969408Sache 1069408Sache/* mode shortcuts: */ 11145479Smp#define S KBD_MODE_STRING 12145479Smp#define DG (KBD_MODE_DEAD | KBD_MODE_GRAVE) 13145479Smp#define DA (KBD_MODE_DEAD | KBD_MODE_ACUTE) 14145479Smp#define DC (KBD_MODE_DEAD | KBD_MODE_CIRC) 1569408Sache#define DT (KBD_MODE_DEAD | KBD_MODE_TILDE) 1669408Sache#define DD (KBD_MODE_DEAD | KBD_MODE_DIER) 1769408Sache#define C KBD_MODE_CAPS 1869408Sache#define K KBD_MODE_KPAD 1969408Sache 2069408Sachestruct kbdmap kbdmap; 2169408Sacheconst struct kbdmap ascii_kbdmap = { 2269408Sache /* normal map */ 2369408Sache { 2469408Sache 0, 0, /* 0x00 */ 2569408Sache 0, ESC, 2669408Sache 0, '1', 2769408Sache 0, '2', 2869408Sache 0, '3', 2969408Sache 0, '4', 3069408Sache 0, '5', 3169408Sache 0, '6', 3269408Sache 0, '7', /* 0x08 */ 3369408Sache 0, '8', 3469408Sache 0, '9', 3569408Sache 0, '0', 3669408Sache 0, '-', 3769408Sache 0, '=', 3869408Sache 0, '\\', 3969408Sache 0, DEL, /* really BS, DEL & BS swapped */ 4069408Sache 0, '\t', /* 0x10 */ 4169408Sache C, 'q', 4269408Sache C, 'w', 4369408Sache C, 'e', 4469408Sache C, 'r', 4569408Sache C, 't', 4669408Sache C, 'y', 4769408Sache C, 'u', 4869408Sache C, 'i', /* 0x18 */ 4969408Sache C, 'o', 5069408Sache C, 'p', 5169408Sache 0, '[', 5269408Sache 0, ']', 5369408Sache 0, '\r', /* return */ 5469408Sache C, 'a', 5569408Sache C, 's', 5669408Sache C, 'd', /* 0x20 */ 5769408Sache C, 'f', 5869408Sache C, 'g', 5983098Smp C, 'h', 6069408Sache C, 'j', 6169408Sache C, 'k', 6269408Sache C, 'l', 6369408Sache 0, ';', 6469408Sache 0, '\'', /* 0x28 */ 6569408Sache 0, '`', 6669408Sache C, 'z', 6769408Sache C, 'x', 6869408Sache C, 'c', 6969408Sache C, 'v', 7069408Sache C, 'b', 7169408Sache C, 'n', 7269408Sache C, 'm', /* 0x30 */ 7369408Sache 0, ',', 7469408Sache 0, '.', 7569408Sache 0, '/', 7669408Sache 0, '_', 7769408Sache 0, ' ', 7869408Sache 0, 0, /* HOME */ 7969408Sache 0, '\b', /* really DEL, BS & DEL swapped */ 8069408Sache 0, 0, /* 0x38 ROLLUP */ 81145479Smp 0, 0, /* ROLLDOWN */ 8269408Sache 0, 0, /* UNDO */ 8369408Sache S, 0x0C, /* CRSR LEFT */ 8469408Sache S, 0x00, /* now it gets hairy.. CRSR UP */ 8569408Sache S, 0x08, /* CRSR RIGHT */ 8669408Sache S, 0x04, /* CRSR DOWN */ 8769408Sache K, 0, /* CLR */ 8869408Sache K, '/', /* 0x40 */ 8969408Sache K, '*', 9069408Sache K, '-', 9169408Sache K, '7', 9269408Sache K, '8', 9369408Sache K, '9', 9469408Sache K, '+', 9569408Sache K, '4', 9669408Sache K, '5', /* 0x48 */ 9769408Sache K, '6', 9869408Sache K, '=', 9969408Sache K, '1', 10069408Sache K, '2', 10169408Sache K, '3', 10269408Sache K, '\r', /* enter */ 10369408Sache K, '0', 10469408Sache K, ',', /* 0x50 */ 10569408Sache K, '.', 10669408Sache 0, 0, 10769408Sache 0, 0, 10869408Sache S, 0x42, /* HELP */ 10969408Sache 0, 0, 11069408Sache 0, 0, 11169408Sache 0, 0, 11269408Sache 0, 0, /* 0x58 */ 11369408Sache 0, 0, 11469408Sache 0, 0, 11569408Sache 0, 0, 11669408Sache 0, 0, 11769408Sache 0, 0, 118100616Smp 0, 0, 119100616Smp 0, 0, 120100616Smp 0, 0, /* 0x60 */ 121100616Smp 0, 0, 122100616Smp 0, 0, 12369408Sache S, 0x10, /* F1 */ 12469408Sache S, 0x15, /* F2 */ 12569408Sache S, 0x1A, /* F3 */ 12669408Sache S, 0x1F, /* F4 */ 12769408Sache S, 0x24, /* F5 */ 12869408Sache S, 0x29, /* F6 */ 12969408Sache S, 0x2E, /* F7 */ 13069408Sache S, 0x33, /* 0x58 F8 */ 13169408Sache S, 0x38, /* F9 */ 13269408Sache S, 0x3D, /* F10 */ 13369408Sache }, 13469408Sache 13569408Sache /* shifted map */ 13669408Sache { 13769408Sache 0, 0, /* 0x00 */ 13869408Sache 0, ESC, 13969408Sache 0, '!', 14069408Sache 0, '@', 14169408Sache 0, '#', 14269408Sache 0, '$', 14369408Sache 0, '%', 14469408Sache 0, '^', 14569408Sache 0, '&', /* 0x08 */ 14669408Sache 0, '*', 14769408Sache 0, '(', 14869408Sache 0, ')', 14969408Sache 0, '_', 15069408Sache 0, '+', 15169408Sache 0, '|', 15269408Sache 0, DEL, /* really BS, DEL & BS swapped */ 15369408Sache S, 0x99, /* 0x10 shift TAB */ 15469408Sache C, 'Q', 15569408Sache C, 'W', 15669408Sache C, 'E', 15769408Sache C, 'R', 15869408Sache C, 'T', 15969408Sache C, 'Y', 16069408Sache C, 'U', 16169408Sache C, 'I', /* 0x18 */ 16269408Sache C, 'O', 16369408Sache C, 'P', 16469408Sache 0, '{', 16569408Sache 0, '}', 16669408Sache 0, '\r', /* return */ 16769408Sache C, 'A', 16869408Sache C, 'S', 16969408Sache C, 'D', /* 0x20 */ 17069408Sache C, 'F', 17169408Sache C, 'G', 17269408Sache C, 'H', 17369408Sache C, 'J', 17469408Sache C, 'K', 17569408Sache C, 'L', 17669408Sache 0, ':', 17769408Sache 0, '\"', /* 0x28 */ 17869408Sache 0, '~', 17969408Sache C, 'Z', 18069408Sache C, 'X', 18169408Sache C, 'C', 18269408Sache C, 'V', 18369408Sache C, 'B', 18469408Sache C, 'N', 18569408Sache C, 'M', /* 0x30 */ 18669408Sache 0, '<', /* 0x38 */ 18769408Sache 0, '>', 18869408Sache 0, '?', 18969408Sache 0, '_', 19069408Sache 0, ' ', 19169408Sache 0, 0, /* HOME */ 19269408Sache 0, '\b', /* really DEL, BS & DEL swapped */ 19369408Sache 0, 0, /* 0x38 ROLLUP */ 19469408Sache 0, 0, /* ROLLDOWN */ 19569408Sache 0, 0, /* UNDO */ 19669408Sache S, 0x51, /* shift CRSR RIGHT */ 19769408Sache S, 0x47, /* shift CRSR UP */ 19869408Sache S, 0x57, /* shift CRSR LEFT */ 19969408Sache S, 0x4C, /* shift CRSR DOWN */ 20069408Sache K, 0, /* CLR */ 201145479Smp K, '/', /* 0x40 */ 20269408Sache 0, 0, 20369408Sache K, '*', 20469408Sache K, '-', 20569408Sache K, '7', 20669408Sache K, '8', 20769408Sache K, '9', 20869408Sache K, '+', 20969408Sache K, '4', 21069408Sache K, '5', /* 0x48 */ 21169408Sache K, '6', 21269408Sache K, '=', 21369408Sache K, '1', 21469408Sache K, '2', 215145479Smp K, '3', 21669408Sache K, '\r', /* enter */ 21769408Sache K, '0', 21869408Sache K, ',', /* 0x50 */ 21969408Sache K, '.', 22069408Sache 0, 0, 22169408Sache 0, 0, 22269408Sache S, 0x42, /* HELP */ 22369408Sache 0, 0, 22469408Sache 0, 0, 22583098Smp 0, 0, 22683098Smp 0, 0, /* 0x58 */ 22783098Smp 0, 0, 22883098Smp 0, 0, 22983098Smp 0, 0, 23069408Sache 0, 0, 23169408Sache 0, 0, 23269408Sache 0, 0, 233145479Smp 0, 0, 234145479Smp 0, 0, /* 0x60 */ 23569408Sache 0, 0, 23669408Sache 0, 0, 23769408Sache S, 0x5D, /* shift F1 */ 23869408Sache S, 0x63, /* shift F2 */ 23969408Sache S, 0x69, /* shift F3 */ 24069408Sache S, 0x6F, /* shift F4 */ 24169408Sache S, 0x75, /* shift F5 */ 242145479Smp S, 0x7B, /* shift F6 */ 243145479Smp S, 0x81, /* shift F7 */ 244145479Smp S, 0x87, /* 0x58 shift F8 */ 245145479Smp S, 0x8D, /* shift F9 */ 24669408Sache S, 0x93, /* shift F10 */ 247145479Smp }, 24869408Sache 24969408Sache 25069408Sache /* alt map */ 25169408Sache { 252145479Smp }, 25369408Sache 25469408Sache /* shift alt map */ 25569408Sache { 25669408Sache }, 257145479Smp 25869408Sache { 259145479Smp /* string table. If there's a better way to get the offsets into the 260145479Smp above table, please tell me.. 26169408Sache 26269408Sache NOTE: save yourself and others a lot of grief by *not* using 263145479Smp CSI == 0x9b, using the two-character sequence gives 264145479Smp much less trouble, especially in GNU-Emacs.. */ 26569408Sache 266145479Smp 3, ESC, '[', 'A', /* 0x00: CRSR UP */ 267145479Smp 3, ESC, '[', 'B', /* 0x04: CRSR DOWN */ 268145479Smp 3, ESC, '[', 'C', /* 0x08: CRSR RIGHT */ 269145479Smp 3, ESC, '[', 'D', /* 0x0C: CRSR LEFT */ 270145479Smp 4, ESC, '[', '0', '~', /* 0x10: F1 */ 271145479Smp 4, ESC, '[', '1', '~', /* 0x15: F2 */ 272145479Smp 4, ESC, '[', '2', '~', /* 0x1A: F3 */ 273145479Smp 4, ESC, '[', '3', '~', /* 0x1F: F4 */ 274145479Smp 4, ESC, '[', '4', '~', /* 0x24: F5 */ 275145479Smp 4, ESC, '[', '5', '~', /* 0x29: F6 */ 276145479Smp 4, ESC, '[', '6', '~', /* 0x2E: F7 */ 277145479Smp 4, ESC, '[', '7', '~', /* 0x33: F8 */ 278145479Smp 4, ESC, '[', '8', '~', /* 0x38: F9 */ 279145479Smp 4, ESC, '[', '9', '~', /* 0x3D: F10 */ 280145479Smp 4, ESC, '[', '?', '~', /* 0x42: HELP */ 281145479Smp 282145479Smp 4, ESC, '[', 'T', '~', /* 0x47: shift CRSR UP */ 283145479Smp 4, ESC, '[', 'S', '~', /* 0x4C: shift CRSR DOWN */ 284145479Smp 5, ESC, '[', ' ', '@', '~', /* 0x51: shift CRSR RIGHT */ 285145479Smp 5, ESC, '[', ' ', 'A', '~', /* 0x57: shift CRSR LEFT */ 286145479Smp 5, ESC, '[', '1', '0', '~', /* 0x5D: shift F1 */ 287145479Smp 5, ESC, '[', '1', '1', '~', /* 0x63: shift F2 */ 288145479Smp 5, ESC, '[', '1', '2', '~', /* 0x69: shift F3 */ 289145479Smp 5, ESC, '[', '1', '3', '~', /* 0x6F: shift F4 */ 290145479Smp 5, ESC, '[', '1', '4', '~', /* 0x75: shift F5 */ 291145479Smp 5, ESC, '[', '1', '5', '~', /* 0x7B: shift F6 */ 292145479Smp 5, ESC, '[', '1', '6', '~', /* 0x81: shift F7 */ 293145479Smp 5, ESC, '[', '1', '7', '~', /* 0x87: shift F8 */ 294145479Smp 5, ESC, '[', '1', '8', '~', /* 0x8D: shift F9 */ 295145479Smp 5, ESC, '[', '1', '9', '~', /* 0x93: shift F10 */ 296145479Smp 3, ESC, '[', 'Z', /* 0x99: shift TAB */ 297145479Smp 2, ESC, '[', /* 0x9d: alt ESC == CSI */ 298145479Smp }, 299145479Smp}; 300145479Smp 301145479Smpunsigned char acctable[KBD_NUM_ACC][64] = { 302145479Smp}; 303145479Smp