|
|
1.1 root 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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.