typedef struct {
UINT8 num;
char str[7];
} KEYNAME;
static const KEYNAME keyname[] = {
{0x00, "ESC"},
{0x01, "1"},
{0x02, "2"},
{0x03, "3"},
{0x04, "4"},
{0x05, "5"},
{0x06, "6"},
{0x07, "7"},
{0x08, "8"},
{0x09, "9"},
{0x0a, "0"},
{0x0b, "-"},
{0x0c, "^"},
{0x0d, "\\"},
{0x0e, "BS"},
{0x0f, "TAB"},
{0x10, "Q"},
{0x11, "W"},
{0x12, "E"},
{0x13, "R"},
{0x14, "T"},
{0x15, "Y"},
{0x16, "U"},
{0x17, "I"},
{0x18, "O"},
{0x19, "P"},
{0x1a, "@"},
{0x1b, "["},
{0x1c, "RET"}, {0x1c, "ENTER"},
{0x1d, "A"},
{0x1e, "S"},
{0x1f, "D"},
{0x20, "F"},
{0x21, "G"},
{0x22, "H"},
{0x23, "J"},
{0x24, "K"},
{0x25, "L"},
{0x26, ";"},
{0x27, ":"},
{0x28, "]"},
{0x29, "Z"},
{0x2a, "X"},
{0x2b, "C"},
{0x2c, "V"},
{0x2d, "B"},
{0x2e, "N"},
{0x2f, "M"},
{0x30, ","},
{0x31, "."},
{0x32, "/"},
{0x33, "_"},
{0x34, "SPC"},
{0x35, "XFER"},
{0x36, "RLUP"},
{0x37, "RLDN"},
{0x38, "INS"},
{0x39, "DEL"},
{0x3a, "UP"},
{0x3b, "LEFT"},
{0x3c, "RIGHT"},
{0x3d, "DOWN"},
{0x3e, "HOME"}, {0x3e, "HMCR"},
{0x3f, "HELP"}, {0x3f, "END"},
{0x40, "[-]"},
{0x41, "[/]"},
{0x42, "[7]"},
{0x43, "[8]"},
{0x44, "[9]"},
{0x45, "[*]"},
{0x46, "[4]"},
{0x47, "[5]"},
{0x48, "[6]"},
{0x49, "[+]"},
{0x4a, "[1]"},
{0x4b, "[2]"},
{0x4c, "[3]"},
{0x4d, "[=]"},
{0x4e, "[0]"},
{0x4f, "[,]"},
{0x50, "[.]"},
{0x51, "NFER"},
{0x52, "VF1"},
{0x53, "VF2"},
{0x54, "VF3"},
{0x55, "VF4"},
{0x56, "VF5"},
{0x60, "STOP"},
{0x61, "COPY"},
{0x62, "F1"},
{0x63, "F2"},
{0x64, "F3"},
{0x65, "F4"},
{0x66, "F5"},
{0x67, "F6"},
{0x68, "F7"},
{0x69, "F8"},
{0x6a, "F9"},
{0x6b, "F10"},
{0x70, "SHIFT"},
{0x71, "CAPS"},
{0x72, "KANA"},
{0x73, "GRPH"}, {0x73, "ALT"},
{0x74, "CTRL"}};
// ----
static const UINT8 joykeytable[12] = {
0x2a, 0x34,
0x29, 0x1c,
0x3c, 0x48,
0x3b, 0x46,
0x3d, 0x4b,
0x3a, 0x43};
static const UINT8 kbexflag[0x80] = {
// ESC, P, Q, R, S, T, U, V ; 00h
0, 0, 0, 0, 0, 0, 0, 0,
// W, X, O, |, O, , BS, TAB ; 08h
0, 0, 0, 0, 0, 0, 0, 0,
// p, v, d, q, s, x, t, h ; 10h
0, 0, 0, 0, 0, 0, 0, 0,
// n, o, , m, Ret, `, r, c ; 18h
0, 0, 0, 0, 1, 0, 0, 0,
// e, f, g, i, j, k, G, F ; 20h
0, 0, 0, 0, 0, 0, 0, 0,
// n, y, w, b, u, a, m, l ; 28h
0, 1, 1, 0, 0, 0, 0, 0,
// C, D, ^, Q, SPC,XFER,RLUP,RLDN ; 30h
0, 0, 0, 0, 1, 0, 0, 0,
// INS, DEL, , , , ,HMCR,HELP ; 38h
2, 0, 1, 1, 1, 1, 0, 0,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T> ; 40h
0, 0, 0, 1, 0, 0, 1, 0,
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C> ; 48h
1, 0, 0, 1, 0, 0, 0, 0,
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, ; 50h
0, 0, 2, 2, 2, 2, 2, 0,
// , , , , , ,HOME, ; 58h
0, 0, 0, 0, 0, 0, 0, 0,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6 ; 60h
0, 0, 2, 2, 2, 2, 2, 2,
// f.7, f.8, f.9, f10, , , , ; 68h
2, 2, 2, 2, 0, 0, 0, 0,
// SFT,CAPS,KANA,GRPH,CTRL, , , ; 70h
2, 2, 2, 2, 2, 0, 0, 0,
// , , , , , , , ; 78h
0, 0, 0, 0, 0, 0, 0, 0};
static const UINT8 mousedelta[] = {1, 1, 1, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4};
#define MOUSESTEPMAX ((sizeof(mousedelta) / sizeof(UINT8)) - 1)
RetroPC.NET-CVS <cvs@retropc.net>