static const UINT8 keytbl[6][0x80] = {
// ESC, P, Q, R, S, T, U, V, 0x00 normal
{ 0x1b, '1', '2', '3', '4', '5', '6', '7',
// W, X, O, |, O, , BS , TAB, 0x08
'8', '9', '0', '-', '^',0x5c,0x08,0x09,
// p, v, d, q, s, x, t, h, 0x10
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
// n, o, , m, Ret, `, r, c, 0x18
'o', 'p', '@', '[',0x0d, 'a', 's', 'd',
// e, f, g, i, j, k, G, F, 0x20
'f', 'g', 'h', 'j', 'k', 'l', ';', ':',
// n, y, w, b, u, a, m, l, 0x28
']', 'z', 'x', 'c', 'v', 'b', 'n', 'm',
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
',', '.', '/', '_',0x20,0xfe,0x06,0x02,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x12,0x08,0x1e,0x1d,0x1c,0x1f,0x0b,0xc3,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
'-', '/', '7', '8', '9',0x2a, '4', '5',
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
'6', '+', '1', '2', '3', '=', '0', ',',
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
'.',0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x13,0x00, 'q', 'r', 's', 't', 'u',0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
// ESC, P, Q, R, S, T, U, V, 0x00 shift
{ 0x1b, '!',0x22, '#', '$',0x25, '&',0x27,
// W, X, O, |, O, , BS , TAB, 0x08
'(', ')', '0', '=',0x60,0x7c,0x12,0x09,
// p, v, d, q, s, x, t, h, 0x10
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
// n, o, , m, ret, `, r, c, 0x18
'O', 'P',0x7e, '{',0x0d, 'A', 'S', 'D',
// e, f, g, i, j, k, G, F, 0x20
'F', 'G', 'H', 'J', 'K', 'L', '+',0x2a,
// n, y, w, b, u, a, m, l, 0x28
'}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M',
// C, D, ^, Q, SPC,XFER,RLUP,RLDN, 0x30
'<', '>',0x3f, '_',0x20,0xff,0x06,0x02,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x12,0x08,0x1e,0x1d,0x1c,0x1f,0x0c,0xc5,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
'-', '/', '7', '8', '9',0x2a, '4', '5',
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
'6', '+', '1', '2', '3', '=', '0', ',',
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
'.',0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x03,0x00, 'v', 'w', 'x', 'y', 'z',0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
// ESC, P, Q, R, S, T, U, V, 0x00 grph
{ 0x00,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
// W, X, O, |, O, , BS , TAB, 0x08
0xf8,0xf9,0xfa,0x8c,0x8b,0xfb,0x00,0x00,
// p, v, d, q, s, x, t, h, 0x10
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
// n, o, , m, Ret, `, r, c, 0x18
0xf0,0x8d,0x8a,0xfc,0x00,0x7f,0xe9,0xea,
// e, f, g, i, j, k, G, F, 0x20
0xeb,0xec,0xed,0xee,0xef,0x8e,0x89,0xfd,
// n, y, w, b, u, a, m, l, 0x28
0xe8,0x80,0x81,0x82,0x83,0x84,0x85,0x86,
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
0x87,0x88,0xfe,0xff,0x00,0xff,0x00,0x00,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
0x9c,0x9e,0x9a,0x93,0x97,0x9b,0x95,0x96,
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
0x94,0x9d,0x99,0x92,0x98,0x90,0x8f,0x9f,
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
// ESC, P, Q, R, S, T, U, V, 0x00 ctrl
{ 0x1b, '1', '2', '3', '4', '5', '6', '7',
// W, X, O, |, O, , BS , TAB, 0x08
'8', '9', '0',0x00,0x1e,0x1c,0x08,0x09,
// p, v, d, q, s, x, t, h, 0x10
0x11,0x17,0x05,0x12,0x14,0x19,0x15,0x09,
// n, o, , m, Ret, `, r, c, 0x18
0x0f,0x10, '@',0x1b,0x0d,0x01,0x13,0x04,
// e, f, g, i, j, k, G, F, 0x20
0x06,0x07,0x08,0x0a,0x0b,0x0c, ';', ':',
// n, y, w, b, u, a, m, l, 0x28
0x1d,0x1a,0x18,0x03,0x16,0x02,0x0e,0x0d,
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
0x00,0x00,0x00,0x1f, ' ',0xff,0x06,0x02,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x12,0x08,0x1e,0x1d,0x1c,0x1f,0x0b,0xc5,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
'-', '/', '7', '8', '9',0x2a, '4', '5',
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
'6', '+', '1', '2', '3', '=', '0', ',',
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
'.',0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
// ESC, P, Q, R, S, T, U, V, 0x00 kana
{ 0x1b, '', '', '', '', '', '', '',
// W, X, O, |, O, , BS , TAB, 0x08
'', '', '', '', '', '',0x08,0x09,
// p, v, d, q, s, x, t, h, 0x10
'', '', '', '', '', '', '', '',
// n, o, , m, Ret, `, r, c, 0x18
'', '', '', '',0x0d, '', '', '',
// e, f, g, i, j, k, G, F, 0x20
'', '', '', '', '', '', '', '',
// n, y, w, b, u, a, m, l, 0x28
'', '', '', '', '', '', '', '',
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
'', '', '', '',0x20,0xfe,0x06,0x02,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x12,0x08,0x1e,0x1d,0x1c,0x1f,0x0b,0xc5,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
'-', '/', '7', '8', '9',0x2a, '4', '5',
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
'6', '+', '1', '2', '3', '=', '0', ',',
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
'.',0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x13,0x00, 'q', 'r', 's', 't', 'u',0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
// ESC, P, Q, R, S, T, U, V, 0x00 kana+shift
{ 0x1b, '', '', '', '', '', '', '',
// W, X, O, |, O, , BS , TAB, 0x08
'', '', '', '', '', '',0x12,0x09,
// p, v, d, q, s, x, t, h, 0x10
'', '', '', '', '', '', '', '',
// n, o, , m, Ret, `, r, c, 0x18
'', '', '', '',0x0d, '', '', '',
// e, f, g, i, j, k, G, F, 0x20
'', '', '', '', '', '', '', '',
// n, y, w, b, u, a, m, l, 0x28
'', '', '', '', '', '', '', '',
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
'', '', '', '',0x20,0xfe,0x06,0x02,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x12,0x08,0x1e,0x1d,0x1c,0x1f,0x0b,0xc5,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
'-', '/', '7', '8', '9',0x2a, '4', '5',
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
'6', '+', '1', '2', '3', '=', '0', ',',
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
'.',0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x03,0x00, 'v', 'w', 'x', 'y', 'z',0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}};
static const UINT8 keyflag[0x80] = {
// ESC, P, Q, R, S, T, U, V, 0x00
0x27,0x26,0x00,0x00,0x00,0x00,0x00,0x00,
// W, X, O, |, O, , BS , TAB, 0x08
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,
// p, v, d, q, s, x, t, h, 0x10
0x37,0x36,0x35,0x00,0x00,0x00,0x00,0x00,
// n, o, , m, Ret, `, r, c, 0x18
0x00,0x00,0x00,0x00,0x20,0x34,0x00,0x33,
// e, f, g, i, j, k, G, F, 0x20
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// n, y, w, b, u, a, m, l, 0x28
0x00,0x32,0x31,0x30,0x00,0x00,0x00,0x00,
// C, D, ^, Q, SPC,XFER,R UP,RDWN, 0x30
0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,
// INS, DEL, , , , ,HMCR,HELP, 0x38
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T>, 0x40
0xa5,0x00,0xaf,0xac,0xaa,0xa3,0xae,0x80,
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C>, 0x48
0xa9,0xa4,0xad,0xab,0xa8,0x00,0x80,0x00,
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, , 0x50
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// , , , , , ,HOME, , 0x58
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// STOP,COPY, f.1, f.2, f.3, f.4, f.5, f.6, 0x60
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
// f.7, f.8, f.9,f.10, , , , , 0x68
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// SHFT,CAPS,Ji,GRPH,CTRL, , , , 0x70
0x42,0x48,0x44,0x50,0x41,0x00,0x00,0x00,
// , , , , , , , , 0x78
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
static const UINT8 joyflag[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,0x45, 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,0x45,0x46,0x47,0x44, 0, 0, 0,
// C, D, ^, Q, SPC,XFER,RLUP,RLDN ; 30h
0, 0, 0, 0,0x46, 0, 0, 0,
// INS, DEL, , , , ,HMCR,HELP ; 38h
0, 0,0x40,0x42,0x43,0x41, 0, 0,
// <|>,<^>,<V>,<W>,<X>,<>,<S>,<T> ; 40h
0, 0, 0,0x40, 0, 0,0x42, 0,
// <U>,<{>,<P>,<Q>,<R>,<>,<O>,<C> ; 48h
0x43, 0, 0,0x41, 0, 0, 0, 0,
// <D>,NFER,vf.1,vf.2,vf.3,vf.4,vf.5, ; 50h
0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0,
// f.7, f.8, f.9, f10, , , , ; 68h
0, 0, 0, 0, 0, 0, 0, 0,
// SFT,CAPS,KANA,GRPH,CTRL, , , ; 70h
0, 0, 0, 0, 0, 0, 0, 0,
// , , , , ,RSFT, , ; 78h
0, 0, 0, 0, 0, 0, 0, 0};
RetroPC.NET-CVS <cvs@retropc.net>