typedef struct {
UINT8 pos;
UINT8 outdatas;
UINT8 indatas;
UINT8 flag;
} GDCCMD;
static const GDCCMD gdc_cmd[256] = {
{0, 0, 0, 0}, // 00 CMD_RESET
{0, 0, 0, 0}, // 01
{0, 0, 0, 0}, // 02
{0, 0, 0, 0}, // 03
{0, 0, 0, 0}, // 04
{0, 0, 0, 0}, // 05
{0, 0, 0, 0}, // 06
{0, 0, 0, 0}, // 07
{0, 0, 0, 0}, // 08
{0, 0, 0, 0}, // 09
{0, 0, 0, 0}, // 0a
{0, 0, 0, 0}, // 0b
{0, 0, 0, 0}, // 0c CMD_STOP
{0, 0, 0, 0}, // 0d CMD_START
{GDC_SYNC, 8, 0, 1}, // 0e CMD_SYNC_OFF
{GDC_SYNC, 8, 0, 1}, // 0f CMD_SYNC_ON
{0, 0, 0, 0}, // 10
{0, 0, 0, 0}, // 11
{0, 0, 0, 0}, // 12
{0, 0, 0, 0}, // 13
{0, 0, 0, 0}, // 14
{0, 0, 0, 0}, // 15
{0, 0, 0, 0}, // 16
{0, 0, 0, 0}, // 17
{0, 0, 0, 0}, // 18
{0, 0, 0, 0}, // 19
{0, 0, 0, 0}, // 1a
{0, 0, 0, 0}, // 1b
{0, 0, 0, 0}, // 1c
{0, 0, 0, 0}, // 1d
{0, 0, 0, 0}, // 1e
{0, 0, 0, 0}, // 1f
{0, 0, 0, 0}, // 20
{0, 0, 0, 0}, // 21
{0, 0, 0, 0}, // 22
{0, 0, 0, 0}, // 23
{0, 0, 0, 0}, // 24
{0, 0, 0, 0}, // 25
{0, 0, 0, 0}, // 26
{0, 0, 0, 0}, // 27
{0, 0, 0, 0}, // 28
{0, 0, 0, 0}, // 29
{0, 0, 0, 0}, // 2a
{0, 0, 0, 0}, // 2b
{0, 0, 0, 0}, // 2c
{0, 0, 0, 0}, // 2d
{0, 0, 0, 0}, // 2e
{0, 0, 0, 0}, // 2f
{0, 0, 0, 0}, // 30
{0, 0, 0, 0}, // 31
{0, 0, 0, 0}, // 32
{0, 0, 0, 0}, // 33
{0, 0, 0, 0}, // 34
{0, 0, 0, 0}, // 35
{0, 0, 0, 0}, // 36
{0, 0, 0, 0}, // 37
{0, 0, 0, 0}, // 38
{0, 0, 0, 0}, // 39
{0, 0, 0, 0}, // 3a
{0, 0, 0, 0}, // 3b
{0, 0, 0, 0}, // 3c
{0, 0, 0, 0}, // 3d
{0, 0, 0, 0}, // 3e
{0, 0, 0, 0}, // 3f
{0, 0, 0, 0}, // 40
{0, 0, 0, 0}, // 41
{0, 0, 0, 0}, // 42
{0, 0, 0, 0}, // 43
{0, 0, 0, 0}, // 44
{0, 0, 0, 0}, // 45
{GDC_ZOOM, 1, 0, 1}, // 46 // ver0.30
{GDC_PITCH, 1, 0, 1}, // 47
{0, 0, 0, 0}, // 48
{GDC_CSRW, 3, 0, 1}, // 49
{GDC_MASK, 2, 0, 0}, // 4a // ver0.29
{GDC_CSRFORM, 3, 0, 1}, // 4b CMD_CSRFORM
{GDC_VECTW, 11, 0, 0}, // 4c
{0, 0, 0, 0}, // 4d
{0, 0, 0, 0}, // 4e
{0, 0, 0, 0}, // 4f
{0, 0, 0, 0}, // 50
{0, 0, 0, 0}, // 51
{0, 0, 0, 0}, // 52
{0, 0, 0, 0}, // 53
{0, 0, 0, 0}, // 54
{0, 0, 0, 0}, // 55
{0, 0, 0, 0}, // 56
{0, 0, 0, 0}, // 57
{0, 0, 0, 0}, // 58
{0, 0, 0, 0}, // 59
{0, 0, 0, 0}, // 5a
{0, 0, 0, 0}, // 5b
{0, 0, 0, 0}, // 5c
{0, 0, 0, 0}, // 5d
{0, 0, 0, 0}, // 5e
{0, 0, 0, 0}, // 5f
{0, 0, 0, 0}, // 60
{0, 0, 0, 0}, // 61
{0, 0, 0, 0}, // 62
{0, 0, 0, 0}, // 63
{0, 0, 0, 0}, // 64
{0, 0, 0, 0}, // 65
{0, 0, 0, 0}, // 66
{0, 0, 0, 0}, // 67
{0, 0, 0, 0}, // 68
{0, 0, 0, 0}, // 69
{0, 0, 0, 0}, // 6a
{0, 0, 0, 0}, // 6b CMD_START_
{0, 0, 0, 0}, // 6c
{0, 0, 0, 0}, // 6d
{0, 0, 0, 0}, // 6e
{0, 0, 0, 0}, // 6f
{GDC_SCROLL+0, 16, 0, 1}, // 70 CMD_SCROLL
{GDC_SCROLL+1, 15, 0, 1}, // 71
{GDC_SCROLL+2, 14, 0, 1}, // 72
{GDC_SCROLL+3, 13, 0, 1}, // 73
{GDC_SCROLL+4, 12, 0, 1}, // 74
{GDC_SCROLL+5, 11, 0, 1}, // 75
{GDC_SCROLL+6, 10, 0, 1}, // 76
{GDC_SCROLL+7, 9, 0, 1}, // 77
{GDC_TEXTW+0, 8, 0, 1}, // 78 CMD_TEXTW
{GDC_TEXTW+1, 7, 0, 1}, // 79
{GDC_TEXTW+2, 6, 0, 1}, // 7a
{GDC_TEXTW+3, 5, 0, 1}, // 7b
{GDC_TEXTW+4, 4, 0, 1}, // 7c
{GDC_TEXTW+5, 3, 0, 1}, // 7d
{GDC_TEXTW+6, 2, 0, 1}, // 7e
{GDC_TEXTW+7, 1, 0, 1}, // 7f
{0, 0, 0, 0}, // 80
{0, 0, 0, 0}, // 81
{0, 0, 0, 0}, // 82
{0, 0, 0, 0}, // 83
{0, 0, 0, 0}, // 84
{0, 0, 0, 0}, // 85
{0, 0, 0, 0}, // 86
{0, 0, 0, 0}, // 87
{0, 0, 0, 0}, // 88
{0, 0, 0, 0}, // 89
{0, 0, 0, 0}, // 8a
{0, 0, 0, 0}, // 8b
{0, 0, 0, 0}, // 8c
{0, 0, 0, 0}, // 8d
{0, 0, 0, 0}, // 8e
{0, 0, 0, 0}, // 8f
{0, 0, 0, 0}, // 90
{0, 0, 0, 0}, // 91
{0, 0, 0, 0}, // 92
{0, 0, 0, 0}, // 93
{0, 0, 0, 0}, // 94
{0, 0, 0, 0}, // 95
{0, 0, 0, 0}, // 96
{0, 0, 0, 0}, // 97
{0, 0, 0, 0}, // 98
{0, 0, 0, 0}, // 99
{0, 0, 0, 0}, // 9a
{0, 0, 0, 0}, // 9b
{0, 0, 0, 0}, // 9c
{0, 0, 0, 0}, // 9d
{0, 0, 0, 0}, // 9e
{0, 0, 0, 0}, // 9f
{0, 0, 0, 0}, // a0
{0, 0, 0, 0}, // a1
{0, 0, 0, 0}, // a2
{0, 0, 0, 0}, // a3
{0, 0, 0, 0}, // a4
{0, 0, 0, 0}, // a5
{0, 0, 0, 0}, // a6
{0, 0, 0, 0}, // a7
{0, 0, 0, 0}, // a8
{0, 0, 0, 0}, // a9
{0, 0, 0, 0}, // aa
{0, 0, 0, 0}, // ab
{0, 0, 0, 0}, // ac
{0, 0, 0, 0}, // ad
{0, 0, 0, 0}, // ae
{0, 0, 0, 0}, // af
{0, 0, 0, 0}, // b0
{0, 0, 0, 0}, // b1
{0, 0, 0, 0}, // b2
{0, 0, 0, 0}, // b3
{0, 0, 0, 0}, // b4
{0, 0, 0, 0}, // b5
{0, 0, 0, 0}, // b6
{0, 0, 0, 0}, // b7
{0, 0, 0, 0}, // b8
{0, 0, 0, 0}, // b9
{0, 0, 0, 0}, // ba
{0, 0, 0, 0}, // bb
{0, 0, 0, 0}, // bc
{0, 0, 0, 0}, // bd
{0, 0, 0, 0}, // be
{0, 0, 0, 0}, // bf
{GDC_LPEN, 0, 3, 0}, // c0
{0, 0, 0, 0}, // c1
{0, 0, 0, 0}, // c2
{0, 0, 0, 0}, // c3
{0, 0, 0, 0}, // c4
{0, 0, 0, 0}, // c5
{0, 0, 0, 0}, // c6
{0, 0, 0, 0}, // c7
{0, 0, 0, 0}, // c8
{0, 0, 0, 0}, // c9
{0, 0, 0, 0}, // ca
{0, 0, 0, 0}, // cb
{0, 0, 0, 0}, // cc
{0, 0, 0, 0}, // cd
{0, 0, 0, 0}, // ce
{0, 0, 0, 0}, // cf
{0, 0, 0, 0}, // d0
{0, 0, 0, 0}, // d1
{0, 0, 0, 0}, // d2
{0, 0, 0, 0}, // d3
{0, 0, 0, 0}, // d4
{0, 0, 0, 0}, // d5
{0, 0, 0, 0}, // d6
{0, 0, 0, 0}, // d7
{0, 0, 0, 0}, // d8
{0, 0, 0, 0}, // d9
{0, 0, 0, 0}, // da
{0, 0, 0, 0}, // db
{0, 0, 0, 0}, // dc
{0, 0, 0, 0}, // dd
{0, 0, 0, 0}, // de
{0, 0, 0, 0}, // df
{GDC_CSRR, 0, 5, 0}, // e0
{0, 0, 0, 0}, // e1
{0, 0, 0, 0}, // e2
{0, 0, 0, 0}, // e3
{0, 0, 0, 0}, // e4
{0, 0, 0, 0}, // e5
{0, 0, 0, 0}, // e6
{0, 0, 0, 0}, // e7
{0, 0, 0, 0}, // e8
{0, 0, 0, 0}, // e9
{0, 0, 0, 0}, // ea
{0, 0, 0, 0}, // eb
{0, 0, 0, 0}, // ec
{0, 0, 0, 0}, // ed
{0, 0, 0, 0}, // ee
{0, 0, 0, 0}, // ef
{0, 0, 0, 0}, // f0
{0, 0, 0, 0}, // f1
{0, 0, 0, 0}, // f2
{0, 0, 0, 0}, // f3
{0, 0, 0, 0}, // f4
{0, 0, 0, 0}, // f5
{0, 0, 0, 0}, // f6
{0, 0, 0, 0}, // f7
{0, 0, 0, 0}, // f8
{0, 0, 0, 0}, // f9
{0, 0, 0, 0}, // fa
{0, 0, 0, 0}, // fb
{0, 0, 0, 0}, // fc
{0, 0, 0, 0}, // fd
{0, 0, 0, 0}, // fe
{0, 0, 0, 0}}; // ff
static const UINT8 gdc_dirtyflag[2][GDC_TERMDATA] = {
{ 0, // GDC_SYNC
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
0, // GDC_ZOOM
GDCSCRN_ALLDRAW2 | GDCSCRN_EXT, // GDC_CSRFORM
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_ALLDRAW2, // GDC_SCROLL
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2, // GDC_TEXTW
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
0, // GDC_PITCH
0, 0, 0, // GDC_LPEN
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // GDC_VECTW
GDCSCRN_EXT, // GDC_CSRW
GDCSCRN_EXT,
GDCSCRN_EXT,
0, 0, // GDC_MASK
0, 0, 0, 0, 0, // GDC_CSRR
0, // GDC_WRITE
0, 0, // GDC_CODE
},
{ 0, // GDC_SYNC
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT,
GDCSCRN_EXT | GDCSCRN_ALLDRAW2, // L/F
GDCSCRN_EXT | GDCSCRN_ALLDRAW2, // L/F
GDCSCRN_ALLDRAW2, // GDC_ZOOM
GDCSCRN_ALLDRAW2, // GDC_CSRFORM
0,
0,
GDCSCRN_ALLDRAW2, // GDC_SCROLL
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2, // GDC_TEXTW
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2,
GDCSCRN_ALLDRAW2, // GDC_PITCH
0, 0, 0, // GDC_LPEN
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // GDC_VECTW
0, 0, 0, // GDC_CSRW
0, 0, // GDC_MASK
0, 0, 0, 0, 0, // GDC_CSRR
0, // GDC_WRITE
0, 0, // GDC_CODE
}};
RetroPC.NET-CVS <cvs@retropc.net>