|
|
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 - metrics - 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 */
};