~ubuntu-branches/ubuntu/hardy/kvm/hardy-backports

« back to all changes in this revision

Viewing changes to vgabios/vgatables.h

  • Committer: Bazaar Package Importer
  • Author(s): Soren Hansen
  • Date: 2008-01-03 10:39:25 UTC
  • mfrom: (1.1.16 upstream)
  • Revision ID: james.westby@ubuntu.com-20080103103925-8480u7sq2646hvbh
Tags: 1:59+dfsg-0ubuntu1
* New upstream release
* Build with alsa support (cherry pick from 57+dfsg-2)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *
 
3
 * BIOS Memory 
 
4
 *
 
5
 */
 
6
#define BIOSMEM_SEG 0x40
 
7
 
 
8
#define BIOSMEM_INITIAL_MODE  0x10
 
9
#define BIOSMEM_CURRENT_MODE  0x49
 
10
#define BIOSMEM_NB_COLS       0x4A
 
11
#define BIOSMEM_PAGE_SIZE     0x4C
 
12
#define BIOSMEM_CURRENT_START 0x4E
 
13
#define BIOSMEM_CURSOR_POS    0x50
 
14
#define BIOSMEM_CURSOR_TYPE   0x60
 
15
#define BIOSMEM_CURRENT_PAGE  0x62
 
16
#define BIOSMEM_CRTC_ADDRESS  0x63
 
17
#define BIOSMEM_CURRENT_MSR   0x65
 
18
#define BIOSMEM_CURRENT_PAL   0x66
 
19
#define BIOSMEM_NB_ROWS       0x84
 
20
#define BIOSMEM_CHAR_HEIGHT   0x85
 
21
#define BIOSMEM_VIDEO_CTL     0x87
 
22
#define BIOSMEM_SWITCHES      0x88
 
23
#define BIOSMEM_MODESET_CTL   0x89
 
24
#define BIOSMEM_DCC_INDEX     0x8A
 
25
#define BIOSMEM_VS_POINTER    0xA8
 
26
#define BIOSMEM_VBE_FLAG      0xB9
 
27
#define BIOSMEM_VBE_MODE      0xBA
 
28
 
 
29
 
 
30
/*
 
31
 *
 
32
 * VGA registers
 
33
 *
 
34
 */
 
35
#define VGAREG_ACTL_ADDRESS            0x3c0
 
36
#define VGAREG_ACTL_WRITE_DATA         0x3c0
 
37
#define VGAREG_ACTL_READ_DATA          0x3c1
 
38
 
 
39
#define VGAREG_INPUT_STATUS            0x3c2
 
40
#define VGAREG_WRITE_MISC_OUTPUT       0x3c2
 
41
#define VGAREG_VIDEO_ENABLE            0x3c3
 
42
#define VGAREG_SEQU_ADDRESS            0x3c4
 
43
#define VGAREG_SEQU_DATA               0x3c5
 
44
 
 
45
#define VGAREG_PEL_MASK                0x3c6
 
46
#define VGAREG_DAC_STATE               0x3c7
 
47
#define VGAREG_DAC_READ_ADDRESS        0x3c7
 
48
#define VGAREG_DAC_WRITE_ADDRESS       0x3c8
 
49
#define VGAREG_DAC_DATA                0x3c9
 
50
 
 
51
#define VGAREG_READ_FEATURE_CTL        0x3ca
 
52
#define VGAREG_READ_MISC_OUTPUT        0x3cc
 
53
 
 
54
#define VGAREG_GRDC_ADDRESS            0x3ce
 
55
#define VGAREG_GRDC_DATA               0x3cf
 
56
 
 
57
#define VGAREG_MDA_CRTC_ADDRESS        0x3b4
 
58
#define VGAREG_MDA_CRTC_DATA           0x3b5
 
59
#define VGAREG_VGA_CRTC_ADDRESS        0x3d4
 
60
#define VGAREG_VGA_CRTC_DATA           0x3d5
 
61
 
 
62
#define VGAREG_MDA_WRITE_FEATURE_CTL   0x3ba
 
63
#define VGAREG_VGA_WRITE_FEATURE_CTL   0x3da
 
64
#define VGAREG_ACTL_RESET              0x3da
 
65
 
 
66
#define VGAREG_MDA_MODECTL             0x3b8
 
67
#define VGAREG_CGA_MODECTL             0x3d8
 
68
#define VGAREG_CGA_PALETTE             0x3d9
 
69
 
 
70
/* Video memory */
 
71
#define VGAMEM_GRAPH 0xA000
 
72
#define VGAMEM_CTEXT 0xB800
 
73
#define VGAMEM_MTEXT 0xB000
 
74
 
 
75
/*
 
76
 *
 
77
 * Tables of default values for each mode
 
78
 *
 
79
 */
 
80
#define MODE_MAX   15
 
81
#define TEXT       0x00
 
82
#define GRAPH      0x01
 
83
 
 
84
#define CTEXT      0x00
 
85
#define MTEXT      0x01
 
86
#define CGA        0x02
 
87
#define PLANAR1    0x03
 
88
#define PLANAR4    0x04
 
89
#define LINEAR8    0x05
 
90
 
 
91
// for SVGA
 
92
#define LINEAR15   0x10
 
93
#define LINEAR16   0x11
 
94
#define LINEAR24   0x12
 
95
#define LINEAR32   0x13
 
96
 
 
97
typedef struct
 
98
{Bit8u  svgamode;
 
99
 Bit8u  class;    /* TEXT, GRAPH */
 
100
 Bit8u  memmodel; /* CTEXT,MTEXT,CGA,PL1,PL2,PL4,P8,P15,P16,P24,P32 */
 
101
 Bit8u  pixbits;
 
102
 Bit16u sstart;
 
103
 Bit8u  pelmask;
 
104
 Bit8u  dacmodel; /* 0 1 2 3 */
 
105
} VGAMODES;
 
106
 
 
107
static VGAMODES vga_modes[MODE_MAX+1]=
 
108
{//mode  class  model bits sstart  pelm  dac
 
109
 {0x00, TEXT,  CTEXT,   4, 0xB800, 0xFF, 0x02},
 
110
 {0x01, TEXT,  CTEXT,   4, 0xB800, 0xFF, 0x02},
 
111
 {0x02, TEXT,  CTEXT,   4, 0xB800, 0xFF, 0x02},
 
112
 {0x03, TEXT,  CTEXT,   4, 0xB800, 0xFF, 0x02},
 
113
 {0x04, GRAPH, CGA,     2, 0xB800, 0xFF, 0x01},
 
114
 {0x05, GRAPH, CGA,     2, 0xB800, 0xFF, 0x01},
 
115
 {0x06, GRAPH, CGA,     1, 0xB800, 0xFF, 0x01},
 
116
 {0x07, TEXT,  MTEXT,   4, 0xB000, 0xFF, 0x00},
 
117
 {0x0D, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x01},
 
118
 {0x0E, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x01},
 
119
 {0x0F, GRAPH, PLANAR1, 1, 0xA000, 0xFF, 0x00},
 
120
 {0x10, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02},
 
121
 {0x11, GRAPH, PLANAR1, 1, 0xA000, 0xFF, 0x02},
 
122
 {0x12, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02},
 
123
 {0x13, GRAPH, LINEAR8, 8, 0xA000, 0xFF, 0x03},
 
124
 {0x6A, GRAPH, PLANAR4, 4, 0xA000, 0xFF, 0x02}
 
125
};
 
126
 
 
127
/* convert index in vga_modes[] to index in video_param_table[] */
 
128
static Bit8u line_to_vpti[MODE_MAX+1]={
 
129
    0x17, 0x17, 0x18, 0x18, 0x04, 0x05, 0x06, 0x07, 
 
130
    0x0d, 0x0e, 0x11, 0x12, 0x1a, 0x1b, 0x1c, 0x1d,
 
131
};
 
132
 
 
133
/* Default Palette */
 
134
#define DAC_MAX_MODEL 3
 
135
 
 
136
static Bit8u dac_regs[DAC_MAX_MODEL+1]=
 
137
{0x3f,0x3f,0x3f,0xff};
 
138
 
 
139
/* standard BIOS Video Parameter Table */
 
140
typedef struct {
 
141
    Bit8u  twidth;
 
142
    Bit8u  theightm1;
 
143
    Bit8u  cheight;
 
144
    Bit8u  slength_l;
 
145
    Bit8u  slength_h;
 
146
    Bit8u  sequ_regs[4];
 
147
    Bit8u  miscreg;
 
148
    Bit8u  crtc_regs[25];
 
149
    Bit8u  actl_regs[20];
 
150
    Bit8u  grdc_regs[9];
 
151
} VideoParamTableEntry;
 
152
 
 
153
static VideoParamTableEntry video_param_table[30] = {
 
154
{
 
155
 /* index=0x00 no mode defined */
 
156
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
157
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
158
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
159
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
160
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
161
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
162
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
163
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
164
},
 
165
{
 
166
 /* index=0x01 no mode defined */
 
167
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
168
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
169
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
170
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
171
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
172
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
173
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
174
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
175
},
 
176
{
 
177
 /* index=0x02 no mode defined */
 
178
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
179
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
180
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
181
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
182
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
183
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
184
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
185
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
186
},
 
187
{
 
188
 /* index=0x03 no mode defined */
 
189
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
190
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
191
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
192
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
193
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
194
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
195
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
196
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
197
},
 
198
{
 
199
 /* index=0x04 vga mode 0x04 */
 
200
 40, 24, 8, 0x00, 0x08, /* tw, th-1, ch, slength */
 
201
 0x09, 0x03, 0x00, 0x02, /* sequ_regs */
 
202
 0x63, /* miscreg */
 
203
 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f,
 
204
 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
205
 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
 
206
 0xff, /* crtc_regs */
 
207
 0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
 
208
 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 
209
 0x01, 0x00, 0x03, 0x00, /* actl_regs */
 
210
 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x0f, 0xff, /* grdc_regs */
 
211
},
 
212
{
 
213
 /* index=0x05 vga mode 0x05 */
 
214
 40, 24, 8, 0x00, 0x08, /* tw, th-1, ch, slength */
 
215
 0x09, 0x03, 0x00, 0x02, /* sequ_regs */
 
216
 0x63, /* miscreg */
 
217
 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f,
 
218
 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
219
 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
 
220
 0xff, /* crtc_regs */
 
221
 0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
 
222
 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 
223
 0x01, 0x00, 0x03, 0x00, /* actl_regs */
 
224
 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x0f, 0xff, /* grdc_regs */
 
225
},
 
226
{
 
227
 /* index=0x06 vga mode 0x06 */
 
228
 80, 24, 8, 0x00, 0x10, /* tw, th-1, ch, slength */
 
229
 0x01, 0x01, 0x00, 0x06, /* sequ_regs */
 
230
 0x63, /* miscreg */
 
231
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f,
 
232
 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
233
 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2,
 
234
 0xff, /* crtc_regs */
 
235
 0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
 
236
 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
 
237
 0x01, 0x00, 0x01, 0x00, /* actl_regs */
 
238
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0f, 0xff, /* grdc_regs */
 
239
},
 
240
{
 
241
 /* index=0x07 vga mode 0x07 */
 
242
 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */
 
243
 0x00, 0x03, 0x00, 0x02, /* sequ_regs */
 
244
 0x66, /* miscreg */
 
245
 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
 
246
 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
 
247
 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
 
248
 0xff, /* crtc_regs */
 
249
 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
 
250
 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
 
251
 0x0e, 0x00, 0x0f, 0x08, /* actl_regs */
 
252
 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x0f, 0xff, /* grdc_regs */
 
253
},
 
254
{
 
255
 /* index=0x08 no mode defined */
 
256
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
257
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
258
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
259
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
260
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
261
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
262
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
263
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
264
},
 
265
{
 
266
 /* index=0x09 no mode defined */
 
267
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
268
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
269
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
270
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
271
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
272
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
273
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
274
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
275
},
 
276
{
 
277
 /* index=0x0a no mode defined */
 
278
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
279
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
280
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
281
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
282
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
283
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
284
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
285
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
286
},
 
287
{
 
288
 /* index=0x0b no mode defined */
 
289
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
290
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
291
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
292
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
293
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
294
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
295
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
296
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
297
},
 
298
{
 
299
 /* index=0x0c no mode defined */
 
300
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
301
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
302
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
303
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
304
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
305
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
306
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
307
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
308
},
 
309
{
 
310
 /* index=0x0d vga mode 0x0d */
 
311
 40, 24, 8, 0x00, 0x20, /* tw, th-1, ch, slength */
 
312
 0x09, 0x0f, 0x00, 0x06, /* sequ_regs */
 
313
 0x63, /* miscreg */
 
314
 0x2d, 0x27, 0x28, 0x90, 0x2b, 0x80, 0xbf, 0x1f,
 
315
 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
316
 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3,
 
317
 0xff, /* crtc_regs */
 
318
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 
319
 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 
320
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
321
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
322
},
 
323
{
 
324
 /* index=0x0e vga mode 0x0e */
 
325
 80, 24, 8, 0x00, 0x40, /* tw, th-1, ch, slength */
 
326
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
327
 0x63, /* miscreg */
 
328
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f,
 
329
 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
330
 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3,
 
331
 0xff, /* crtc_regs */
 
332
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 
333
 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 
334
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
335
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
336
},
 
337
{
 
338
 /* index=0x0f no mode defined */
 
339
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
340
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
341
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
342
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
343
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
344
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
345
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
346
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
347
},
 
348
{
 
349
 /* index=0x10 no mode defined */
 
350
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
351
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
352
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
353
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
354
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
355
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
356
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
357
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
358
},
 
359
{
 
360
 /* index=0x11 vga mode 0x0f */
 
361
 80, 24, 14, 0x00, 0x80, /* tw, th-1, ch, slength */
 
362
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
363
 0xa3, /* miscreg */
 
364
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f,
 
365
 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
366
 0x83, 0x85, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
 
367
 0xff, /* crtc_regs */
 
368
 0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
 
369
 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
 
370
 0x01, 0x00, 0x01, 0x00, /* actl_regs */
 
371
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
372
},
 
373
{
 
374
 /* index=0x12 vga mode 0x10 */
 
375
 80, 24, 14, 0x00, 0x80, /* tw, th-1, ch, slength */
 
376
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
377
 0xa3, /* miscreg */
 
378
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f,
 
379
 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
380
 0x83, 0x85, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
 
381
 0xff, /* crtc_regs */
 
382
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 
383
 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 
384
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
385
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
386
},
 
387
{
 
388
 /* index=0x13 no mode defined */
 
389
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
390
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
391
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
392
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
393
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
394
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
395
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
396
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
397
},
 
398
{
 
399
 /* index=0x14 no mode defined */
 
400
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
401
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
402
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
403
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
404
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
405
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
406
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
407
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
408
},
 
409
{
 
410
 /* index=0x15 no mode defined */
 
411
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
412
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
413
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
414
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
415
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
416
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
417
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
418
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
419
},
 
420
{
 
421
 /* index=0x16 no mode defined */
 
422
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
423
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
424
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
425
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
426
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
427
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
428
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
429
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
430
},
 
431
{
 
432
 /* index=0x17 vga mode 0x01 */
 
433
 40, 24, 16, 0x00, 0x08, /* tw, th-1, ch, slength */
 
434
 0x08, 0x03, 0x00, 0x02, /* sequ_regs */
 
435
 0x67, /* miscreg */
 
436
 0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
 
437
 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
 
438
 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
 
439
 0xff, /* crtc_regs */
 
440
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 
441
 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 
442
 0x0c, 0x00, 0x0f, 0x08, /* actl_regs */
 
443
 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x0f, 0xff, /* grdc_regs */
 
444
},
 
445
{
 
446
 /* index=0x18 vga mode 0x03 */
 
447
 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */
 
448
 0x00, 0x03, 0x00, 0x02, /* sequ_regs */
 
449
 0x67, /* miscreg */
 
450
 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
 
451
 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
 
452
 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
 
453
 0xff, /* crtc_regs */
 
454
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 
455
 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 
456
 0x0c, 0x00, 0x0f, 0x08, /* actl_regs */
 
457
 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x0f, 0xff, /* grdc_regs */
 
458
},
 
459
{
 
460
 /* index=0x19 vga mode 0x07 */
 
461
 80, 24, 16, 0x00, 0x10, /* tw, th-1, ch, slength */
 
462
 0x00, 0x03, 0x00, 0x02, /* sequ_regs */
 
463
 0x66, /* miscreg */
 
464
 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
 
465
 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
 
466
 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
 
467
 0xff, /* crtc_regs */
 
468
 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
 
469
 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
 
470
 0x0e, 0x00, 0x0f, 0x08, /* actl_regs */
 
471
 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x0f, 0xff, /* grdc_regs */
 
472
},
 
473
{
 
474
 /* index=0x1a vga mode 0x11 */
 
475
 80, 29, 16, 0x00, 0x00, /* tw, th-1, ch, slength */
 
476
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
477
 0xe3, /* miscreg */
 
478
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
 
479
 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
480
 0xea, 0x8c, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
 
481
 0xff, /* crtc_regs */
 
482
 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f,
 
483
 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3f,
 
484
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
485
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
486
},
 
487
{
 
488
 /* index=0x1b vga mode 0x12 */
 
489
 80, 29, 16, 0x00, 0x00, /* tw, th-1, ch, slength */
 
490
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
491
 0xe3, /* miscreg */
 
492
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
 
493
 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
494
 0xea, 0x8c, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
 
495
 0xff, /* crtc_regs */
 
496
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 
497
 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 
498
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
499
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
500
},
 
501
{
 
502
 /* index=0x1c vga mode 0x13 */
 
503
 40, 24, 8, 0x00, 0x00, /* tw, th-1, ch, slength */
 
504
 0x01, 0x0f, 0x00, 0x0e, /* sequ_regs */
 
505
 0x63, /* miscreg */
 
506
 0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0xbf, 0x1f,
 
507
 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
508
 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3,
 
509
 0xff, /* crtc_regs */
 
510
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 
511
 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
 
512
 0x41, 0x00, 0x0f, 0x00, /* actl_regs */
 
513
 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff, /* grdc_regs */
 
514
},
 
515
{
 
516
 /* index=0x1d vga mode 0x6a */
 
517
 100, 36, 16, 0x00, 0x00, /* tw, th-1, ch, slength */
 
518
 0x01, 0x0f, 0x00, 0x06, /* sequ_regs */
 
519
 0xe3, /* miscreg */
 
520
 0x7f, 0x63, 0x63, 0x83, 0x6b, 0x1b, 0x72, 0xf0,
 
521
 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
522
 0x59, 0x8d, 0x57, 0x32, 0x00, 0x57, 0x73, 0xe3,
 
523
 0xff, /* crtc_regs */
 
524
 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
 
525
 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 
526
 0x01, 0x00, 0x0f, 0x00, /* actl_regs */
 
527
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f, 0xff, /* grdc_regs */
 
528
},
 
529
};
 
530
 
 
531
/* Mono */
 
532
static Bit8u palette0[63+1][3]=
 
533
{
 
534
  0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
 
535
  0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,
 
536
  0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,
 
537
  0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f,
 
538
  0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,
 
539
  0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,
 
540
  0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,
 
541
  0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f, 0x3f,0x3f,0x3f 
 
542
};
 
543
 
 
544
static Bit8u palette1[63+1][3]=
 
545
{
 
546
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
 
547
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
 
548
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f,
 
549
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f,
 
550
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
 
551
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
 
552
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f,
 
553
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f 
 
554
};
 
555
 
 
556
static Bit8u palette2[63+1][3]=
 
557
{
 
558
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x2a,0x00, 0x2a,0x2a,0x2a,
 
559
  0x00,0x00,0x15, 0x00,0x00,0x3f, 0x00,0x2a,0x15, 0x00,0x2a,0x3f, 0x2a,0x00,0x15, 0x2a,0x00,0x3f, 0x2a,0x2a,0x15, 0x2a,0x2a,0x3f,
 
560
  0x00,0x15,0x00, 0x00,0x15,0x2a, 0x00,0x3f,0x00, 0x00,0x3f,0x2a, 0x2a,0x15,0x00, 0x2a,0x15,0x2a, 0x2a,0x3f,0x00, 0x2a,0x3f,0x2a,
 
561
  0x00,0x15,0x15, 0x00,0x15,0x3f, 0x00,0x3f,0x15, 0x00,0x3f,0x3f, 0x2a,0x15,0x15, 0x2a,0x15,0x3f, 0x2a,0x3f,0x15, 0x2a,0x3f,0x3f,
 
562
  0x15,0x00,0x00, 0x15,0x00,0x2a, 0x15,0x2a,0x00, 0x15,0x2a,0x2a, 0x3f,0x00,0x00, 0x3f,0x00,0x2a, 0x3f,0x2a,0x00, 0x3f,0x2a,0x2a,
 
563
  0x15,0x00,0x15, 0x15,0x00,0x3f, 0x15,0x2a,0x15, 0x15,0x2a,0x3f, 0x3f,0x00,0x15, 0x3f,0x00,0x3f, 0x3f,0x2a,0x15, 0x3f,0x2a,0x3f,
 
564
  0x15,0x15,0x00, 0x15,0x15,0x2a, 0x15,0x3f,0x00, 0x15,0x3f,0x2a, 0x3f,0x15,0x00, 0x3f,0x15,0x2a, 0x3f,0x3f,0x00, 0x3f,0x3f,0x2a,
 
565
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f 
 
566
};
 
567
 
 
568
static Bit8u palette3[256][3]=
 
569
{
 
570
  0x00,0x00,0x00, 0x00,0x00,0x2a, 0x00,0x2a,0x00, 0x00,0x2a,0x2a, 0x2a,0x00,0x00, 0x2a,0x00,0x2a, 0x2a,0x15,0x00, 0x2a,0x2a,0x2a,
 
571
  0x15,0x15,0x15, 0x15,0x15,0x3f, 0x15,0x3f,0x15, 0x15,0x3f,0x3f, 0x3f,0x15,0x15, 0x3f,0x15,0x3f, 0x3f,0x3f,0x15, 0x3f,0x3f,0x3f,
 
572
  0x00,0x00,0x00, 0x05,0x05,0x05, 0x08,0x08,0x08, 0x0b,0x0b,0x0b, 0x0e,0x0e,0x0e, 0x11,0x11,0x11, 0x14,0x14,0x14, 0x18,0x18,0x18,
 
573
  0x1c,0x1c,0x1c, 0x20,0x20,0x20, 0x24,0x24,0x24, 0x28,0x28,0x28, 0x2d,0x2d,0x2d, 0x32,0x32,0x32, 0x38,0x38,0x38, 0x3f,0x3f,0x3f,
 
574
  0x00,0x00,0x3f, 0x10,0x00,0x3f, 0x1f,0x00,0x3f, 0x2f,0x00,0x3f, 0x3f,0x00,0x3f, 0x3f,0x00,0x2f, 0x3f,0x00,0x1f, 0x3f,0x00,0x10,
 
575
  0x3f,0x00,0x00, 0x3f,0x10,0x00, 0x3f,0x1f,0x00, 0x3f,0x2f,0x00, 0x3f,0x3f,0x00, 0x2f,0x3f,0x00, 0x1f,0x3f,0x00, 0x10,0x3f,0x00,
 
576
  0x00,0x3f,0x00, 0x00,0x3f,0x10, 0x00,0x3f,0x1f, 0x00,0x3f,0x2f, 0x00,0x3f,0x3f, 0x00,0x2f,0x3f, 0x00,0x1f,0x3f, 0x00,0x10,0x3f,
 
577
  0x1f,0x1f,0x3f, 0x27,0x1f,0x3f, 0x2f,0x1f,0x3f, 0x37,0x1f,0x3f, 0x3f,0x1f,0x3f, 0x3f,0x1f,0x37, 0x3f,0x1f,0x2f, 0x3f,0x1f,0x27,
 
578
 
 
579
  0x3f,0x1f,0x1f, 0x3f,0x27,0x1f, 0x3f,0x2f,0x1f, 0x3f,0x37,0x1f, 0x3f,0x3f,0x1f, 0x37,0x3f,0x1f, 0x2f,0x3f,0x1f, 0x27,0x3f,0x1f,
 
580
  0x1f,0x3f,0x1f, 0x1f,0x3f,0x27, 0x1f,0x3f,0x2f, 0x1f,0x3f,0x37, 0x1f,0x3f,0x3f, 0x1f,0x37,0x3f, 0x1f,0x2f,0x3f, 0x1f,0x27,0x3f,
 
581
  0x2d,0x2d,0x3f, 0x31,0x2d,0x3f, 0x36,0x2d,0x3f, 0x3a,0x2d,0x3f, 0x3f,0x2d,0x3f, 0x3f,0x2d,0x3a, 0x3f,0x2d,0x36, 0x3f,0x2d,0x31,
 
582
  0x3f,0x2d,0x2d, 0x3f,0x31,0x2d, 0x3f,0x36,0x2d, 0x3f,0x3a,0x2d, 0x3f,0x3f,0x2d, 0x3a,0x3f,0x2d, 0x36,0x3f,0x2d, 0x31,0x3f,0x2d,
 
583
  0x2d,0x3f,0x2d, 0x2d,0x3f,0x31, 0x2d,0x3f,0x36, 0x2d,0x3f,0x3a, 0x2d,0x3f,0x3f, 0x2d,0x3a,0x3f, 0x2d,0x36,0x3f, 0x2d,0x31,0x3f,
 
584
  0x00,0x00,0x1c, 0x07,0x00,0x1c, 0x0e,0x00,0x1c, 0x15,0x00,0x1c, 0x1c,0x00,0x1c, 0x1c,0x00,0x15, 0x1c,0x00,0x0e, 0x1c,0x00,0x07,
 
585
  0x1c,0x00,0x00, 0x1c,0x07,0x00, 0x1c,0x0e,0x00, 0x1c,0x15,0x00, 0x1c,0x1c,0x00, 0x15,0x1c,0x00, 0x0e,0x1c,0x00, 0x07,0x1c,0x00,
 
586
  0x00,0x1c,0x00, 0x00,0x1c,0x07, 0x00,0x1c,0x0e, 0x00,0x1c,0x15, 0x00,0x1c,0x1c, 0x00,0x15,0x1c, 0x00,0x0e,0x1c, 0x00,0x07,0x1c,
 
587
 
 
588
  0x0e,0x0e,0x1c, 0x11,0x0e,0x1c, 0x15,0x0e,0x1c, 0x18,0x0e,0x1c, 0x1c,0x0e,0x1c, 0x1c,0x0e,0x18, 0x1c,0x0e,0x15, 0x1c,0x0e,0x11,
 
589
  0x1c,0x0e,0x0e, 0x1c,0x11,0x0e, 0x1c,0x15,0x0e, 0x1c,0x18,0x0e, 0x1c,0x1c,0x0e, 0x18,0x1c,0x0e, 0x15,0x1c,0x0e, 0x11,0x1c,0x0e,
 
590
  0x0e,0x1c,0x0e, 0x0e,0x1c,0x11, 0x0e,0x1c,0x15, 0x0e,0x1c,0x18, 0x0e,0x1c,0x1c, 0x0e,0x18,0x1c, 0x0e,0x15,0x1c, 0x0e,0x11,0x1c,
 
591
  0x14,0x14,0x1c, 0x16,0x14,0x1c, 0x18,0x14,0x1c, 0x1a,0x14,0x1c, 0x1c,0x14,0x1c, 0x1c,0x14,0x1a, 0x1c,0x14,0x18, 0x1c,0x14,0x16,
 
592
  0x1c,0x14,0x14, 0x1c,0x16,0x14, 0x1c,0x18,0x14, 0x1c,0x1a,0x14, 0x1c,0x1c,0x14, 0x1a,0x1c,0x14, 0x18,0x1c,0x14, 0x16,0x1c,0x14,
 
593
  0x14,0x1c,0x14, 0x14,0x1c,0x16, 0x14,0x1c,0x18, 0x14,0x1c,0x1a, 0x14,0x1c,0x1c, 0x14,0x1a,0x1c, 0x14,0x18,0x1c, 0x14,0x16,0x1c,
 
594
  0x00,0x00,0x10, 0x04,0x00,0x10, 0x08,0x00,0x10, 0x0c,0x00,0x10, 0x10,0x00,0x10, 0x10,0x00,0x0c, 0x10,0x00,0x08, 0x10,0x00,0x04,
 
595
  0x10,0x00,0x00, 0x10,0x04,0x00, 0x10,0x08,0x00, 0x10,0x0c,0x00, 0x10,0x10,0x00, 0x0c,0x10,0x00, 0x08,0x10,0x00, 0x04,0x10,0x00,
 
596
 
 
597
  0x00,0x10,0x00, 0x00,0x10,0x04, 0x00,0x10,0x08, 0x00,0x10,0x0c, 0x00,0x10,0x10, 0x00,0x0c,0x10, 0x00,0x08,0x10, 0x00,0x04,0x10,
 
598
  0x08,0x08,0x10, 0x0a,0x08,0x10, 0x0c,0x08,0x10, 0x0e,0x08,0x10, 0x10,0x08,0x10, 0x10,0x08,0x0e, 0x10,0x08,0x0c, 0x10,0x08,0x0a,
 
599
  0x10,0x08,0x08, 0x10,0x0a,0x08, 0x10,0x0c,0x08, 0x10,0x0e,0x08, 0x10,0x10,0x08, 0x0e,0x10,0x08, 0x0c,0x10,0x08, 0x0a,0x10,0x08,
 
600
  0x08,0x10,0x08, 0x08,0x10,0x0a, 0x08,0x10,0x0c, 0x08,0x10,0x0e, 0x08,0x10,0x10, 0x08,0x0e,0x10, 0x08,0x0c,0x10, 0x08,0x0a,0x10,
 
601
  0x0b,0x0b,0x10, 0x0c,0x0b,0x10, 0x0d,0x0b,0x10, 0x0f,0x0b,0x10, 0x10,0x0b,0x10, 0x10,0x0b,0x0f, 0x10,0x0b,0x0d, 0x10,0x0b,0x0c,
 
602
  0x10,0x0b,0x0b, 0x10,0x0c,0x0b, 0x10,0x0d,0x0b, 0x10,0x0f,0x0b, 0x10,0x10,0x0b, 0x0f,0x10,0x0b, 0x0d,0x10,0x0b, 0x0c,0x10,0x0b,
 
603
  0x0b,0x10,0x0b, 0x0b,0x10,0x0c, 0x0b,0x10,0x0d, 0x0b,0x10,0x0f, 0x0b,0x10,0x10, 0x0b,0x0f,0x10, 0x0b,0x0d,0x10, 0x0b,0x0c,0x10,
 
604
  0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00
 
605
};
 
606
 
 
607
static Bit8u static_functionality[0x10]=
 
608
{
 
609
 /* 0 */ 0xff,  // All modes supported #1
 
610
 /* 1 */ 0xe0,  // All modes supported #2
 
611
 /* 2 */ 0x0f,  // All modes supported #3
 
612
 /* 3 */ 0x00, 0x00, 0x00, 0x00,  // reserved
 
613
 /* 7 */ 0x07,  // 200, 350, 400 scan lines
 
614
 /* 8 */ 0x02,  // mamimum number of visible charsets in text mode
 
615
 /* 9 */ 0x08,  // total number of charset blocks in text mode
 
616
 /* a */ 0xe7,  // Change to add new functions
 
617
 /* b */ 0x0c,  // Change to add new functions
 
618
 /* c */ 0x00,  // reserved
 
619
 /* d */ 0x00,  // reserved
 
620
 /* e */ 0x00,  // Change to add new functions
 
621
 /* f */ 0x00   // reserved
 
622
};