|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3429 (0xd65) Types: TextFile Notes: UNIX file Names: »kbibmtab.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦f4b8d8c84⟧ UNIX Filesystem └─ ⟦this⟧ »hrtty/src/kbibmtab.c«
/* * Commodore 900 Keyboard driver * Really IBM PC compatible keyboard. * Tables to drive the state machine. */ #include <kbchar.h> #include <kbtab.h> /* * This table is indexed by the scan codes. * The comments contain scan codes (in hex) and key * numbers (from the Commodore Keyboard Documentation, * in decimal). */ KEY ktab[] = { KINV, 0, 0, 0, /* Unused */ 0, CESC, CESC, 0, /* SC01 */ KC, '1', '!', ct('q'), /* SC02 */ KC, '2', '@', ct('r'), /* SC03 */ KC, '3', '#', ct('s'), /* SC04 */ KC, '4', '$', ct('t'), /* SC05 */ KC, '5', '%', ct('u'), /* SC06 */ KC, '6', '^', ct('v'), /* SC07 */ KC, '7', '&', ct('w'), /* SC08 */ KC, '8', '*', ct('x'), /* SC09 */ KC, '9', '(', ct('y'), /* SC0A */ KC, '0', ')', ct('p'), /* SC0B */ KC, '-', '_', ct('m'), /* SC0C */ KC, '=', '+', ct(']'), /* SC0D */ KC, '\b', '\b', CDEL, /* SC0E */ 0, '\t', '\t', 0, /* SC0F */ KCAP|KC, 'q', 'Q', ct('q'), /* SC10 */ KCAP|KC, 'w', 'W', ct('w'), /* SC11 */ KCAP|KC, 'e', 'E', ct('e'), /* SC12 */ KCAP|KC, 'r', 'R', ct('r'), /* SC13 */ KCAP|KC, 't', 'T', ct('t'), /* SC14 */ KCAP|KC, 'y', 'Y', ct('y'), /* SC15 */ KCAP|KC, 'u', 'U', ct('u'), /* SC16 */ KCAP|KC, 'i', 'I', ct('i'), /* SC17 */ KCAP|KC, 'o', 'O', ct('o'), /* SC18 */ KCAP|KC, 'p', 'P', ct('p'), /* SC19 */ KC, '[', '{', CESC, /* SC1A */ KC, ']', '}', 035, /* SC1B */ KC, '\r', '\r', '\r', /* SC1C */ KSHIFT, 0, 0, SCT, /* SC1D CTRL */ KCAP|KC, 'a', 'A', ct('a'), /* SC1E */ KCAP|KC, 's', 'S', ct('s'), /* SC1F */ KCAP|KC, 'd', 'D', ct('d'), /* SC20 */ KCAP|KC, 'f', 'F', ct('f'), /* SC21 */ KCAP|KC, 'g', 'G', ct('g'), /* SC22 */ KCAP|KC, 'h', 'H', ct('h'), /* SC23 */ KCAP|KC, 'j', 'J', ct('j'), /* SC24 */ KCAP|KC, 'k', 'K', ct('k'), /* SC25 */ KCAP|KC, 'l', 'L', ct('l'), /* SC26 */ 0, ';', ':', 0, /* SC27 */ 0, '\'', '"', 0, /* SC28 */ KC, '`', '~', ct('`'), /* SC29 */ KSHIFT, 0, 0, SS1, /* SC2A - Left Shift */ KC, '\\', '|', ct('|'), /* SC2B */ KCAP|KC, 'z', 'Z', ct('z'), /* SC2C */ KCAP|KC, 'x', 'X', ct('x'), /* SC2D */ KCAP|KC, 'c', 'C', ct('c'), /* SC2E */ KCAP|KC, 'v', 'V', ct('v'), /* SC2F */ KCAP|KC, 'b', 'B', ct('b'), /* SC30 */ KCAP|KC, 'n', 'N', ct('n'), /* SC31 */ KCAP|KC, 'm', 'M', ct('m'), /* SC32 */ 0, ',', '<', 0, /* SC33 */ 0, '.', '>', 0, /* SC34 */ 0, '/', '?', 0, /* SC35 */ KSHIFT, 0, 0, SS2, /* SC36 - Right Shift */ KC, '*', PF3, PF3, /* SC37 */ KSHIFT, 0, 0, SAL, /* SC38 - Alt Key */ KC, ' ', ' ', 0, /* SC39 */ KLOCK, 0, 0, SCL, /* SC3A - CAPS Lock */ KC, F1, F1, F1, /* SC3B, K1 */ KC, F2, F2, F2, /* SC3C, K2 */ KC, F3, F3, F3, /* SC3D, K3 */ KC, F4, F4, F4, /* SC3E, K4 */ KC, F5, F5, F5, /* SC3F, K5 */ KC, F6, F6, F6, /* SC40, K6 */ KC, F7, F7, F7, /* SC41, K7 */ KC, F8, F8, F8, /* SC42, K8 */ KC, F9, F9, F9, /* SC43, K9 */ KC, F10, F10, F10, /* SC44 */ KLOCK, 0, 0, SNL, /* SC45 */ KC, CSLOCK, CSLOCK, CBRK, /* SC46 */ KC|KNL, K7, '7', K7, /* SC47 */ KC|KNL, K8, '8', K8, /* SC48 */ KC|KNL, K9, '9', K9, /* SC49 */ KC, '-', '-', KMINUS, /* SC4A */ KC|KNL, K4, '4', K4, /* SC4B */ KC|KNL, K5, '5', K5, /* SC4C */ KC|KNL, K6, '6', K6, /* SC4D */ KC, '+', '+', KPLUS, /* SC4E */ KC|KNL, K1, '1', K1, /* SC4F */ KC|KNL, K2, '2', K2, /* SC50 */ KC|KNL, K3, '3', K3, /* SC51 */ KC|KNL, K0, '0', K0, /* SC52 */ KC|KNL, PF2, '.', PF2, /* SC53 */ };