|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1991-1992 Microsoft Corporation
4:
5: Module Name:
6:
7: xga.h
8:
9: Abstract:
10:
11: This module contains the global structures and definitions used
12: by the xga driver.
13:
14: Environment:
15:
16: Kernel mode
17:
18: Revision History:
19:
20:
21: --*/
22:
23: //
24: // bit field of types of board recognized by the device
25: //
26:
27: #define XGA_TYPE_1 1 // IBM XGA 1 board
28: #define XGA_TYPE_2 2 // IBM XGA 2 board
29:
30: //
31: // Resource Sizes
32: //
33:
34: #define XGA_IO_REGS_SIZE 0x0010
35: #define XGA_CO_PROCESSOR_REGS_SIZE 0x0080
36: #define XGA_ROM_SIZE 0x1C00
37:
38: //
39: // XGA I/O register definitions
40: //
41:
42: #define OP_MODE_REG 0x0
43: #define APP_CTL_REG 0x1
44: #define INT_ENABLE_REG 0x4
45: #define INT_STATUS_REG 0x5
46: #define VMEM_CONTROL_REG 0x6
47: #define APP_INDEX_REG 0x8
48: #define MEMACC_MODE_REG 0x9
49: #define INDEX_REG 0xA
50: #define DATA_IN_REG 0xB
51: #define DATA_OUT_REG 0xC
52: #define INDEX_OR_REG 0xFE
53: #define END_OF_SWITCH 0xFF
54:
55: //
56: // Pos register masks
57: //
58:
59: #define ROM_MASK 0xF0
60: #define INST_MASK 0x0E
61: #define EN_MASK 0x01
62:
63: #define VIDEO_MEM_MASK 0xFE
64: #define VIDEO_ENABLE_MASK 0x01
65:
66: #define XGAOUT(reg, val) \
67: VideoPortWritePortUchar((PUCHAR)(hwDeviceExtension->IoRegBaseAddress+reg), val)
68:
69:
70: #define XGAIDXOUT(reg, index, val) \
71: VideoPortWritePortUshort((PUSHORT)(hwDeviceExtension->IoRegBaseAddress+reg), (USHORT)((val << 8) + index))
72:
73:
74: //
75: // Mode set tables
76: //
77:
78: //
79: // Table entries on which the mode switch routine is based on.
80: //
81:
82: typedef struct _MODE_REGISTER_DATA_TABLE {
83: UCHAR Port;
84: UCHAR IndexPort;
85: UCHAR Data;
86: } MODE_REGISTER_DATA_TABLE, *PMODE_REGISTER_DATA_TABLE;
87:
88:
89: //
90: // XGA 1 mode tables
91: //
92:
93: MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_64_GR[] = {
94:
95: INT_ENABLE_REG, 0x00, 0x00,
96: INT_STATUS_REG, 0x00, 0x00,
97: OP_MODE_REG, 0x00, 0x00,
98: INDEX_REG, 0x64, 0x00,
99: APP_CTL_REG, 0x00, 0x00,
100: APP_INDEX_REG, 0x00, 0x00,
101: VMEM_CONTROL_REG, 0x00, 0x00,
102: MEMACC_MODE_REG, 0x00, 0x00,
103: INDEX_REG, 0x50, 0x00,
104: INDEX_REG, 0x50, 0x00,
105: INDEX_REG, 0x10, 0x00,
106: INDEX_REG, 0x11, 0x00,
107: INDEX_REG, 0x12, 0x00,
108: INDEX_REG, 0x13, 0x00,
109: INDEX_REG, 0x14, 0x00,
110: INDEX_REG, 0x15, 0x00,
111: INDEX_REG, 0x16, 0x00,
112: INDEX_REG, 0x17, 0x00,
113: INDEX_REG, 0x18, 0x00,
114: INDEX_REG, 0x19, 0x00,
115: INDEX_REG, 0x1A, 0x00,
116: INDEX_REG, 0x1B, 0x00,
117: INDEX_REG, 0x1C, 0x00,
118: INDEX_REG, 0x1E, 0x00,
119: INDEX_REG, 0x20, 0x00,
120: INDEX_REG, 0x21, 0x00,
121: INDEX_REG, 0x22, 0x00,
122: INDEX_REG, 0x23, 0x00,
123: INDEX_REG, 0x24, 0x00,
124: INDEX_REG, 0x25, 0x00,
125: INDEX_REG, 0x26, 0x00,
126: INDEX_REG, 0x27, 0x00,
127: INDEX_REG, 0x28, 0x00,
128: INDEX_REG, 0x29, 0x00,
129: INDEX_REG, 0x2A, 0x00,
130: INDEX_REG, 0x2C, 0x00,
131: INDEX_REG, 0x2D, 0x00,
132: INDEX_REG, 0x36, 0x00,
133: INDEX_REG, 0x40, 0x00,
134: INDEX_REG, 0x41, 0x00,
135: INDEX_REG, 0x42, 0x00,
136: INDEX_REG, 0x43, 0x00,
137: INDEX_REG, 0x44, 0x00,
138: INDEX_REG, 0x54, 0x00,
139: INDEX_REG, 0x51, 0x00,
140: INDEX_REG, 0x70, 0x00,
141: INDEX_REG, 0x50, 0x00,
142: INDEX_REG, 0x55, 0x00,
143: INDEX_REG, 0x60, 0x00,
144: INDEX_REG, 0x61, 0x00,
145: INDEX_REG, 0x62, 0x00,
146: INDEX_REG, 0x63, 0x00,
147: INDEX_REG, 0x64, 0x00,
148: END_OF_SWITCH
149: };
150:
151:
152: MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_256_CO[] = {
153:
154: INT_ENABLE_REG, 0x00, 0x00,
155: INT_STATUS_REG, 0x00, 0xFF,
156: OP_MODE_REG, 0x00, 0x04,
157: INDEX_REG, 0x64, 0x00,
158: APP_CTL_REG, 0x00, 0x00,
159: APP_INDEX_REG, 0x00, 0x00,
160: VMEM_CONTROL_REG, 0x00, 0x00,
161: MEMACC_MODE_REG, 0x00, 0x03,
162: INDEX_REG, 0x50, 0x01,
163: INDEX_REG, 0x50, 0x00,
164: INDEX_REG, 0x10, 0x63,
165: INDEX_REG, 0x11, 0x00,
166: INDEX_REG, 0x12, 0x4F,
167: INDEX_REG, 0x13, 0x00,
168: INDEX_REG, 0x14, 0x4F,
169: INDEX_REG, 0x15, 0x00,
170: INDEX_REG, 0x16, 0x63,
171: INDEX_REG, 0x17, 0x00,
172: INDEX_REG, 0x18, 0x55,
173: INDEX_REG, 0x19, 0x00,
174: INDEX_REG, 0x1A, 0x61,
175: INDEX_REG, 0x1B, 0x00,
176: INDEX_REG, 0x1C, 0x00,
177: INDEX_REG, 0x1E, 0x00,
178: INDEX_REG, 0x20, 0x0C,
179: INDEX_REG, 0x21, 0x02,
180: INDEX_REG, 0x22, 0xDF,
181: INDEX_REG, 0x23, 0x01,
182: INDEX_REG, 0x24, 0xDF,
183: INDEX_REG, 0x25, 0x01,
184: INDEX_REG, 0x26, 0x0C,
185: INDEX_REG, 0x27, 0x02,
186: INDEX_REG, 0x28, 0xEA,
187: INDEX_REG, 0x29, 0x01,
188: INDEX_REG, 0x2A, 0xEC,
189: INDEX_REG, 0x2C, 0xFF,
190: INDEX_REG, 0x2D, 0xFF,
191: INDEX_REG, 0x36, 0x00,
192: INDEX_REG, 0x40, 0x00,
193: INDEX_REG, 0x41, 0x00,
194: INDEX_REG, 0x42, 0x00,
195: INDEX_REG, 0x43, 0x50,
196: INDEX_REG, 0x44, 0x00,
197: INDEX_REG, 0x54, 0x00,
198: INDEX_REG, 0x51, 0x03,
199: INDEX_REG, 0x70, 0x00,
200: INDEX_REG, 0x50, 0xC7,
201: INDEX_REG, 0x55, 0x00,
202: INDEX_REG, 0x60, 0x00,
203: INDEX_REG, 0x61, 0x00,
204: INDEX_REG, 0x62, 0x00,
205: INDEX_REG, 0x63, 0x00,
206: INDEX_REG, 0x64, 0xFF,
207: END_OF_SWITCH
208: };
209:
210: MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_65536_CO[] = {
211:
212: INT_ENABLE_REG, 0x00, 0x00,
213: INT_STATUS_REG, 0x00, 0xFF,
214: OP_MODE_REG, 0x00, 0x04,
215: INDEX_REG, 0x64, 0x00,
216: APP_CTL_REG, 0x00, 0x00,
217: APP_INDEX_REG, 0x00, 0x00,
218: VMEM_CONTROL_REG, 0x00, 0x00,
219: MEMACC_MODE_REG, 0x00, 0x04,
220: INDEX_REG, 0x50, 0x01,
221: INDEX_REG, 0x50, 0x00,
222: INDEX_REG, 0x10, 0x63,
223: INDEX_REG, 0x11, 0x00,
224: INDEX_REG, 0x12, 0x4F,
225: INDEX_REG, 0x13, 0x00,
226: INDEX_REG, 0x14, 0x4F,
227: INDEX_REG, 0x15, 0x00,
228: INDEX_REG, 0x16, 0x63,
229: INDEX_REG, 0x17, 0x00,
230: INDEX_REG, 0x18, 0x55,
231: INDEX_REG, 0x19, 0x00,
232: INDEX_REG, 0x1A, 0x61,
233: INDEX_REG, 0x1B, 0x00,
234: INDEX_REG, 0x1C, 0x00,
235: INDEX_REG, 0x1E, 0x00,
236: INDEX_REG, 0x20, 0x0C,
237: INDEX_REG, 0x21, 0x02,
238: INDEX_REG, 0x22, 0xDF,
239: INDEX_REG, 0x23, 0x01,
240: INDEX_REG, 0x24, 0xDF,
241: INDEX_REG, 0x25, 0x01,
242: INDEX_REG, 0x26, 0x0C,
243: INDEX_REG, 0x27, 0x02,
244: INDEX_REG, 0x28, 0xEA,
245: INDEX_REG, 0x29, 0x01,
246: INDEX_REG, 0x2A, 0xEC,
247: INDEX_REG, 0x2C, 0xFF,
248: INDEX_REG, 0x2D, 0xFF,
249: INDEX_REG, 0x36, 0x00,
250: INDEX_REG, 0x40, 0x00,
251: INDEX_REG, 0x41, 0x00,
252: INDEX_REG, 0x42, 0x00,
253: INDEX_REG, 0x43, 0xA0,
254: INDEX_REG, 0x44, 0x00,
255: INDEX_REG, 0x54, 0x00,
256: INDEX_REG, 0x51, 0x04,
257: INDEX_REG, 0x70, 0x00,
258: INDEX_REG, 0x50, 0xC7,
259: INDEX_REG, 0x55, 0x00,
260: INDEX_REG, 0x60, 0x00,
261: INDEX_REG, 0x61, 0x00,
262: INDEX_REG, 0x62, 0x00,
263: INDEX_REG, 0x63, 0x00,
264: INDEX_REG, 0x64, 0xFF,
265: END_OF_SWITCH
266: };
267:
268: MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_16_GR[] = {
269:
270: INT_ENABLE_REG, 0x00, 0x00,
271: INT_STATUS_REG, 0x00, 0x00,
272: OP_MODE_REG, 0x00, 0x00,
273: INDEX_REG, 0x64, 0x00,
274: APP_CTL_REG, 0x00, 0x00,
275: APP_INDEX_REG, 0x00, 0x00,
276: VMEM_CONTROL_REG, 0x00, 0x00,
277: MEMACC_MODE_REG, 0x00, 0x00,
278: INDEX_REG, 0x50, 0x00,
279: INDEX_REG, 0x50, 0x00,
280: INDEX_REG, 0x10, 0x00,
281: INDEX_REG, 0x11, 0x00,
282: INDEX_REG, 0x12, 0x00,
283: INDEX_REG, 0x13, 0x00,
284: INDEX_REG, 0x14, 0x00,
285: INDEX_REG, 0x15, 0x00,
286: INDEX_REG, 0x16, 0x00,
287: INDEX_REG, 0x17, 0x00,
288: INDEX_REG, 0x18, 0x00,
289: INDEX_REG, 0x19, 0x00,
290: INDEX_REG, 0x1A, 0x00,
291: INDEX_REG, 0x1B, 0x00,
292: INDEX_REG, 0x1C, 0x00,
293: INDEX_REG, 0x1E, 0x00,
294: INDEX_REG, 0x20, 0x00,
295: INDEX_REG, 0x21, 0x00,
296: INDEX_REG, 0x22, 0x00,
297: INDEX_REG, 0x23, 0x00,
298: INDEX_REG, 0x24, 0x00,
299: INDEX_REG, 0x25, 0x00,
300: INDEX_REG, 0x26, 0x00,
301: INDEX_REG, 0x27, 0x00,
302: INDEX_REG, 0x28, 0x00,
303: INDEX_REG, 0x29, 0x00,
304: INDEX_REG, 0x2A, 0x00,
305: INDEX_REG, 0x2C, 0x00,
306: INDEX_REG, 0x2D, 0x00,
307: INDEX_REG, 0x36, 0x00,
308: INDEX_REG, 0x40, 0x00,
309: INDEX_REG, 0x41, 0x00,
310: INDEX_REG, 0x42, 0x00,
311: INDEX_REG, 0x43, 0x00,
312: INDEX_REG, 0x44, 0x00,
313: INDEX_REG, 0x54, 0x00,
314: INDEX_REG, 0x51, 0x00,
315: INDEX_REG, 0x70, 0x00,
316: INDEX_REG, 0x50, 0x00,
317: INDEX_REG, 0x55, 0x00,
318: INDEX_REG, 0x60, 0x00,
319: INDEX_REG, 0x61, 0x00,
320: INDEX_REG, 0x62, 0x00,
321: INDEX_REG, 0x63, 0x00,
322: INDEX_REG, 0x64, 0x00,
323: END_OF_SWITCH
324: };
325:
326: MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_16_CO[] = {
327:
328: INT_ENABLE_REG, 0x00, 0x00,
329: INT_STATUS_REG, 0x00, 0xFF,
330: OP_MODE_REG, 0x00, 0x04,
331: INDEX_REG, 0x64, 0x00,
332: APP_CTL_REG, 0x00, 0x00,
333: APP_INDEX_REG, 0x00, 0x00,
334: VMEM_CONTROL_REG, 0x00, 0x00,
335: MEMACC_MODE_REG, 0x00, 0x02,
336: INDEX_REG, 0x50, 0x01,
337: INDEX_REG, 0x50, 0x00,
338: INDEX_REG, 0x10, 0x9D,
339: INDEX_REG, 0x11, 0x00,
340: INDEX_REG, 0x12, 0x7F,
341: INDEX_REG, 0x13, 0x00,
342: INDEX_REG, 0x14, 0x7F,
343: INDEX_REG, 0x15, 0x00,
344: INDEX_REG, 0x16, 0x9D,
345: INDEX_REG, 0x17, 0x00,
346: INDEX_REG, 0x18, 0x87,
347: INDEX_REG, 0x19, 0x00,
348: INDEX_REG, 0x1A, 0x9C,
349: INDEX_REG, 0x1B, 0x00,
350: INDEX_REG, 0x1C, 0x40,
351: INDEX_REG, 0x1E, 0x04,
352: INDEX_REG, 0x20, 0x30,
353: INDEX_REG, 0x21, 0x03,
354: INDEX_REG, 0x22, 0xFF,
355: INDEX_REG, 0x23, 0x02,
356: INDEX_REG, 0x24, 0xFF,
357: INDEX_REG, 0x25, 0x02,
358: INDEX_REG, 0x26, 0x30,
359: INDEX_REG, 0x27, 0x03,
360: INDEX_REG, 0x28, 0x00,
361: INDEX_REG, 0x29, 0x03,
362: INDEX_REG, 0x2A, 0x08,
363: INDEX_REG, 0x2C, 0xFF,
364: INDEX_REG, 0x2D, 0xFF,
365: INDEX_REG, 0x36, 0x00,
366: INDEX_REG, 0x40, 0x00,
367: INDEX_REG, 0x41, 0x00,
368: INDEX_REG, 0x42, 0x00,
369: INDEX_REG, 0x43, 0x40,
370: INDEX_REG, 0x44, 0x00,
371: INDEX_REG, 0x54, 0x0D,
372: INDEX_REG, 0x51, 0x02,
373: INDEX_REG, 0x70, 0x00,
374: INDEX_REG, 0x50, 0x0F,
375: INDEX_REG, 0x55, 0x00,
376: INDEX_REG, 0x60, 0x00,
377: INDEX_REG, 0x61, 0x00,
378: INDEX_REG, 0x62, 0x00,
379: INDEX_REG, 0x63, 0x00,
380: INDEX_REG, 0x64, 0xFF,
381: END_OF_SWITCH
382: };
383:
384: MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_64_GR[] = {
385:
386: INT_ENABLE_REG, 0x00, 0x00,
387: INT_STATUS_REG, 0x00, 0x00,
388: OP_MODE_REG, 0x00, 0x00,
389: INDEX_REG, 0x64, 0x00,
390: APP_CTL_REG, 0x00, 0x00,
391: APP_INDEX_REG, 0x00, 0x00,
392: VMEM_CONTROL_REG, 0x00, 0x00,
393: MEMACC_MODE_REG, 0x00, 0x00,
394: INDEX_REG, 0x50, 0x00,
395: INDEX_REG, 0x50, 0x00,
396: INDEX_REG, 0x10, 0x00,
397: INDEX_REG, 0x11, 0x00,
398: INDEX_REG, 0x12, 0x00,
399: INDEX_REG, 0x13, 0x00,
400: INDEX_REG, 0x14, 0x00,
401: INDEX_REG, 0x15, 0x00,
402: INDEX_REG, 0x16, 0x00,
403: INDEX_REG, 0x17, 0x00,
404: INDEX_REG, 0x18, 0x00,
405: INDEX_REG, 0x19, 0x00,
406: INDEX_REG, 0x1A, 0x00,
407: INDEX_REG, 0x1B, 0x00,
408: INDEX_REG, 0x1C, 0x00,
409: INDEX_REG, 0x1E, 0x00,
410: INDEX_REG, 0x20, 0x00,
411: INDEX_REG, 0x21, 0x00,
412: INDEX_REG, 0x22, 0x00,
413: INDEX_REG, 0x23, 0x00,
414: INDEX_REG, 0x24, 0x00,
415: INDEX_REG, 0x25, 0x00,
416: INDEX_REG, 0x26, 0x00,
417: INDEX_REG, 0x27, 0x00,
418: INDEX_REG, 0x28, 0x00,
419: INDEX_REG, 0x29, 0x00,
420: INDEX_REG, 0x2A, 0x00,
421: INDEX_REG, 0x2C, 0x00,
422: INDEX_REG, 0x2D, 0x00,
423: INDEX_REG, 0x36, 0x00,
424: INDEX_REG, 0x40, 0x00,
425: INDEX_REG, 0x41, 0x00,
426: INDEX_REG, 0x42, 0x00,
427: INDEX_REG, 0x43, 0x00,
428: INDEX_REG, 0x44, 0x00,
429: INDEX_REG, 0x54, 0x00,
430: INDEX_REG, 0x51, 0x00,
431: INDEX_REG, 0x70, 0x00,
432: INDEX_REG, 0x50, 0x00,
433: INDEX_REG, 0x55, 0x00,
434: INDEX_REG, 0x60, 0x00,
435: INDEX_REG, 0x61, 0x00,
436: INDEX_REG, 0x62, 0x00,
437: INDEX_REG, 0x63, 0x00,
438: INDEX_REG, 0x64, 0x00,
439: END_OF_SWITCH
440: };
441:
442: MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_256_CO[] = {
443:
444: INT_ENABLE_REG, 0x00, 0x00,
445: INT_STATUS_REG, 0x00, 0xFF,
446: OP_MODE_REG, 0x00, 0x04,
447: INDEX_REG, 0x64, 0x00,
448: APP_CTL_REG, 0x00, 0x00,
449: APP_INDEX_REG, 0x00, 0x00,
450: VMEM_CONTROL_REG, 0x00, 0x00,
451: MEMACC_MODE_REG, 0x00, 0x03,
452: INDEX_REG, 0x50, 0x01,
453: INDEX_REG, 0x50, 0x00,
454: INDEX_REG, 0x10, 0x9D,
455: INDEX_REG, 0x11, 0x00,
456: INDEX_REG, 0x12, 0x7F,
457: INDEX_REG, 0x13, 0x00,
458: INDEX_REG, 0x14, 0x7F,
459: INDEX_REG, 0x15, 0x00,
460: INDEX_REG, 0x16, 0x9D,
461: INDEX_REG, 0x17, 0x00,
462: INDEX_REG, 0x18, 0x87,
463: INDEX_REG, 0x19, 0x00,
464: INDEX_REG, 0x1A, 0x9C,
465: INDEX_REG, 0x1B, 0x00,
466: INDEX_REG, 0x1C, 0x40,
467: INDEX_REG, 0x1E, 0x04,
468: INDEX_REG, 0x20, 0x30,
469: INDEX_REG, 0x21, 0x03,
470: INDEX_REG, 0x22, 0xFF,
471: INDEX_REG, 0x23, 0x02,
472: INDEX_REG, 0x24, 0xFF,
473: INDEX_REG, 0x25, 0x02,
474: INDEX_REG, 0x26, 0x30,
475: INDEX_REG, 0x27, 0x03,
476: INDEX_REG, 0x28, 0x00,
477: INDEX_REG, 0x29, 0x03,
478: INDEX_REG, 0x2A, 0x08,
479: INDEX_REG, 0x2C, 0xFF,
480: INDEX_REG, 0x2D, 0xFF,
481: INDEX_REG, 0x36, 0x00,
482: INDEX_REG, 0x40, 0x00,
483: INDEX_REG, 0x41, 0x00,
484: INDEX_REG, 0x42, 0x00,
485: INDEX_REG, 0x43, 0x80,
486: INDEX_REG, 0x44, 0x00,
487: INDEX_REG, 0x54, 0x0D,
488: INDEX_REG, 0x51, 0x03,
489: INDEX_REG, 0x70, 0x00,
490: INDEX_REG, 0x50, 0x0F,
491: INDEX_REG, 0x55, 0x00,
492: INDEX_REG, 0x60, 0x00,
493: INDEX_REG, 0x61, 0x00,
494: INDEX_REG, 0x62, 0x00,
495: INDEX_REG, 0x63, 0x00,
496: INDEX_REG, 0x64, 0xFF,
497: END_OF_SWITCH
498: };
499:
500: //
501: // XGA 2 mode tables
502: //
503:
504: MODE_REGISTER_DATA_TABLE XGA2_MODE_1024_768_256_CO[] = {
505:
506: INT_ENABLE_REG, 0x00, 0x00,
507: INT_STATUS_REG, 0x00, 0xFF,
508: OP_MODE_REG, 0x00, 0x04,
509: INDEX_REG, 0x64, 0x00,
510: APP_CTL_REG, 0x00, 0x00,
511: APP_INDEX_REG, 0x00, 0x00,
512: VMEM_CONTROL_REG, 0x00, 0x00,
513: MEMACC_MODE_REG, 0x00, 0x03,
514: INDEX_REG, 0x50, 0x01,
515: INDEX_REG, 0x50, 0x00,
516: INDEX_REG, 0x10, 0xA7,
517: INDEX_REG, 0x11, 0x00,
518: INDEX_REG, 0x12, 0x7F,
519: INDEX_REG, 0x13, 0x00,
520: INDEX_REG, 0x14, 0x7F,
521: INDEX_REG, 0x15, 0x00,
522: INDEX_REG, 0x16, 0xA7,
523: INDEX_REG, 0x17, 0x00,
524: INDEX_REG, 0x18, 0x88,
525: INDEX_REG, 0x19, 0x00,
526: INDEX_REG, 0x1A, 0x99,
527: INDEX_REG, 0x1B, 0x00,
528: INDEX_REG, 0x1C, 0x00,
529: INDEX_REG, 0x1E, 0x00,
530: INDEX_REG, 0x20, 0x25,
531: INDEX_REG, 0x21, 0x03,
532: INDEX_REG, 0x22, 0xFF,
533: INDEX_REG, 0x23, 0x02,
534: INDEX_REG, 0x24, 0xFF,
535: INDEX_REG, 0x25, 0x02,
536: INDEX_REG, 0x26, 0x25,
537: INDEX_REG, 0x27, 0x03,
538: INDEX_REG, 0x28, 0x02,
539: INDEX_REG, 0x29, 0x03,
540: INDEX_REG, 0x2A, 0x08,
541: INDEX_REG, 0x2C, 0xFF,
542: INDEX_REG, 0x2D, 0xFF,
543: INDEX_REG, 0x54, 0x01,
544: INDEX_REG, 0x70, 0x00,
545: INDEX_REG, 0x58, 0x80,
546: INDEX_OR_REG, 0x5B, 0x02,
547: INDEX_REG, 0x54, 0x81,
548: INDEX_REG, 0x50, 0xC7,
549: INDEX_REG, 0x40, 0x00,
550: INDEX_REG, 0x41, 0x00,
551: INDEX_REG, 0x42, 0x00,
552: INDEX_REG, 0x43, 0x80,
553: INDEX_REG, 0x44, 0x00,
554: INDEX_REG, 0x51, 0x03,
555: INDEX_REG, 0x55, 0x00,
556: INDEX_REG, 0x60, 0x00,
557: INDEX_REG, 0x61, 0x00,
558: INDEX_REG, 0x62, 0x00,
559: INDEX_REG, 0x63, 0x00,
560: INDEX_REG, 0x64, 0xFF,
561: END_OF_SWITCH
562: };
563:
564: //
565: // New IBM modes
566: //
567:
568: //
569: // XGA 1 modes
570: //
571:
572: MODE_REGISTER_DATA_TABLE XGA1_640x480x8x60Hz[] = {
573:
574: INT_ENABLE_REG, 0x00, 0x00,
575: INT_STATUS_REG, 0x00, 0xFF,
576: OP_MODE_REG, 0x00, 0x04,
577: INDEX_REG, 0x64, 0x00,
578: APP_CTL_REG, 0x00, 0x00,
579: APP_INDEX_REG, 0x00, 0x00,
580: VMEM_CONTROL_REG, 0x00, 0x00,
581: MEMACC_MODE_REG, 0x00, 0x03,
582: INDEX_REG, 0x50, 0x01,
583: INDEX_REG, 0x50, 0x00,
584: INDEX_REG, 0x10, 0x63,
585: INDEX_REG, 0x11, 0x00,
586: INDEX_REG, 0x12, 0x4F,
587: INDEX_REG, 0x13, 0x00,
588: INDEX_REG, 0x14, 0x4F,
589: INDEX_REG, 0x15, 0x00,
590: INDEX_REG, 0x16, 0x63,
591: INDEX_REG, 0x17, 0x00,
592: INDEX_REG, 0x18, 0x55,
593: INDEX_REG, 0x19, 0x00,
594: INDEX_REG, 0x1A, 0x61,
595: INDEX_REG, 0x1B, 0x00,
596: INDEX_REG, 0x1C, 0x00,
597: INDEX_REG, 0x1E, 0x00,
598: INDEX_REG, 0x20, 0x0C,
599: INDEX_REG, 0x21, 0x02,
600: INDEX_REG, 0x22, 0xDF,
601: INDEX_REG, 0x23, 0x01,
602: INDEX_REG, 0x24, 0xDF,
603: INDEX_REG, 0x25, 0x01,
604: INDEX_REG, 0x26, 0x0C,
605: INDEX_REG, 0x27, 0x02,
606: INDEX_REG, 0x28, 0xEA,
607: INDEX_REG, 0x29, 0x01,
608: INDEX_REG, 0x2A, 0xEC,
609: INDEX_REG, 0x2C, 0xFF,
610: INDEX_REG, 0x2D, 0xFF,
611: INDEX_REG, 0x36, 0x00,
612: INDEX_REG, 0x40, 0x00,
613: INDEX_REG, 0x41, 0x00,
614: INDEX_REG, 0x42, 0x00,
615: INDEX_REG, 0x43, 0x50,
616: INDEX_REG, 0x44, 0x00,
617: INDEX_REG, 0x70, 0x00,
618: INDEX_REG, 0x54, 0x00,
619: INDEX_REG, 0x51, 0x03,
620: INDEX_REG, 0x50, 0xC7,
621: INDEX_REG, 0x55, 0x00,
622: INDEX_REG, 0x60, 0x00,
623: INDEX_REG, 0x61, 0x00,
624: INDEX_REG, 0x62, 0x00,
625: INDEX_REG, 0x63, 0x00,
626: INDEX_REG, 0x64, 0xFF,
627: END_OF_SWITCH
628: };
629:
630:
631: MODE_REGISTER_DATA_TABLE XGA1_640x400x8x70Hz[] = {
632:
633: INT_ENABLE_REG, 0x00, 0x00,
634: INT_STATUS_REG, 0x00, 0xFF,
635: OP_MODE_REG, 0x00, 0x04,
636: INDEX_REG, 0x64, 0x00,
637: APP_CTL_REG, 0x00, 0x00,
638: APP_INDEX_REG, 0x00, 0x00,
639: VMEM_CONTROL_REG, 0x00, 0x00,
640: MEMACC_MODE_REG, 0x00, 0x03,
641: INDEX_REG, 0x50, 0x01,
642: INDEX_REG, 0x50, 0x00,
643: INDEX_REG, 0x10, 0x63,
644: INDEX_REG, 0x11, 0x00,
645: INDEX_REG, 0x12, 0x4F,
646: INDEX_REG, 0x13, 0x00,
647: INDEX_REG, 0x14, 0x4F,
648: INDEX_REG, 0x15, 0x00,
649: INDEX_REG, 0x16, 0x63,
650: INDEX_REG, 0x17, 0x00,
651: INDEX_REG, 0x18, 0x55,
652: INDEX_REG, 0x19, 0x00,
653: INDEX_REG, 0x1A, 0x61,
654: INDEX_REG, 0x1B, 0x00,
655: INDEX_REG, 0x1C, 0x00,
656: INDEX_REG, 0x1E, 0x00,
657: INDEX_REG, 0x20, 0xC0,
658: INDEX_REG, 0x21, 0x01,
659: INDEX_REG, 0x22, 0x8F,
660: INDEX_REG, 0x23, 0x01,
661: INDEX_REG, 0x24, 0x8F,
662: INDEX_REG, 0x25, 0x01,
663: INDEX_REG, 0x26, 0xC0,
664: INDEX_REG, 0x27, 0x01,
665: INDEX_REG, 0x28, 0x9C,
666: INDEX_REG, 0x29, 0x01,
667: INDEX_REG, 0x2A, 0x9E,
668: INDEX_REG, 0x2C, 0xFF,
669: INDEX_REG, 0x2D, 0xFF,
670: INDEX_REG, 0x36, 0x00,
671: INDEX_REG, 0x40, 0x00,
672: INDEX_REG, 0x41, 0x00,
673: INDEX_REG, 0x42, 0x00,
674: INDEX_REG, 0x43, 0x50,
675: INDEX_REG, 0x44, 0x00,
676: INDEX_REG, 0x70, 0x00,
677: INDEX_REG, 0x54, 0x00,
678: INDEX_REG, 0x51, 0x03,
679: INDEX_REG, 0x50, 0x47,
680: INDEX_REG, 0x55, 0x00,
681: INDEX_REG, 0x60, 0x00,
682: INDEX_REG, 0x61, 0x00,
683: INDEX_REG, 0x62, 0x00,
684: INDEX_REG, 0x63, 0x00,
685: INDEX_REG, 0x64, 0xFF,
686: END_OF_SWITCH
687: };
688:
689:
690: MODE_REGISTER_DATA_TABLE XGA1_1024x768x8x43Hz[] = {
691:
692: INT_ENABLE_REG, 0x00, 0x00,
693: INT_STATUS_REG, 0x00, 0xFF,
694: OP_MODE_REG, 0x00, 0x04,
695: INDEX_REG, 0x64, 0x00,
696: APP_CTL_REG, 0x00, 0x00,
697: APP_INDEX_REG, 0x00, 0x00,
698: VMEM_CONTROL_REG, 0x00, 0x00,
699: MEMACC_MODE_REG, 0x00, 0x03,
700: INDEX_REG, 0x50, 0x01,
701: INDEX_REG, 0x50, 0x00,
702: INDEX_REG, 0x10, 0x9D,
703: INDEX_REG, 0x11, 0x00,
704: INDEX_REG, 0x12, 0x7F,
705: INDEX_REG, 0x13, 0x00,
706: INDEX_REG, 0x14, 0x7F,
707: INDEX_REG, 0x15, 0x00,
708: INDEX_REG, 0x16, 0x9D,
709: INDEX_REG, 0x17, 0x00,
710: INDEX_REG, 0x18, 0x86,
711: INDEX_REG, 0x19, 0x00,
712: INDEX_REG, 0x1A, 0x9C,
713: INDEX_REG, 0x1B, 0x00,
714: INDEX_REG, 0x1C, 0x40,
715: INDEX_REG, 0x1E, 0x04,
716: INDEX_REG, 0x20, 0x30,
717: INDEX_REG, 0x21, 0x03,
718: INDEX_REG, 0x22, 0xFF,
719: INDEX_REG, 0x23, 0x02,
720: INDEX_REG, 0x24, 0xFF,
721: INDEX_REG, 0x25, 0x02,
722: INDEX_REG, 0x26, 0x30,
723: INDEX_REG, 0x27, 0x03,
724: INDEX_REG, 0x28, 0x00,
725: INDEX_REG, 0x29, 0x03,
726: INDEX_REG, 0x2A, 0x08,
727: INDEX_REG, 0x2C, 0xFF,
728: INDEX_REG, 0x2D, 0xFF,
729: INDEX_REG, 0x36, 0x00,
730: INDEX_REG, 0x40, 0x00,
731: INDEX_REG, 0x41, 0x00,
732: INDEX_REG, 0x42, 0x00,
733: INDEX_REG, 0x43, 0x80,
734: INDEX_REG, 0x44, 0x00,
735: INDEX_REG, 0x70, 0x00,
736: INDEX_REG, 0x54, 0x0D,
737: INDEX_REG, 0x51, 0x03,
738: INDEX_REG, 0x50, 0x0F,
739: INDEX_REG, 0x55, 0x00,
740: INDEX_REG, 0x60, 0x00,
741: INDEX_REG, 0x61, 0x00,
742: INDEX_REG, 0x62, 0x00,
743: INDEX_REG, 0x63, 0x00,
744: INDEX_REG, 0x64, 0xFF,
745: END_OF_SWITCH
746: };
747:
748:
749: MODE_REGISTER_DATA_TABLE XGA1_1040x768x8x43Hz[] = {
750:
751: INT_ENABLE_REG, 0x00, 0x00,
752: INT_STATUS_REG, 0x00, 0xFF,
753: OP_MODE_REG, 0x00, 0x04,
754: INDEX_REG, 0x64, 0x00,
755: APP_CTL_REG, 0x00, 0x00,
756: APP_INDEX_REG, 0x00, 0x00,
757: VMEM_CONTROL_REG, 0x00, 0x00,
758: MEMACC_MODE_REG, 0x00, 0x03,
759: INDEX_REG, 0x50, 0x01,
760: INDEX_REG, 0x50, 0x00,
761: INDEX_REG, 0x10, 0x9D,
762: INDEX_REG, 0x11, 0x00,
763: INDEX_REG, 0x12, 0x81,
764: INDEX_REG, 0x13, 0x00,
765: INDEX_REG, 0x14, 0x81,
766: INDEX_REG, 0x15, 0x00,
767: INDEX_REG, 0x16, 0x9D,
768: INDEX_REG, 0x17, 0x00,
769: INDEX_REG, 0x18, 0x87,
770: INDEX_REG, 0x19, 0x00,
771: INDEX_REG, 0x1A, 0x9D,
772: INDEX_REG, 0x1B, 0x00,
773: INDEX_REG, 0x1C, 0x00,
774: INDEX_REG, 0x1E, 0x00,
775: INDEX_REG, 0x20, 0x30,
776: INDEX_REG, 0x21, 0x03,
777: INDEX_REG, 0x22, 0xFF,
778: INDEX_REG, 0x23, 0x02,
779: INDEX_REG, 0x24, 0xFF,
780: INDEX_REG, 0x25, 0x02,
781: INDEX_REG, 0x26, 0x30,
782: INDEX_REG, 0x27, 0x03,
783: INDEX_REG, 0x28, 0x00,
784: INDEX_REG, 0x29, 0x03,
785: INDEX_REG, 0x2A, 0x08,
786: INDEX_REG, 0x2C, 0xFF,
787: INDEX_REG, 0x2D, 0xFF,
788: INDEX_REG, 0x36, 0x00,
789: INDEX_REG, 0x40, 0x00,
790: INDEX_REG, 0x41, 0x00,
791: INDEX_REG, 0x42, 0x00,
792: INDEX_REG, 0x43, 0x82,
793: INDEX_REG, 0x44, 0x00,
794: INDEX_REG, 0x70, 0x00,
795: INDEX_REG, 0x54, 0x0D,
796: INDEX_REG, 0x51, 0x03,
797: INDEX_REG, 0x50, 0x0F,
798: INDEX_REG, 0x55, 0x00,
799: INDEX_REG, 0x60, 0x00,
800: INDEX_REG, 0x61, 0x00,
801: INDEX_REG, 0x62, 0x00,
802: INDEX_REG, 0x63, 0x00,
803: INDEX_REG, 0x64, 0xFF,
804: END_OF_SWITCH
805: };
806:
807: //
808: // XGA 2 mode tables
809: //
810:
811: MODE_REGISTER_DATA_TABLE XGA2_640x480x8x60Hz[] = {
812:
813: INT_ENABLE_REG, 0x00, 0x00,
814: INT_STATUS_REG, 0x00, 0xFF,
815: OP_MODE_REG, 0x00, 0x04,
816: INDEX_REG, 0x64, 0x00,
817: APP_CTL_REG, 0x00, 0x00,
818: APP_INDEX_REG, 0x00, 0x00,
819: VMEM_CONTROL_REG, 0x00, 0x00,
820: MEMACC_MODE_REG, 0x00, 0x03,
821: INDEX_REG, 0x50, 0x01,
822: INDEX_REG, 0x50, 0x00,
823: INDEX_REG, 0x10, 0x63,
824: INDEX_REG, 0x11, 0x00,
825: INDEX_REG, 0x12, 0x4F,
826: INDEX_REG, 0x13, 0x00,
827: INDEX_REG, 0x14, 0x4F,
828: INDEX_REG, 0x15, 0x00,
829: INDEX_REG, 0x16, 0x63,
830: INDEX_REG, 0x17, 0x00,
831: INDEX_REG, 0x18, 0x54,
832: INDEX_REG, 0x19, 0x00,
833: INDEX_REG, 0x1A, 0x60,
834: INDEX_REG, 0x1B, 0x00,
835: INDEX_REG, 0x1C, 0x20,
836: INDEX_REG, 0x1E, 0x02,
837: INDEX_REG, 0x20, 0x0C,
838: INDEX_REG, 0x21, 0x02,
839: INDEX_REG, 0x22, 0xDF,
840: INDEX_REG, 0x23, 0x01,
841: INDEX_REG, 0x24, 0xDF,
842: INDEX_REG, 0x25, 0x01,
843: INDEX_REG, 0x26, 0x0C,
844: INDEX_REG, 0x27, 0x02,
845: INDEX_REG, 0x28, 0xEA,
846: INDEX_REG, 0x29, 0x01,
847: INDEX_REG, 0x2A, 0xEC,
848: INDEX_REG, 0x2C, 0xFF,
849: INDEX_REG, 0x2D, 0xFF,
850: INDEX_REG, 0x36, 0x00,
851: INDEX_REG, 0x40, 0x00,
852: INDEX_REG, 0x41, 0x00,
853: INDEX_REG, 0x42, 0x00,
854: INDEX_REG, 0x43, 0x50,
855: INDEX_REG, 0x44, 0x00,
856: INDEX_REG, 0x54, 0x01,
857: INDEX_REG, 0x70, 0x00,
858: INDEX_REG, 0x51, 0x03,
859: INDEX_REG, 0x58, 0x24,
860: INDEX_REG, 0x54, 0x80,
861: INDEX_REG, 0x50, 0xC7,
862: INDEX_REG, 0x55, 0x00,
863: INDEX_REG, 0x60, 0x00,
864: INDEX_REG, 0x61, 0x00,
865: INDEX_REG, 0x62, 0x00,
866: INDEX_REG, 0x63, 0x00,
867: INDEX_REG, 0x64, 0xFF,
868: END_OF_SWITCH
869: };
870:
871:
872: MODE_REGISTER_DATA_TABLE XGA2_640x480x8x72Hz[] = {
873:
874: INT_ENABLE_REG, 0x00, 0x00,
875: INT_STATUS_REG, 0x00, 0xFF,
876: OP_MODE_REG, 0x00, 0x04,
877: INDEX_REG, 0x64, 0x00,
878: APP_CTL_REG, 0x00, 0x00,
879: APP_INDEX_REG, 0x00, 0x00,
880: VMEM_CONTROL_REG, 0x00, 0x00,
881: MEMACC_MODE_REG, 0x00, 0x03,
882: INDEX_REG, 0x50, 0x01,
883: INDEX_REG, 0x50, 0x00,
884: INDEX_REG, 0x10, 0x67,
885: INDEX_REG, 0x11, 0x00,
886: INDEX_REG, 0x12, 0x4F,
887: INDEX_REG, 0x13, 0x00,
888: INDEX_REG, 0x14, 0x4F,
889: INDEX_REG, 0x15, 0x00,
890: INDEX_REG, 0x16, 0x67,
891: INDEX_REG, 0x17, 0x00,
892: INDEX_REG, 0x18, 0x55,
893: INDEX_REG, 0x19, 0x00,
894: INDEX_REG, 0x1A, 0x5A,
895: INDEX_REG, 0x1B, 0x00,
896: INDEX_REG, 0x1C, 0x20,
897: INDEX_REG, 0x1E, 0x02,
898: INDEX_REG, 0x20, 0x07,
899: INDEX_REG, 0x21, 0x02,
900: INDEX_REG, 0x22, 0xDF,
901: INDEX_REG, 0x23, 0x01,
902: INDEX_REG, 0x24, 0xDF,
903: INDEX_REG, 0x25, 0x01,
904: INDEX_REG, 0x26, 0x07,
905: INDEX_REG, 0x27, 0x02,
906: INDEX_REG, 0x28, 0xE8,
907: INDEX_REG, 0x29, 0x01,
908: INDEX_REG, 0x2A, 0xEB,
909: INDEX_REG, 0x2C, 0xFF,
910: INDEX_REG, 0x2D, 0xFF,
911: INDEX_REG, 0x36, 0x00,
912: INDEX_REG, 0x40, 0x00,
913: INDEX_REG, 0x41, 0x00,
914: INDEX_REG, 0x42, 0x00,
915: INDEX_REG, 0x43, 0x50,
916: INDEX_REG, 0x44, 0x00,
917: INDEX_REG, 0x54, 0x01,
918: INDEX_REG, 0x70, 0x00,
919: INDEX_REG, 0x51, 0x03,
920: INDEX_REG, 0x58, 0x3D,
921: INDEX_REG, 0x54, 0x80,
922: INDEX_REG, 0x50, 0xC7,
923: INDEX_REG, 0x55, 0x00,
924: INDEX_REG, 0x60, 0x00,
925: INDEX_REG, 0x61, 0x00,
926: INDEX_REG, 0x62, 0x00,
927: INDEX_REG, 0x63, 0x00,
928: INDEX_REG, 0x64, 0xFF,
929: END_OF_SWITCH
930: };
931:
932:
933: MODE_REGISTER_DATA_TABLE XGA2_640x480x8x75Hz[] = {
934:
935: INT_ENABLE_REG, 0x00, 0x00,
936: INT_STATUS_REG, 0x00, 0xFF,
937: OP_MODE_REG, 0x00, 0x04,
938: INDEX_REG, 0x64, 0x00,
939: APP_CTL_REG, 0x00, 0x00,
940: APP_INDEX_REG, 0x00, 0x00,
941: VMEM_CONTROL_REG, 0x00, 0x00,
942: MEMACC_MODE_REG, 0x00, 0x03,
943: INDEX_REG, 0x50, 0x01,
944: INDEX_REG, 0x50, 0x00,
945: INDEX_REG, 0x10, 0x63,
946: INDEX_REG, 0x11, 0x00,
947: INDEX_REG, 0x12, 0x4F,
948: INDEX_REG, 0x13, 0x00,
949: INDEX_REG, 0x14, 0x4F,
950: INDEX_REG, 0x15, 0x00,
951: INDEX_REG, 0x16, 0x63,
952: INDEX_REG, 0x17, 0x00,
953: INDEX_REG, 0x18, 0x54,
954: INDEX_REG, 0x19, 0x00,
955: INDEX_REG, 0x1A, 0x60,
956: INDEX_REG, 0x1B, 0x00,
957: INDEX_REG, 0x1C, 0x20,
958: INDEX_REG, 0x1E, 0x02,
959: INDEX_REG, 0x20, 0x0C,
960: INDEX_REG, 0x21, 0x02,
961: INDEX_REG, 0x22, 0xDF,
962: INDEX_REG, 0x23, 0x01,
963: INDEX_REG, 0x24, 0xDF,
964: INDEX_REG, 0x25, 0x01,
965: INDEX_REG, 0x26, 0x0C,
966: INDEX_REG, 0x27, 0x02,
967: INDEX_REG, 0x28, 0xEA,
968: INDEX_REG, 0x29, 0x01,
969: INDEX_REG, 0x2A, 0xEC,
970: INDEX_REG, 0x2C, 0xFF,
971: INDEX_REG, 0x2D, 0xFF,
972: INDEX_REG, 0x36, 0x00,
973: INDEX_REG, 0x40, 0x00,
974: INDEX_REG, 0x41, 0x00,
975: INDEX_REG, 0x42, 0x00,
976: INDEX_REG, 0x43, 0x50,
977: INDEX_REG, 0x44, 0x00,
978: INDEX_REG, 0x54, 0x01,
979: INDEX_REG, 0x70, 0x00,
980: INDEX_REG, 0x51, 0x03,
981: INDEX_REG, 0x58, 0x3D,
982: INDEX_REG, 0x54, 0x80,
983: INDEX_REG, 0x50, 0xC7,
984: INDEX_REG, 0x55, 0x00,
985: INDEX_REG, 0x60, 0x00,
986: INDEX_REG, 0x61, 0x00,
987: INDEX_REG, 0x62, 0x00,
988: INDEX_REG, 0x63, 0x00,
989: INDEX_REG, 0x64, 0xFF,
990: END_OF_SWITCH
991: };
992:
993:
994: MODE_REGISTER_DATA_TABLE XGA2_640x400x8x70Hz[] = {
995:
996: INT_ENABLE_REG, 0x00, 0x00,
997: INT_STATUS_REG, 0x00, 0xFF,
998: OP_MODE_REG, 0x00, 0x04,
999: INDEX_REG, 0x64, 0x00,
1000: APP_CTL_REG, 0x00, 0x00,
1001: APP_INDEX_REG, 0x00, 0x00,
1002: VMEM_CONTROL_REG, 0x00, 0x00,
1003: MEMACC_MODE_REG, 0x00, 0x03,
1004: INDEX_REG, 0x50, 0x01,
1005: INDEX_REG, 0x50, 0x00,
1006: INDEX_REG, 0x10, 0x63,
1007: INDEX_REG, 0x11, 0x00,
1008: INDEX_REG, 0x12, 0x4F,
1009: INDEX_REG, 0x13, 0x00,
1010: INDEX_REG, 0x14, 0x4F,
1011: INDEX_REG, 0x15, 0x00,
1012: INDEX_REG, 0x16, 0x63,
1013: INDEX_REG, 0x17, 0x00,
1014: INDEX_REG, 0x18, 0x54,
1015: INDEX_REG, 0x19, 0x00,
1016: INDEX_REG, 0x1A, 0x60,
1017: INDEX_REG, 0x1B, 0x00,
1018: INDEX_REG, 0x1C, 0x20,
1019: INDEX_REG, 0x1E, 0x02,
1020: INDEX_REG, 0x20, 0xC0,
1021: INDEX_REG, 0x21, 0x01,
1022: INDEX_REG, 0x22, 0x8F,
1023: INDEX_REG, 0x23, 0x01,
1024: INDEX_REG, 0x24, 0x8F,
1025: INDEX_REG, 0x25, 0x01,
1026: INDEX_REG, 0x26, 0xC0,
1027: INDEX_REG, 0x27, 0x01,
1028: INDEX_REG, 0x28, 0x9C,
1029: INDEX_REG, 0x29, 0x01,
1030: INDEX_REG, 0x2A, 0x9E,
1031: INDEX_REG, 0x2C, 0xFF,
1032: INDEX_REG, 0x2D, 0xFF,
1033: INDEX_REG, 0x36, 0x00,
1034: INDEX_REG, 0x40, 0x00,
1035: INDEX_REG, 0x41, 0x00,
1036: INDEX_REG, 0x42, 0x00,
1037: INDEX_REG, 0x43, 0x50,
1038: INDEX_REG, 0x44, 0x00,
1039: INDEX_REG, 0x54, 0x01,
1040: INDEX_REG, 0x70, 0x00,
1041: INDEX_REG, 0x51, 0x03,
1042: INDEX_REG, 0x58, 0x24,
1043: INDEX_REG, 0x54, 0x80,
1044: INDEX_REG, 0x50, 0x47,
1045: INDEX_REG, 0x55, 0x00,
1046: INDEX_REG, 0x60, 0x00,
1047: INDEX_REG, 0x61, 0x00,
1048: INDEX_REG, 0x62, 0x00,
1049: INDEX_REG, 0x63, 0x00,
1050: INDEX_REG, 0x64, 0xFF,
1051: END_OF_SWITCH
1052: };
1053:
1054:
1055: MODE_REGISTER_DATA_TABLE XGA2_640x400x8x84Hz[] = {
1056:
1057: INT_ENABLE_REG, 0x00, 0x00,
1058: INT_STATUS_REG, 0x00, 0xFF,
1059: OP_MODE_REG, 0x00, 0x04,
1060: INDEX_REG, 0x64, 0x00,
1061: APP_CTL_REG, 0x00, 0x00,
1062: APP_INDEX_REG, 0x00, 0x00,
1063: VMEM_CONTROL_REG, 0x00, 0x00,
1064: MEMACC_MODE_REG, 0x00, 0x03,
1065: INDEX_REG, 0x50, 0x01,
1066: INDEX_REG, 0x50, 0x00,
1067: INDEX_REG, 0x10, 0x67,
1068: INDEX_REG, 0x11, 0x00,
1069: INDEX_REG, 0x12, 0x4F,
1070: INDEX_REG, 0x13, 0x00,
1071: INDEX_REG, 0x14, 0x4F,
1072: INDEX_REG, 0x15, 0x00,
1073: INDEX_REG, 0x16, 0x67,
1074: INDEX_REG, 0x17, 0x00,
1075: INDEX_REG, 0x18, 0x55,
1076: INDEX_REG, 0x19, 0x00,
1077: INDEX_REG, 0x1A, 0x5A,
1078: INDEX_REG, 0x1B, 0x00,
1079: INDEX_REG, 0x1C, 0x20,
1080: INDEX_REG, 0x1E, 0x02,
1081: INDEX_REG, 0x20, 0xC0,
1082: INDEX_REG, 0x21, 0x01,
1083: INDEX_REG, 0x22, 0x8F,
1084: INDEX_REG, 0x23, 0x01,
1085: INDEX_REG, 0x24, 0x8F,
1086: INDEX_REG, 0x25, 0x01,
1087: INDEX_REG, 0x26, 0xC0,
1088: INDEX_REG, 0x27, 0x01,
1089: INDEX_REG, 0x28, 0x9C,
1090: INDEX_REG, 0x29, 0x01,
1091: INDEX_REG, 0x2A, 0x9E,
1092: INDEX_REG, 0x2C, 0xFF,
1093: INDEX_REG, 0x2D, 0xFF,
1094: INDEX_REG, 0x36, 0x00,
1095: INDEX_REG, 0x40, 0x00,
1096: INDEX_REG, 0x41, 0x00,
1097: INDEX_REG, 0x42, 0x00,
1098: INDEX_REG, 0x43, 0x50,
1099: INDEX_REG, 0x44, 0x00,
1100: INDEX_REG, 0x54, 0x01,
1101: INDEX_REG, 0x70, 0x00,
1102: INDEX_REG, 0x51, 0x03,
1103: INDEX_REG, 0x58, 0x3D,
1104: INDEX_REG, 0x54, 0x80,
1105: INDEX_REG, 0x50, 0x47,
1106: INDEX_REG, 0x55, 0x00,
1107: INDEX_REG, 0x60, 0x00,
1108: INDEX_REG, 0x61, 0x00,
1109: INDEX_REG, 0x62, 0x00,
1110: INDEX_REG, 0x63, 0x00,
1111: INDEX_REG, 0x64, 0xFF,
1112: END_OF_SWITCH
1113: };
1114:
1115:
1116: MODE_REGISTER_DATA_TABLE XGA2_640x400x8x88Hz[] = {
1117:
1118: INT_ENABLE_REG, 0x00, 0x00,
1119: INT_STATUS_REG, 0x00, 0xFF,
1120: OP_MODE_REG, 0x00, 0x04,
1121: INDEX_REG, 0x64, 0x00,
1122: APP_CTL_REG, 0x00, 0x00,
1123: APP_INDEX_REG, 0x00, 0x00,
1124: VMEM_CONTROL_REG, 0x00, 0x00,
1125: MEMACC_MODE_REG, 0x00, 0x03,
1126: INDEX_REG, 0x50, 0x01,
1127: INDEX_REG, 0x50, 0x00,
1128: INDEX_REG, 0x10, 0x63,
1129: INDEX_REG, 0x11, 0x00,
1130: INDEX_REG, 0x12, 0x4F,
1131: INDEX_REG, 0x13, 0x00,
1132: INDEX_REG, 0x14, 0x4F,
1133: INDEX_REG, 0x15, 0x00,
1134: INDEX_REG, 0x16, 0x63,
1135: INDEX_REG, 0x17, 0x00,
1136: INDEX_REG, 0x18, 0x54,
1137: INDEX_REG, 0x19, 0x00,
1138: INDEX_REG, 0x1A, 0x60,
1139: INDEX_REG, 0x1B, 0x00,
1140: INDEX_REG, 0x1C, 0x20,
1141: INDEX_REG, 0x1E, 0x02,
1142: INDEX_REG, 0x20, 0xC0,
1143: INDEX_REG, 0x21, 0x01,
1144: INDEX_REG, 0x22, 0x8F,
1145: INDEX_REG, 0x23, 0x01,
1146: INDEX_REG, 0x24, 0x8F,
1147: INDEX_REG, 0x25, 0x01,
1148: INDEX_REG, 0x26, 0xC0,
1149: INDEX_REG, 0x27, 0x01,
1150: INDEX_REG, 0x28, 0x9C,
1151: INDEX_REG, 0x29, 0x01,
1152: INDEX_REG, 0x2A, 0x9E,
1153: INDEX_REG, 0x2C, 0xFF,
1154: INDEX_REG, 0x2D, 0xFF,
1155: INDEX_REG, 0x36, 0x00,
1156: INDEX_REG, 0x40, 0x00,
1157: INDEX_REG, 0x41, 0x00,
1158: INDEX_REG, 0x42, 0x00,
1159: INDEX_REG, 0x43, 0x50,
1160: INDEX_REG, 0x44, 0x00,
1161: INDEX_REG, 0x54, 0x01,
1162: INDEX_REG, 0x70, 0x00,
1163: INDEX_REG, 0x51, 0x03,
1164: INDEX_REG, 0x58, 0x3D,
1165: INDEX_REG, 0x54, 0x80,
1166: INDEX_REG, 0x50, 0x47,
1167: INDEX_REG, 0x55, 0x00,
1168: INDEX_REG, 0x60, 0x00,
1169: INDEX_REG, 0x61, 0x00,
1170: INDEX_REG, 0x62, 0x00,
1171: INDEX_REG, 0x63, 0x00,
1172: INDEX_REG, 0x64, 0xFF,
1173: END_OF_SWITCH
1174: };
1175:
1176:
1177: MODE_REGISTER_DATA_TABLE XGA2_800x600x8x56Hz[] = {
1178:
1179: INT_ENABLE_REG, 0x00, 0x00,
1180: INT_STATUS_REG, 0x00, 0xFF,
1181: OP_MODE_REG, 0x00, 0x04,
1182: INDEX_REG, 0x64, 0x00,
1183: APP_CTL_REG, 0x00, 0x00,
1184: APP_INDEX_REG, 0x00, 0x00,
1185: VMEM_CONTROL_REG, 0x00, 0x00,
1186: MEMACC_MODE_REG, 0x00, 0x03,
1187: INDEX_REG, 0x50, 0x01,
1188: INDEX_REG, 0x50, 0x00,
1189: INDEX_REG, 0x10, 0x7F,
1190: INDEX_REG, 0x11, 0x00,
1191: INDEX_REG, 0x12, 0x63,
1192: INDEX_REG, 0x13, 0x00,
1193: INDEX_REG, 0x14, 0x63,
1194: INDEX_REG, 0x15, 0x00,
1195: INDEX_REG, 0x16, 0x7F,
1196: INDEX_REG, 0x17, 0x00,
1197: INDEX_REG, 0x18, 0x69,
1198: INDEX_REG, 0x19, 0x00,
1199: INDEX_REG, 0x1A, 0x72,
1200: INDEX_REG, 0x1B, 0x00,
1201: INDEX_REG, 0x1C, 0x20,
1202: INDEX_REG, 0x1E, 0x02,
1203: INDEX_REG, 0x20, 0x70,
1204: INDEX_REG, 0x21, 0x02,
1205: INDEX_REG, 0x22, 0x57,
1206: INDEX_REG, 0x23, 0x02,
1207: INDEX_REG, 0x24, 0x57,
1208: INDEX_REG, 0x25, 0x02,
1209: INDEX_REG, 0x26, 0x70,
1210: INDEX_REG, 0x27, 0x02,
1211: INDEX_REG, 0x28, 0x58,
1212: INDEX_REG, 0x29, 0x02,
1213: INDEX_REG, 0x2A, 0x5A,
1214: INDEX_REG, 0x2C, 0xFF,
1215: INDEX_REG, 0x2D, 0xFF,
1216: INDEX_REG, 0x36, 0x00,
1217: INDEX_REG, 0x40, 0x00,
1218: INDEX_REG, 0x41, 0x00,
1219: INDEX_REG, 0x42, 0x00,
1220: INDEX_REG, 0x43, 0x64,
1221: INDEX_REG, 0x44, 0x00,
1222: INDEX_REG, 0x54, 0x01,
1223: INDEX_REG, 0x70, 0x00,
1224: INDEX_REG, 0x51, 0x03,
1225: INDEX_REG, 0x58, 0x47,
1226: INDEX_REG, 0x54, 0x80,
1227: INDEX_REG, 0x50, 0x07,
1228: INDEX_REG, 0x55, 0x00,
1229: INDEX_REG, 0x60, 0x00,
1230: INDEX_REG, 0x61, 0x00,
1231: INDEX_REG, 0x62, 0x00,
1232: INDEX_REG, 0x63, 0x00,
1233: INDEX_REG, 0x64, 0xFF,
1234: END_OF_SWITCH
1235: };
1236:
1237:
1238: MODE_REGISTER_DATA_TABLE XGA2_800x600x8x60Hz[] = {
1239:
1240: INT_ENABLE_REG, 0x00, 0x00,
1241: INT_STATUS_REG, 0x00, 0xFF,
1242: OP_MODE_REG, 0x00, 0x04,
1243: INDEX_REG, 0x64, 0x00,
1244: APP_CTL_REG, 0x00, 0x00,
1245: APP_INDEX_REG, 0x00, 0x00,
1246: VMEM_CONTROL_REG, 0x00, 0x00,
1247: MEMACC_MODE_REG, 0x00, 0x03,
1248: INDEX_REG, 0x50, 0x01,
1249: INDEX_REG, 0x50, 0x00,
1250: INDEX_REG, 0x10, 0x83,
1251: INDEX_REG, 0x11, 0x00,
1252: INDEX_REG, 0x12, 0x63,
1253: INDEX_REG, 0x13, 0x00,
1254: INDEX_REG, 0x14, 0x63,
1255: INDEX_REG, 0x15, 0x00,
1256: INDEX_REG, 0x16, 0x83,
1257: INDEX_REG, 0x17, 0x00,
1258: INDEX_REG, 0x18, 0x6B,
1259: INDEX_REG, 0x19, 0x00,
1260: INDEX_REG, 0x1A, 0x7B,
1261: INDEX_REG, 0x1B, 0x00,
1262: INDEX_REG, 0x1C, 0x20,
1263: INDEX_REG, 0x1E, 0x02,
1264: INDEX_REG, 0x20, 0x73,
1265: INDEX_REG, 0x21, 0x02,
1266: INDEX_REG, 0x22, 0x57,
1267: INDEX_REG, 0x23, 0x02,
1268: INDEX_REG, 0x24, 0x57,
1269: INDEX_REG, 0x25, 0x02,
1270: INDEX_REG, 0x26, 0x73,
1271: INDEX_REG, 0x27, 0x02,
1272: INDEX_REG, 0x28, 0x58,
1273: INDEX_REG, 0x29, 0x02,
1274: INDEX_REG, 0x2A, 0x5C,
1275: INDEX_REG, 0x2C, 0xFF,
1276: INDEX_REG, 0x2D, 0xFF,
1277: INDEX_REG, 0x36, 0x00,
1278: INDEX_REG, 0x40, 0x00,
1279: INDEX_REG, 0x41, 0x00,
1280: INDEX_REG, 0x42, 0x00,
1281: INDEX_REG, 0x43, 0x64,
1282: INDEX_REG, 0x44, 0x00,
1283: INDEX_REG, 0x54, 0x01,
1284: INDEX_REG, 0x70, 0x00,
1285: INDEX_REG, 0x51, 0x03,
1286: INDEX_REG, 0x58, 0x4F,
1287: INDEX_REG, 0x54, 0x80,
1288: INDEX_REG, 0x50, 0x07,
1289: INDEX_REG, 0x55, 0x00,
1290: INDEX_REG, 0x60, 0x00,
1291: INDEX_REG, 0x61, 0x00,
1292: INDEX_REG, 0x62, 0x00,
1293: INDEX_REG, 0x63, 0x00,
1294: INDEX_REG, 0x64, 0xFF,
1295: END_OF_SWITCH
1296: };
1297:
1298:
1299: MODE_REGISTER_DATA_TABLE XGA2_800x600x8x72Hz[] = {
1300:
1301: INT_ENABLE_REG, 0x00, 0x00,
1302: INT_STATUS_REG, 0x00, 0xFF,
1303: OP_MODE_REG, 0x00, 0x04,
1304: INDEX_REG, 0x64, 0x00,
1305: APP_CTL_REG, 0x00, 0x00,
1306: APP_INDEX_REG, 0x00, 0x00,
1307: VMEM_CONTROL_REG, 0x00, 0x00,
1308: MEMACC_MODE_REG, 0x00, 0x03,
1309: INDEX_REG, 0x50, 0x01,
1310: INDEX_REG, 0x50, 0x00,
1311: INDEX_REG, 0x10, 0x81,
1312: INDEX_REG, 0x11, 0x00,
1313: INDEX_REG, 0x12, 0x63,
1314: INDEX_REG, 0x13, 0x00,
1315: INDEX_REG, 0x14, 0x63,
1316: INDEX_REG, 0x15, 0x00,
1317: INDEX_REG, 0x16, 0x81,
1318: INDEX_REG, 0x17, 0x00,
1319: INDEX_REG, 0x18, 0x70,
1320: INDEX_REG, 0x19, 0x00,
1321: INDEX_REG, 0x1A, 0x7F,
1322: INDEX_REG, 0x1B, 0x00,
1323: INDEX_REG, 0x1C, 0x00,
1324: INDEX_REG, 0x1E, 0x00,
1325: INDEX_REG, 0x20, 0x99,
1326: INDEX_REG, 0x21, 0x02,
1327: INDEX_REG, 0x22, 0x57,
1328: INDEX_REG, 0x23, 0x02,
1329: INDEX_REG, 0x24, 0x57,
1330: INDEX_REG, 0x25, 0x02,
1331: INDEX_REG, 0x26, 0x99,
1332: INDEX_REG, 0x27, 0x02,
1333: INDEX_REG, 0x28, 0x7C,
1334: INDEX_REG, 0x29, 0x02,
1335: INDEX_REG, 0x2A, 0x82,
1336: INDEX_REG, 0x2C, 0xFF,
1337: INDEX_REG, 0x2D, 0xFF,
1338: INDEX_REG, 0x36, 0x00,
1339: INDEX_REG, 0x40, 0x00,
1340: INDEX_REG, 0x41, 0x00,
1341: INDEX_REG, 0x42, 0x00,
1342: INDEX_REG, 0x43, 0x64,
1343: INDEX_REG, 0x44, 0x00,
1344: INDEX_REG, 0x54, 0x01,
1345: INDEX_REG, 0x70, 0x00,
1346: INDEX_REG, 0x51, 0x03,
1347: INDEX_REG, 0x58, 0x63,
1348: INDEX_REG, 0x54, 0x81,
1349: INDEX_REG, 0x50, 0x07,
1350: INDEX_REG, 0x55, 0x00,
1351: INDEX_REG, 0x60, 0x00,
1352: INDEX_REG, 0x61, 0x00,
1353: INDEX_REG, 0x62, 0x00,
1354: INDEX_REG, 0x63, 0x00,
1355: INDEX_REG, 0x64, 0xFF,
1356: END_OF_SWITCH
1357: };
1358:
1359:
1360: MODE_REGISTER_DATA_TABLE XGA2_800x600x8x75Hz[] = {
1361:
1362: INT_ENABLE_REG, 0x00, 0x00,
1363: INT_STATUS_REG, 0x00, 0xFF,
1364: OP_MODE_REG, 0x00, 0x04,
1365: INDEX_REG, 0x64, 0x00,
1366: APP_CTL_REG, 0x00, 0x00,
1367: APP_INDEX_REG, 0x00, 0x00,
1368: VMEM_CONTROL_REG, 0x00, 0x00,
1369: MEMACC_MODE_REG, 0x00, 0x03,
1370: INDEX_REG, 0x50, 0x01,
1371: INDEX_REG, 0x50, 0x00,
1372: INDEX_REG, 0x10, 0x81,
1373: INDEX_REG, 0x11, 0x00,
1374: INDEX_REG, 0x12, 0x63,
1375: INDEX_REG, 0x13, 0x00,
1376: INDEX_REG, 0x14, 0x63,
1377: INDEX_REG, 0x15, 0x00,
1378: INDEX_REG, 0x16, 0x81,
1379: INDEX_REG, 0x17, 0x00,
1380: INDEX_REG, 0x18, 0x70,
1381: INDEX_REG, 0x19, 0x00,
1382: INDEX_REG, 0x1A, 0x7F,
1383: INDEX_REG, 0x1B, 0x00,
1384: INDEX_REG, 0x1C, 0x00,
1385: INDEX_REG, 0x1E, 0x00,
1386: INDEX_REG, 0x20, 0x99,
1387: INDEX_REG, 0x21, 0x02,
1388: INDEX_REG, 0x22, 0x57,
1389: INDEX_REG, 0x23, 0x02,
1390: INDEX_REG, 0x24, 0x57,
1391: INDEX_REG, 0x25, 0x02,
1392: INDEX_REG, 0x26, 0x99,
1393: INDEX_REG, 0x27, 0x02,
1394: INDEX_REG, 0x28, 0x7C,
1395: INDEX_REG, 0x29, 0x02,
1396: INDEX_REG, 0x2A, 0x82,
1397: INDEX_REG, 0x2C, 0xFF,
1398: INDEX_REG, 0x2D, 0xFF,
1399: INDEX_REG, 0x36, 0x00,
1400: INDEX_REG, 0x40, 0x00,
1401: INDEX_REG, 0x41, 0x00,
1402: INDEX_REG, 0x42, 0x00,
1403: INDEX_REG, 0x43, 0x64,
1404: INDEX_REG, 0x44, 0x00,
1405: INDEX_REG, 0x54, 0x01,
1406: INDEX_REG, 0x70, 0x00,
1407: INDEX_REG, 0x51, 0x03,
1408: INDEX_REG, 0x58, 0x67,
1409: INDEX_REG, 0x54, 0x81,
1410: INDEX_REG, 0x50, 0x07,
1411: INDEX_REG, 0x55, 0x00,
1412: INDEX_REG, 0x60, 0x00,
1413: INDEX_REG, 0x61, 0x00,
1414: INDEX_REG, 0x62, 0x00,
1415: INDEX_REG, 0x63, 0x00,
1416: INDEX_REG, 0x64, 0xFF,
1417: END_OF_SWITCH
1418: };
1419:
1420:
1421: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x43Hz[] = {
1422:
1423: INT_ENABLE_REG, 0x00, 0x00,
1424: INT_STATUS_REG, 0x00, 0xFF,
1425: OP_MODE_REG, 0x00, 0x04,
1426: INDEX_REG, 0x64, 0x00,
1427: APP_CTL_REG, 0x00, 0x00,
1428: APP_INDEX_REG, 0x00, 0x00,
1429: VMEM_CONTROL_REG, 0x00, 0x00,
1430: MEMACC_MODE_REG, 0x00, 0x03,
1431: INDEX_REG, 0x50, 0x01,
1432: INDEX_REG, 0x50, 0x00,
1433: INDEX_REG, 0x10, 0x9D,
1434: INDEX_REG, 0x11, 0x00,
1435: INDEX_REG, 0x12, 0x7F,
1436: INDEX_REG, 0x13, 0x00,
1437: INDEX_REG, 0x14, 0x7F,
1438: INDEX_REG, 0x15, 0x00,
1439: INDEX_REG, 0x16, 0x9D,
1440: INDEX_REG, 0x17, 0x00,
1441: INDEX_REG, 0x18, 0x83,
1442: INDEX_REG, 0x19, 0x00,
1443: INDEX_REG, 0x1A, 0x99,
1444: INDEX_REG, 0x1B, 0x00,
1445: INDEX_REG, 0x1C, 0x20,
1446: INDEX_REG, 0x1E, 0x02,
1447: INDEX_REG, 0x20, 0x30,
1448: INDEX_REG, 0x21, 0x03,
1449: INDEX_REG, 0x22, 0xFF,
1450: INDEX_REG, 0x23, 0x02,
1451: INDEX_REG, 0x24, 0xFF,
1452: INDEX_REG, 0x25, 0x02,
1453: INDEX_REG, 0x26, 0x30,
1454: INDEX_REG, 0x27, 0x03,
1455: INDEX_REG, 0x28, 0x00,
1456: INDEX_REG, 0x29, 0x03,
1457: INDEX_REG, 0x2A, 0x08,
1458: INDEX_REG, 0x2C, 0xFF,
1459: INDEX_REG, 0x2D, 0xFF,
1460: INDEX_REG, 0x36, 0x00,
1461: INDEX_REG, 0x40, 0x00,
1462: INDEX_REG, 0x41, 0x00,
1463: INDEX_REG, 0x42, 0x00,
1464: INDEX_REG, 0x43, 0x80,
1465: INDEX_REG, 0x44, 0x00,
1466: INDEX_REG, 0x54, 0x01,
1467: INDEX_REG, 0x70, 0x00,
1468: INDEX_REG, 0x51, 0x03,
1469: INDEX_REG, 0x58, 0x59,
1470: INDEX_REG, 0x54, 0x80,
1471: INDEX_REG, 0x50, 0x0F,
1472: INDEX_REG, 0x55, 0x00,
1473: INDEX_REG, 0x60, 0x00,
1474: INDEX_REG, 0x61, 0x00,
1475: INDEX_REG, 0x62, 0x00,
1476: INDEX_REG, 0x63, 0x00,
1477: INDEX_REG, 0x64, 0xFF,
1478: END_OF_SWITCH
1479: };
1480:
1481:
1482: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x60Hz[] = {
1483:
1484: INT_ENABLE_REG, 0x00, 0x00,
1485: INT_STATUS_REG, 0x00, 0xFF,
1486: OP_MODE_REG, 0x00, 0x04,
1487: INDEX_REG, 0x64, 0x00,
1488: APP_CTL_REG, 0x00, 0x00,
1489: APP_INDEX_REG, 0x00, 0x00,
1490: VMEM_CONTROL_REG, 0x00, 0x00,
1491: MEMACC_MODE_REG, 0x00, 0x03,
1492: INDEX_REG, 0x50, 0x01,
1493: INDEX_REG, 0x50, 0x00,
1494: INDEX_REG, 0x10, 0xA7,
1495: INDEX_REG, 0x11, 0x00,
1496: INDEX_REG, 0x12, 0x7F,
1497: INDEX_REG, 0x13, 0x00,
1498: INDEX_REG, 0x14, 0x7F,
1499: INDEX_REG, 0x15, 0x00,
1500: INDEX_REG, 0x16, 0xA7,
1501: INDEX_REG, 0x17, 0x00,
1502: INDEX_REG, 0x18, 0x88,
1503: INDEX_REG, 0x19, 0x00,
1504: INDEX_REG, 0x1A, 0x99,
1505: INDEX_REG, 0x1B, 0x00,
1506: INDEX_REG, 0x1C, 0x00,
1507: INDEX_REG, 0x1E, 0x00,
1508: INDEX_REG, 0x20, 0x25,
1509: INDEX_REG, 0x21, 0x03,
1510: INDEX_REG, 0x22, 0xFF,
1511: INDEX_REG, 0x23, 0x02,
1512: INDEX_REG, 0x24, 0xFF,
1513: INDEX_REG, 0x25, 0x02,
1514: INDEX_REG, 0x26, 0x25,
1515: INDEX_REG, 0x27, 0x03,
1516: INDEX_REG, 0x28, 0x02,
1517: INDEX_REG, 0x29, 0x03,
1518: INDEX_REG, 0x2A, 0x08,
1519: INDEX_REG, 0x2C, 0xFF,
1520: INDEX_REG, 0x2D, 0xFF,
1521: INDEX_REG, 0x36, 0x00,
1522: INDEX_REG, 0x40, 0x00,
1523: INDEX_REG, 0x41, 0x00,
1524: INDEX_REG, 0x42, 0x00,
1525: INDEX_REG, 0x43, 0x80,
1526: INDEX_REG, 0x44, 0x00,
1527: INDEX_REG, 0x54, 0x01,
1528: INDEX_REG, 0x70, 0x00,
1529: INDEX_REG, 0x51, 0x03,
1530: INDEX_REG, 0x58, 0x80,
1531: INDEX_REG, 0x54, 0x81,
1532: INDEX_REG, 0x50, 0xC7,
1533: INDEX_REG, 0x55, 0x00,
1534: INDEX_REG, 0x60, 0x00,
1535: INDEX_REG, 0x61, 0x00,
1536: INDEX_REG, 0x62, 0x00,
1537: INDEX_REG, 0x63, 0x00,
1538: INDEX_REG, 0x64, 0xFF,
1539: END_OF_SWITCH
1540: };
1541:
1542:
1543: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x70Hz[] = {
1544:
1545: INT_ENABLE_REG, 0x00, 0x00,
1546: INT_STATUS_REG, 0x00, 0xFF,
1547: OP_MODE_REG, 0x00, 0x04,
1548: INDEX_REG, 0x64, 0x00,
1549: APP_CTL_REG, 0x00, 0x00,
1550: APP_INDEX_REG, 0x00, 0x00,
1551: VMEM_CONTROL_REG, 0x00, 0x00,
1552: MEMACC_MODE_REG, 0x00, 0x03,
1553: INDEX_REG, 0x50, 0x01,
1554: INDEX_REG, 0x50, 0x00,
1555: INDEX_REG, 0x10, 0xA5,
1556: INDEX_REG, 0x11, 0x00,
1557: INDEX_REG, 0x12, 0x7F,
1558: INDEX_REG, 0x13, 0x00,
1559: INDEX_REG, 0x14, 0x7F,
1560: INDEX_REG, 0x15, 0x00,
1561: INDEX_REG, 0x16, 0xA5,
1562: INDEX_REG, 0x17, 0x00,
1563: INDEX_REG, 0x18, 0x88,
1564: INDEX_REG, 0x19, 0x00,
1565: INDEX_REG, 0x1A, 0x99,
1566: INDEX_REG, 0x1B, 0x00,
1567: INDEX_REG, 0x1C, 0x00,
1568: INDEX_REG, 0x1E, 0x00,
1569: INDEX_REG, 0x20, 0x25,
1570: INDEX_REG, 0x21, 0x03,
1571: INDEX_REG, 0x22, 0xFF,
1572: INDEX_REG, 0x23, 0x02,
1573: INDEX_REG, 0x24, 0xFF,
1574: INDEX_REG, 0x25, 0x02,
1575: INDEX_REG, 0x26, 0x25,
1576: INDEX_REG, 0x27, 0x03,
1577: INDEX_REG, 0x28, 0x02,
1578: INDEX_REG, 0x29, 0x03,
1579: INDEX_REG, 0x2A, 0x08,
1580: INDEX_REG, 0x2C, 0xFF,
1581: INDEX_REG, 0x2D, 0xFF,
1582: INDEX_REG, 0x36, 0x00,
1583: INDEX_REG, 0x40, 0x00,
1584: INDEX_REG, 0x41, 0x00,
1585: INDEX_REG, 0x42, 0x00,
1586: INDEX_REG, 0x43, 0x80,
1587: INDEX_REG, 0x44, 0x00,
1588: INDEX_REG, 0x54, 0x01,
1589: INDEX_REG, 0x70, 0x00,
1590: INDEX_REG, 0x51, 0x03,
1591: INDEX_REG, 0x58, 0x8A,
1592: INDEX_REG, 0x54, 0x81,
1593: INDEX_REG, 0x50, 0xC7,
1594: INDEX_REG, 0x55, 0x00,
1595: INDEX_REG, 0x60, 0x00,
1596: INDEX_REG, 0x61, 0x00,
1597: INDEX_REG, 0x62, 0x00,
1598: INDEX_REG, 0x63, 0x00,
1599: INDEX_REG, 0x64, 0xFF,
1600: END_OF_SWITCH
1601: };
1602:
1603:
1604: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x70HzxIBM[] = {
1605:
1606: INT_ENABLE_REG, 0x00, 0x00,
1607: INT_STATUS_REG, 0x00, 0xFF,
1608: OP_MODE_REG, 0x00, 0x04,
1609: INDEX_REG, 0x64, 0x00,
1610: APP_CTL_REG, 0x00, 0x00,
1611: APP_INDEX_REG, 0x00, 0x00,
1612: VMEM_CONTROL_REG, 0x00, 0x00,
1613: MEMACC_MODE_REG, 0x00, 0x03,
1614: INDEX_REG, 0x50, 0x01,
1615: INDEX_REG, 0x50, 0x00,
1616: INDEX_REG, 0x10, 0xaa,
1617: INDEX_REG, 0x11, 0x00,
1618: INDEX_REG, 0x12, 0x7F,
1619: INDEX_REG, 0x13, 0x00,
1620: INDEX_REG, 0x14, 0x7F,
1621: INDEX_REG, 0x15, 0x00,
1622: INDEX_REG, 0x16, 0xaa,
1623: INDEX_REG, 0x17, 0x00,
1624: INDEX_REG, 0x18, 0x86,
1625: INDEX_REG, 0x19, 0x00,
1626: INDEX_REG, 0x1A, 0xa9,
1627: INDEX_REG, 0x1B, 0x00,
1628: INDEX_REG, 0x1C, 0x00,
1629: INDEX_REG, 0x1E, 0x00,
1630: INDEX_REG, 0x20, 0x2e,
1631: INDEX_REG, 0x21, 0x03,
1632: INDEX_REG, 0x22, 0xFF,
1633: INDEX_REG, 0x23, 0x02,
1634: INDEX_REG, 0x24, 0xFF,
1635: INDEX_REG, 0x25, 0x02,
1636: INDEX_REG, 0x26, 0x2e,
1637: INDEX_REG, 0x27, 0x03,
1638: INDEX_REG, 0x28, 0xff,
1639: INDEX_REG, 0x29, 0x02,
1640: INDEX_REG, 0x2A, 0x07,
1641: INDEX_REG, 0x2C, 0xFF,
1642: INDEX_REG, 0x2D, 0xFF,
1643: INDEX_REG, 0x36, 0x00,
1644: INDEX_REG, 0x40, 0x00,
1645: INDEX_REG, 0x41, 0x00,
1646: INDEX_REG, 0x42, 0x00,
1647: INDEX_REG, 0x43, 0x80,
1648: INDEX_REG, 0x44, 0x00,
1649: INDEX_REG, 0x54, 0x01,
1650: INDEX_REG, 0x70, 0x00,
1651: INDEX_REG, 0x51, 0x03,
1652: INDEX_REG, 0x58, 0x8D,
1653: INDEX_REG, 0x54, 0x81,
1654: INDEX_REG, 0x50, 0x07,
1655: INDEX_REG, 0x55, 0x00,
1656: INDEX_REG, 0x60, 0x00,
1657: INDEX_REG, 0x61, 0x00,
1658: INDEX_REG, 0x62, 0x00,
1659: INDEX_REG, 0x63, 0x00,
1660: INDEX_REG, 0x64, 0xFF,
1661: END_OF_SWITCH
1662: };
1663:
1664:
1665: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x72Hz[] = {
1666:
1667: INT_ENABLE_REG, 0x00, 0x00,
1668: INT_STATUS_REG, 0x00, 0xFF,
1669: OP_MODE_REG, 0x00, 0x04,
1670: INDEX_REG, 0x64, 0x00,
1671: APP_CTL_REG, 0x00, 0x00,
1672: APP_INDEX_REG, 0x00, 0x00,
1673: VMEM_CONTROL_REG, 0x00, 0x00,
1674: MEMACC_MODE_REG, 0x00, 0x03,
1675: INDEX_REG, 0x50, 0x01,
1676: INDEX_REG, 0x50, 0x00,
1677: INDEX_REG, 0x10, 0xA9,
1678: INDEX_REG, 0x11, 0x00,
1679: INDEX_REG, 0x12, 0x7F,
1680: INDEX_REG, 0x13, 0x00,
1681: INDEX_REG, 0x14, 0x7F,
1682: INDEX_REG, 0x15, 0x00,
1683: INDEX_REG, 0x16, 0xA9,
1684: INDEX_REG, 0x17, 0x00,
1685: INDEX_REG, 0x18, 0x86,
1686: INDEX_REG, 0x19, 0x00,
1687: INDEX_REG, 0x1A, 0xA9,
1688: INDEX_REG, 0x1B, 0x00,
1689: INDEX_REG, 0x1C, 0x00,
1690: INDEX_REG, 0x1E, 0x00,
1691: INDEX_REG, 0x20, 0x26,
1692: INDEX_REG, 0x21, 0x03,
1693: INDEX_REG, 0x22, 0xFF,
1694: INDEX_REG, 0x23, 0x02,
1695: INDEX_REG, 0x24, 0xFF,
1696: INDEX_REG, 0x25, 0x02,
1697: INDEX_REG, 0x26, 0x26,
1698: INDEX_REG, 0x27, 0x03,
1699: INDEX_REG, 0x28, 0xFF,
1700: INDEX_REG, 0x29, 0x02,
1701: INDEX_REG, 0x2A, 0x07,
1702: INDEX_REG, 0x2C, 0xFF,
1703: INDEX_REG, 0x2D, 0xFF,
1704: INDEX_REG, 0x36, 0x00,
1705: INDEX_REG, 0x40, 0x00,
1706: INDEX_REG, 0x41, 0x00,
1707: INDEX_REG, 0x42, 0x00,
1708: INDEX_REG, 0x43, 0x80,
1709: INDEX_REG, 0x44, 0x00,
1710: INDEX_REG, 0x54, 0x01,
1711: INDEX_REG, 0x70, 0x00,
1712: INDEX_REG, 0x51, 0x03,
1713: INDEX_REG, 0x58, 0x8E,
1714: INDEX_REG, 0x54, 0x81,
1715: INDEX_REG, 0x50, 0x07,
1716: INDEX_REG, 0x55, 0x00,
1717: INDEX_REG, 0x60, 0x00,
1718: INDEX_REG, 0x61, 0x00,
1719: INDEX_REG, 0x62, 0x00,
1720: INDEX_REG, 0x63, 0x00,
1721: INDEX_REG, 0x64, 0xFF,
1722: END_OF_SWITCH
1723: };
1724:
1725:
1726: MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x75Hz[] = {
1727:
1728: INT_ENABLE_REG, 0x00, 0x00,
1729: INT_STATUS_REG, 0x00, 0xFF,
1730: OP_MODE_REG, 0x00, 0x04,
1731: INDEX_REG, 0x64, 0x00,
1732: APP_CTL_REG, 0x00, 0x00,
1733: APP_INDEX_REG, 0x00, 0x00,
1734: VMEM_CONTROL_REG, 0x00, 0x00,
1735: MEMACC_MODE_REG, 0x00, 0x03,
1736: INDEX_REG, 0x50, 0x01,
1737: INDEX_REG, 0x50, 0x00,
1738: INDEX_REG, 0x10, 0xAF,
1739: INDEX_REG, 0x11, 0x00,
1740: INDEX_REG, 0x12, 0x7F,
1741: INDEX_REG, 0x13, 0x00,
1742: INDEX_REG, 0x14, 0x7F,
1743: INDEX_REG, 0x15, 0x00,
1744: INDEX_REG, 0x16, 0xAF,
1745: INDEX_REG, 0x17, 0x00,
1746: INDEX_REG, 0x18, 0x86,
1747: INDEX_REG, 0x19, 0x00,
1748: INDEX_REG, 0x1A, 0xAE,
1749: INDEX_REG, 0x1B, 0x00,
1750: INDEX_REG, 0x1C, 0x00,
1751: INDEX_REG, 0x1E, 0x00,
1752: INDEX_REG, 0x20, 0x25,
1753: INDEX_REG, 0x21, 0x03,
1754: INDEX_REG, 0x22, 0xFF,
1755: INDEX_REG, 0x23, 0x02,
1756: INDEX_REG, 0x24, 0xFF,
1757: INDEX_REG, 0x25, 0x02,
1758: INDEX_REG, 0x26, 0x25,
1759: INDEX_REG, 0x27, 0x03,
1760: INDEX_REG, 0x28, 0xFF,
1761: INDEX_REG, 0x29, 0x02,
1762: INDEX_REG, 0x2A, 0x07,
1763: INDEX_REG, 0x2C, 0xFF,
1764: INDEX_REG, 0x2D, 0xFF,
1765: INDEX_REG, 0x36, 0x00,
1766: INDEX_REG, 0x40, 0x00,
1767: INDEX_REG, 0x41, 0x00,
1768: INDEX_REG, 0x42, 0x00,
1769: INDEX_REG, 0x43, 0x80,
1770: INDEX_REG, 0x44, 0x00,
1771: INDEX_REG, 0x54, 0x01,
1772: INDEX_REG, 0x70, 0x00,
1773: INDEX_REG, 0x51, 0x03,
1774: INDEX_REG, 0x58, 0x95,
1775: INDEX_REG, 0x54, 0x81,
1776: INDEX_REG, 0x50, 0x07,
1777: INDEX_REG, 0x55, 0x00,
1778: INDEX_REG, 0x60, 0x00,
1779: INDEX_REG, 0x61, 0x00,
1780: INDEX_REG, 0x62, 0x00,
1781: INDEX_REG, 0x63, 0x00,
1782: INDEX_REG, 0x64, 0xFF,
1783: END_OF_SWITCH
1784: };
1785:
1786:
1787: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x43Hz[] = {
1788:
1789: INT_ENABLE_REG, 0x00, 0x00,
1790: INT_STATUS_REG, 0x00, 0xFF,
1791: OP_MODE_REG, 0x00, 0x04,
1792: INDEX_REG, 0x64, 0x00,
1793: APP_CTL_REG, 0x00, 0x00,
1794: APP_INDEX_REG, 0x00, 0x00,
1795: VMEM_CONTROL_REG, 0x00, 0x00,
1796: MEMACC_MODE_REG, 0x00, 0x03,
1797: INDEX_REG, 0x50, 0x01,
1798: INDEX_REG, 0x50, 0x00,
1799: INDEX_REG, 0x10, 0x9F,
1800: INDEX_REG, 0x11, 0x00,
1801: INDEX_REG, 0x12, 0x81,
1802: INDEX_REG, 0x13, 0x00,
1803: INDEX_REG, 0x14, 0x81,
1804: INDEX_REG, 0x15, 0x00,
1805: INDEX_REG, 0x16, 0x9F,
1806: INDEX_REG, 0x17, 0x00,
1807: INDEX_REG, 0x18, 0x88,
1808: INDEX_REG, 0x19, 0x00,
1809: INDEX_REG, 0x1A, 0x9E,
1810: INDEX_REG, 0x1B, 0x00,
1811: INDEX_REG, 0x1C, 0x00,
1812: INDEX_REG, 0x1E, 0x00,
1813: INDEX_REG, 0x20, 0x30,
1814: INDEX_REG, 0x21, 0x03,
1815: INDEX_REG, 0x22, 0xFF,
1816: INDEX_REG, 0x23, 0x02,
1817: INDEX_REG, 0x24, 0xFF,
1818: INDEX_REG, 0x25, 0x02,
1819: INDEX_REG, 0x26, 0x30,
1820: INDEX_REG, 0x27, 0x03,
1821: INDEX_REG, 0x28, 0x00,
1822: INDEX_REG, 0x29, 0x03,
1823: INDEX_REG, 0x2A, 0x08,
1824: INDEX_REG, 0x2C, 0xFF,
1825: INDEX_REG, 0x2D, 0xFF,
1826: INDEX_REG, 0x36, 0x00,
1827: INDEX_REG, 0x40, 0x00,
1828: INDEX_REG, 0x41, 0x00,
1829: INDEX_REG, 0x42, 0x00,
1830: INDEX_REG, 0x43, 0x82,
1831: INDEX_REG, 0x44, 0x00,
1832: INDEX_REG, 0x54, 0x01,
1833: INDEX_REG, 0x70, 0x00,
1834: INDEX_REG, 0x51, 0x03,
1835: INDEX_REG, 0x58, 0x5A,
1836: INDEX_REG, 0x54, 0x81,
1837: INDEX_REG, 0x50, 0x0F,
1838: INDEX_REG, 0x55, 0x00,
1839: INDEX_REG, 0x60, 0x00,
1840: INDEX_REG, 0x61, 0x00,
1841: INDEX_REG, 0x62, 0x00,
1842: INDEX_REG, 0x63, 0x00,
1843: INDEX_REG, 0x64, 0xFF,
1844: END_OF_SWITCH
1845: };
1846:
1847:
1848: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x60Hz[] = {
1849:
1850: INT_ENABLE_REG, 0x00, 0x00,
1851: INT_STATUS_REG, 0x00, 0xFF,
1852: OP_MODE_REG, 0x00, 0x04,
1853: INDEX_REG, 0x64, 0x00,
1854: APP_CTL_REG, 0x00, 0x00,
1855: APP_INDEX_REG, 0x00, 0x00,
1856: VMEM_CONTROL_REG, 0x00, 0x00,
1857: MEMACC_MODE_REG, 0x00, 0x03,
1858: INDEX_REG, 0x50, 0x01,
1859: INDEX_REG, 0x50, 0x00,
1860: INDEX_REG, 0x10, 0xAA,
1861: INDEX_REG, 0x11, 0x00,
1862: INDEX_REG, 0x12, 0x81,
1863: INDEX_REG, 0x13, 0x00,
1864: INDEX_REG, 0x14, 0x81,
1865: INDEX_REG, 0x15, 0x00,
1866: INDEX_REG, 0x16, 0xAA,
1867: INDEX_REG, 0x17, 0x00,
1868: INDEX_REG, 0x18, 0x8A,
1869: INDEX_REG, 0x19, 0x00,
1870: INDEX_REG, 0x1A, 0x9B,
1871: INDEX_REG, 0x1B, 0x00,
1872: INDEX_REG, 0x1C, 0x00,
1873: INDEX_REG, 0x1E, 0x00,
1874: INDEX_REG, 0x20, 0x25,
1875: INDEX_REG, 0x21, 0x03,
1876: INDEX_REG, 0x22, 0xFF,
1877: INDEX_REG, 0x23, 0x02,
1878: INDEX_REG, 0x24, 0xFF,
1879: INDEX_REG, 0x25, 0x02,
1880: INDEX_REG, 0x26, 0x25,
1881: INDEX_REG, 0x27, 0x03,
1882: INDEX_REG, 0x28, 0x02,
1883: INDEX_REG, 0x29, 0x03,
1884: INDEX_REG, 0x2A, 0x08,
1885: INDEX_REG, 0x2C, 0xFF,
1886: INDEX_REG, 0x2D, 0xFF,
1887: INDEX_REG, 0x36, 0x00,
1888: INDEX_REG, 0x40, 0x00,
1889: INDEX_REG, 0x41, 0x00,
1890: INDEX_REG, 0x42, 0x00,
1891: INDEX_REG, 0x43, 0x82,
1892: INDEX_REG, 0x44, 0x00,
1893: INDEX_REG, 0x54, 0x01,
1894: INDEX_REG, 0x70, 0x00,
1895: INDEX_REG, 0x51, 0x03,
1896: INDEX_REG, 0x58, 0x81,
1897: INDEX_REG, 0x54, 0x81,
1898: INDEX_REG, 0x50, 0xC7,
1899: INDEX_REG, 0x55, 0x00,
1900: INDEX_REG, 0x60, 0x00,
1901: INDEX_REG, 0x61, 0x00,
1902: INDEX_REG, 0x62, 0x00,
1903: INDEX_REG, 0x63, 0x00,
1904: INDEX_REG, 0x64, 0xFF,
1905: END_OF_SWITCH
1906: };
1907:
1908:
1909: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x70Hz[] = {
1910:
1911: INT_ENABLE_REG, 0x00, 0x00,
1912: INT_STATUS_REG, 0x00, 0xFF,
1913: OP_MODE_REG, 0x00, 0x04,
1914: INDEX_REG, 0x64, 0x00,
1915: APP_CTL_REG, 0x00, 0x00,
1916: APP_INDEX_REG, 0x00, 0x00,
1917: VMEM_CONTROL_REG, 0x00, 0x00,
1918: MEMACC_MODE_REG, 0x00, 0x03,
1919: INDEX_REG, 0x50, 0x01,
1920: INDEX_REG, 0x50, 0x00,
1921: INDEX_REG, 0x10, 0xA8,
1922: INDEX_REG, 0x11, 0x00,
1923: INDEX_REG, 0x12, 0x81,
1924: INDEX_REG, 0x13, 0x00,
1925: INDEX_REG, 0x14, 0x81,
1926: INDEX_REG, 0x15, 0x00,
1927: INDEX_REG, 0x16, 0xA8,
1928: INDEX_REG, 0x17, 0x00,
1929: INDEX_REG, 0x18, 0x8A,
1930: INDEX_REG, 0x19, 0x00,
1931: INDEX_REG, 0x1A, 0x9B,
1932: INDEX_REG, 0x1B, 0x00,
1933: INDEX_REG, 0x1C, 0x00,
1934: INDEX_REG, 0x1E, 0x00,
1935: INDEX_REG, 0x20, 0x25,
1936: INDEX_REG, 0x21, 0x03,
1937: INDEX_REG, 0x22, 0xFF,
1938: INDEX_REG, 0x23, 0x02,
1939: INDEX_REG, 0x24, 0xFF,
1940: INDEX_REG, 0x25, 0x02,
1941: INDEX_REG, 0x26, 0x25,
1942: INDEX_REG, 0x27, 0x03,
1943: INDEX_REG, 0x28, 0x02,
1944: INDEX_REG, 0x29, 0x03,
1945: INDEX_REG, 0x2A, 0x08,
1946: INDEX_REG, 0x2C, 0xFF,
1947: INDEX_REG, 0x2D, 0xFF,
1948: INDEX_REG, 0x36, 0x00,
1949: INDEX_REG, 0x40, 0x00,
1950: INDEX_REG, 0x41, 0x00,
1951: INDEX_REG, 0x42, 0x00,
1952: INDEX_REG, 0x43, 0x82,
1953: INDEX_REG, 0x44, 0x00,
1954: INDEX_REG, 0x54, 0x01,
1955: INDEX_REG, 0x70, 0x00,
1956: INDEX_REG, 0x51, 0x03,
1957: INDEX_REG, 0x58, 0x8B,
1958: INDEX_REG, 0x54, 0x81,
1959: INDEX_REG, 0x50, 0xC7,
1960: INDEX_REG, 0x55, 0x00,
1961: INDEX_REG, 0x60, 0x00,
1962: INDEX_REG, 0x61, 0x00,
1963: INDEX_REG, 0x62, 0x00,
1964: INDEX_REG, 0x63, 0x00,
1965: INDEX_REG, 0x64, 0xFF,
1966: END_OF_SWITCH
1967: };
1968:
1969:
1970: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x70HzDBCS[] = {
1971:
1972: INT_ENABLE_REG, 0x00, 0x00,
1973: INT_STATUS_REG, 0x00, 0xFF,
1974: OP_MODE_REG, 0x00, 0x04,
1975: INDEX_REG, 0x64, 0x00,
1976: APP_CTL_REG, 0x00, 0x00,
1977: APP_INDEX_REG, 0x00, 0x00,
1978: VMEM_CONTROL_REG, 0x00, 0x00,
1979: MEMACC_MODE_REG, 0x00, 0x03,
1980: INDEX_REG, 0x50, 0x01,
1981: INDEX_REG, 0x50, 0x00,
1982: INDEX_REG, 0x10, 0xAD,
1983: INDEX_REG, 0x11, 0x00,
1984: INDEX_REG, 0x12, 0x81,
1985: INDEX_REG, 0x13, 0x00,
1986: INDEX_REG, 0x14, 0x81,
1987: INDEX_REG, 0x15, 0x00,
1988: INDEX_REG, 0x16, 0xAD,
1989: INDEX_REG, 0x17, 0x00,
1990: INDEX_REG, 0x18, 0x88,
1991: INDEX_REG, 0x19, 0x00,
1992: INDEX_REG, 0x1A, 0xAB,
1993: INDEX_REG, 0x1B, 0x00,
1994: INDEX_REG, 0x1C, 0x00,
1995: INDEX_REG, 0x1E, 0x00,
1996: INDEX_REG, 0x20, 0x2E,
1997: INDEX_REG, 0x21, 0x03,
1998: INDEX_REG, 0x22, 0xFF,
1999: INDEX_REG, 0x23, 0x02,
2000: INDEX_REG, 0x24, 0xFF,
2001: INDEX_REG, 0x25, 0x02,
2002: INDEX_REG, 0x26, 0x2E,
2003: INDEX_REG, 0x27, 0x03,
2004: INDEX_REG, 0x28, 0xFF,
2005: INDEX_REG, 0x29, 0x02,
2006: INDEX_REG, 0x2A, 0x07,
2007: INDEX_REG, 0x2C, 0xFF,
2008: INDEX_REG, 0x2D, 0xFF,
2009: INDEX_REG, 0x36, 0x00,
2010: INDEX_REG, 0x40, 0x00,
2011: INDEX_REG, 0x41, 0x00,
2012: INDEX_REG, 0x42, 0x00,
2013: INDEX_REG, 0x43, 0x82,
2014: INDEX_REG, 0x44, 0x00,
2015: INDEX_REG, 0x54, 0x01,
2016: INDEX_REG, 0x70, 0x00,
2017: INDEX_REG, 0x51, 0x03,
2018: INDEX_REG, 0x58, 0x8E,
2019: INDEX_REG, 0x54, 0x81,
2020: INDEX_REG, 0x50, 0x07,
2021: INDEX_REG, 0x55, 0x00,
2022: INDEX_REG, 0x60, 0x00,
2023: INDEX_REG, 0x61, 0x00,
2024: INDEX_REG, 0x62, 0x00,
2025: INDEX_REG, 0x63, 0x00,
2026: INDEX_REG, 0x64, 0xFF,
2027: END_OF_SWITCH
2028: };
2029:
2030:
2031: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x72Hz[] = {
2032:
2033: INT_ENABLE_REG, 0x00, 0x00,
2034: INT_STATUS_REG, 0x00, 0xFF,
2035: OP_MODE_REG, 0x00, 0x04,
2036: INDEX_REG, 0x64, 0x00,
2037: APP_CTL_REG, 0x00, 0x00,
2038: APP_INDEX_REG, 0x00, 0x00,
2039: VMEM_CONTROL_REG, 0x00, 0x00,
2040: MEMACC_MODE_REG, 0x00, 0x03,
2041: INDEX_REG, 0x50, 0x01,
2042: INDEX_REG, 0x50, 0x00,
2043: INDEX_REG, 0x10, 0xAE,
2044: INDEX_REG, 0x11, 0x00,
2045: INDEX_REG, 0x12, 0x81,
2046: INDEX_REG, 0x13, 0x00,
2047: INDEX_REG, 0x14, 0x81,
2048: INDEX_REG, 0x15, 0x00,
2049: INDEX_REG, 0x16, 0xAE,
2050: INDEX_REG, 0x17, 0x00,
2051: INDEX_REG, 0x18, 0x89,
2052: INDEX_REG, 0x19, 0x00,
2053: INDEX_REG, 0x1A, 0xAD,
2054: INDEX_REG, 0x1B, 0x00,
2055: INDEX_REG, 0x1C, 0x00,
2056: INDEX_REG, 0x1E, 0x00,
2057: INDEX_REG, 0x20, 0x26,
2058: INDEX_REG, 0x21, 0x03,
2059: INDEX_REG, 0x22, 0xFF,
2060: INDEX_REG, 0x23, 0x02,
2061: INDEX_REG, 0x24, 0xFF,
2062: INDEX_REG, 0x25, 0x02,
2063: INDEX_REG, 0x26, 0x26,
2064: INDEX_REG, 0x27, 0x03,
2065: INDEX_REG, 0x28, 0xFF,
2066: INDEX_REG, 0x29, 0x02,
2067: INDEX_REG, 0x2A, 0x07,
2068: INDEX_REG, 0x2C, 0xFF,
2069: INDEX_REG, 0x2D, 0xFF,
2070: INDEX_REG, 0x36, 0x00,
2071: INDEX_REG, 0x40, 0x00,
2072: INDEX_REG, 0x41, 0x00,
2073: INDEX_REG, 0x42, 0x00,
2074: INDEX_REG, 0x43, 0x82,
2075: INDEX_REG, 0x44, 0x00,
2076: INDEX_REG, 0x54, 0x01,
2077: INDEX_REG, 0x70, 0x00,
2078: INDEX_REG, 0x51, 0x03,
2079: INDEX_REG, 0x58, 0x90,
2080: INDEX_REG, 0x54, 0x81,
2081: INDEX_REG, 0x50, 0x07,
2082: INDEX_REG, 0x55, 0x00,
2083: INDEX_REG, 0x60, 0x00,
2084: INDEX_REG, 0x61, 0x00,
2085: INDEX_REG, 0x62, 0x00,
2086: INDEX_REG, 0x63, 0x00,
2087: INDEX_REG, 0x64, 0xFF,
2088: END_OF_SWITCH
2089: };
2090:
2091:
2092: MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x75Hz[] = {
2093:
2094: INT_ENABLE_REG, 0x00, 0x00,
2095: INT_STATUS_REG, 0x00, 0xFF,
2096: OP_MODE_REG, 0x00, 0x04,
2097: INDEX_REG, 0x64, 0x00,
2098: APP_CTL_REG, 0x00, 0x00,
2099: APP_INDEX_REG, 0x00, 0x00,
2100: VMEM_CONTROL_REG, 0x00, 0x00,
2101: MEMACC_MODE_REG, 0x00, 0x03,
2102: INDEX_REG, 0x50, 0x01,
2103: INDEX_REG, 0x50, 0x00,
2104: INDEX_REG, 0x10, 0xB2,
2105: INDEX_REG, 0x11, 0x00,
2106: INDEX_REG, 0x12, 0x81,
2107: INDEX_REG, 0x13, 0x00,
2108: INDEX_REG, 0x14, 0x81,
2109: INDEX_REG, 0x15, 0x00,
2110: INDEX_REG, 0x16, 0xB2,
2111: INDEX_REG, 0x17, 0x00,
2112: INDEX_REG, 0x18, 0x88,
2113: INDEX_REG, 0x19, 0x00,
2114: INDEX_REG, 0x1A, 0xB0,
2115: INDEX_REG, 0x1B, 0x00,
2116: INDEX_REG, 0x1C, 0x00,
2117: INDEX_REG, 0x1E, 0x00,
2118: INDEX_REG, 0x20, 0x25,
2119: INDEX_REG, 0x21, 0x03,
2120: INDEX_REG, 0x22, 0xFF,
2121: INDEX_REG, 0x23, 0x02,
2122: INDEX_REG, 0x24, 0xFF,
2123: INDEX_REG, 0x25, 0x02,
2124: INDEX_REG, 0x26, 0x25,
2125: INDEX_REG, 0x27, 0x03,
2126: INDEX_REG, 0x28, 0xFF,
2127: INDEX_REG, 0x29, 0x02,
2128: INDEX_REG, 0x2A, 0x07,
2129: INDEX_REG, 0x2C, 0xFF,
2130: INDEX_REG, 0x2D, 0xFF,
2131: INDEX_REG, 0x36, 0x00,
2132: INDEX_REG, 0x40, 0x00,
2133: INDEX_REG, 0x41, 0x00,
2134: INDEX_REG, 0x42, 0x00,
2135: INDEX_REG, 0x43, 0x82,
2136: INDEX_REG, 0x44, 0x00,
2137: INDEX_REG, 0x54, 0x01,
2138: INDEX_REG, 0x70, 0x00,
2139: INDEX_REG, 0x51, 0x03,
2140: INDEX_REG, 0x58, 0x96,
2141: INDEX_REG, 0x54, 0x81,
2142: INDEX_REG, 0x50, 0x07,
2143: INDEX_REG, 0x55, 0x00,
2144: INDEX_REG, 0x60, 0x00,
2145: INDEX_REG, 0x61, 0x00,
2146: INDEX_REG, 0x62, 0x00,
2147: INDEX_REG, 0x63, 0x00,
2148: INDEX_REG, 0x64, 0xFF,
2149: END_OF_SWITCH
2150: };
2151:
2152:
2153: MODE_REGISTER_DATA_TABLE XGA2_1104x828x8x69Hz[] = {
2154:
2155: INT_ENABLE_REG, 0x00, 0x00,
2156: INT_STATUS_REG, 0x00, 0xFF,
2157: OP_MODE_REG, 0x00, 0x04,
2158: INDEX_REG, 0x64, 0x00,
2159: APP_CTL_REG, 0x00, 0x00,
2160: APP_INDEX_REG, 0x00, 0x00,
2161: VMEM_CONTROL_REG, 0x00, 0x00,
2162: MEMACC_MODE_REG, 0x00, 0x03,
2163: INDEX_REG, 0x50, 0x01,
2164: INDEX_REG, 0x50, 0x00,
2165: INDEX_REG, 0x10, 0xBD,
2166: INDEX_REG, 0x11, 0x00,
2167: INDEX_REG, 0x12, 0x89,
2168: INDEX_REG, 0x13, 0x00,
2169: INDEX_REG, 0x14, 0x89,
2170: INDEX_REG, 0x15, 0x00,
2171: INDEX_REG, 0x16, 0xBD,
2172: INDEX_REG, 0x17, 0x00,
2173: INDEX_REG, 0x18, 0x94,
2174: INDEX_REG, 0x19, 0x00,
2175: INDEX_REG, 0x1A, 0xAD,
2176: INDEX_REG, 0x1B, 0x00,
2177: INDEX_REG, 0x1C, 0x00,
2178: INDEX_REG, 0x1E, 0x00,
2179: INDEX_REG, 0x20, 0x5B,
2180: INDEX_REG, 0x21, 0x03,
2181: INDEX_REG, 0x22, 0x3B,
2182: INDEX_REG, 0x23, 0x03,
2183: INDEX_REG, 0x24, 0x3B,
2184: INDEX_REG, 0x25, 0x03,
2185: INDEX_REG, 0x26, 0x5B,
2186: INDEX_REG, 0x27, 0x03,
2187: INDEX_REG, 0x28, 0x3E,
2188: INDEX_REG, 0x29, 0x03,
2189: INDEX_REG, 0x2A, 0x41,
2190: INDEX_REG, 0x2C, 0xFF,
2191: INDEX_REG, 0x2D, 0xFF,
2192: INDEX_REG, 0x36, 0x00,
2193: INDEX_REG, 0x40, 0x00,
2194: INDEX_REG, 0x41, 0x00,
2195: INDEX_REG, 0x42, 0x00,
2196: INDEX_REG, 0x43, 0x8A,
2197: INDEX_REG, 0x44, 0x00,
2198: INDEX_REG, 0x54, 0x01,
2199: INDEX_REG, 0x70, 0x00,
2200: INDEX_REG, 0x51, 0x03,
2201: INDEX_REG, 0x58, 0x99,
2202: INDEX_REG, 0x54, 0x81,
2203: INDEX_REG, 0x50, 0x87,
2204: INDEX_REG, 0x55, 0x00,
2205: INDEX_REG, 0x60, 0x00,
2206: INDEX_REG, 0x61, 0x00,
2207: INDEX_REG, 0x62, 0x00,
2208: INDEX_REG, 0x63, 0x00,
2209: INDEX_REG, 0x64, 0xFF,
2210: END_OF_SWITCH
2211: };
2212:
2213:
2214: MODE_REGISTER_DATA_TABLE XGA2_1280x1024x8x45Hz[] = {
2215:
2216: INT_ENABLE_REG, 0x00, 0x00,
2217: INT_STATUS_REG, 0x00, 0xFF,
2218: OP_MODE_REG, 0x00, 0x04,
2219: INDEX_REG, 0x64, 0x00,
2220: APP_CTL_REG, 0x00, 0x00,
2221: APP_INDEX_REG, 0x00, 0x00,
2222: VMEM_CONTROL_REG, 0x00, 0x00,
2223: MEMACC_MODE_REG, 0x00, 0x03,
2224: INDEX_REG, 0x50, 0x01,
2225: INDEX_REG, 0x50, 0x00,
2226: INDEX_REG, 0x10, 0xD1,
2227: INDEX_REG, 0x11, 0x00,
2228: INDEX_REG, 0x12, 0x9F,
2229: INDEX_REG, 0x13, 0x00,
2230: INDEX_REG, 0x14, 0x9F,
2231: INDEX_REG, 0x15, 0x00,
2232: INDEX_REG, 0x16, 0xD1,
2233: INDEX_REG, 0x17, 0x00,
2234: INDEX_REG, 0x18, 0xA7,
2235: INDEX_REG, 0x19, 0x00,
2236: INDEX_REG, 0x1A, 0xCF,
2237: INDEX_REG, 0x1B, 0x00,
2238: INDEX_REG, 0x1C, 0x00,
2239: INDEX_REG, 0x1E, 0x00,
2240: INDEX_REG, 0x20, 0x44,
2241: INDEX_REG, 0x21, 0x04,
2242: INDEX_REG, 0x22, 0xFF,
2243: INDEX_REG, 0x23, 0x03,
2244: INDEX_REG, 0x24, 0xFF,
2245: INDEX_REG, 0x25, 0x03,
2246: INDEX_REG, 0x26, 0x44,
2247: INDEX_REG, 0x27, 0x04,
2248: INDEX_REG, 0x28, 0x02,
2249: INDEX_REG, 0x29, 0x04,
2250: INDEX_REG, 0x2A, 0x0A,
2251: INDEX_REG, 0x2C, 0xFF,
2252: INDEX_REG, 0x2D, 0xFF,
2253: INDEX_REG, 0x36, 0x00,
2254: INDEX_REG, 0x40, 0x00,
2255: INDEX_REG, 0x41, 0x00,
2256: INDEX_REG, 0x42, 0x00,
2257: INDEX_REG, 0x43, 0xA0,
2258: INDEX_REG, 0x44, 0x00,
2259: INDEX_REG, 0x54, 0x01,
2260: INDEX_REG, 0x70, 0x00,
2261: INDEX_REG, 0x51, 0x03,
2262: INDEX_REG, 0x58, 0x91,
2263: INDEX_REG, 0x54, 0x81,
2264: INDEX_REG, 0x50, 0x4F,
2265: INDEX_REG, 0x55, 0x00,
2266: INDEX_REG, 0x60, 0x00,
2267: INDEX_REG, 0x61, 0x00,
2268: INDEX_REG, 0x62, 0x00,
2269: INDEX_REG, 0x63, 0x00,
2270: INDEX_REG, 0x64, 0xFF,
2271: END_OF_SWITCH
2272: };
2273:
2274:
2275: MODE_REGISTER_DATA_TABLE XGA2_1280x960x8x45Hz[] = {
2276:
2277: INT_ENABLE_REG, 0x00, 0x00,
2278: INT_STATUS_REG, 0x00, 0xFF,
2279: OP_MODE_REG, 0x00, 0x04,
2280: INDEX_REG, 0x64, 0x00,
2281: APP_CTL_REG, 0x00, 0x00,
2282: APP_INDEX_REG, 0x00, 0x00,
2283: VMEM_CONTROL_REG, 0x00, 0x00,
2284: MEMACC_MODE_REG, 0x00, 0x03,
2285: INDEX_REG, 0x50, 0x01,
2286: INDEX_REG, 0x50, 0x00,
2287: INDEX_REG, 0x10, 0xD1,
2288: INDEX_REG, 0x11, 0x00,
2289: INDEX_REG, 0x12, 0x9F,
2290: INDEX_REG, 0x13, 0x00,
2291: INDEX_REG, 0x14, 0x9F,
2292: INDEX_REG, 0x15, 0x00,
2293: INDEX_REG, 0x16, 0xD1,
2294: INDEX_REG, 0x17, 0x00,
2295: INDEX_REG, 0x18, 0xA7,
2296: INDEX_REG, 0x19, 0x00,
2297: INDEX_REG, 0x1A, 0xCF,
2298: INDEX_REG, 0x1B, 0x00,
2299: INDEX_REG, 0x1C, 0x00,
2300: INDEX_REG, 0x1E, 0x00,
2301: INDEX_REG, 0x20, 0x04,
2302: INDEX_REG, 0x21, 0x04,
2303: INDEX_REG, 0x22, 0xBF,
2304: INDEX_REG, 0x23, 0x03,
2305: INDEX_REG, 0x24, 0xBF,
2306: INDEX_REG, 0x25, 0x03,
2307: INDEX_REG, 0x26, 0x04,
2308: INDEX_REG, 0x27, 0x04,
2309: INDEX_REG, 0x28, 0xC2,
2310: INDEX_REG, 0x29, 0x03,
2311: INDEX_REG, 0x2A, 0xCA,
2312: INDEX_REG, 0x2C, 0xFF,
2313: INDEX_REG, 0x2D, 0xFF,
2314: INDEX_REG, 0x36, 0x00,
2315: INDEX_REG, 0x40, 0x00,
2316: INDEX_REG, 0x41, 0x00,
2317: INDEX_REG, 0x42, 0x00,
2318: INDEX_REG, 0x43, 0xA0,
2319: INDEX_REG, 0x44, 0x00,
2320: INDEX_REG, 0x54, 0x01,
2321: INDEX_REG, 0x70, 0x00,
2322: INDEX_REG, 0x51, 0x03,
2323: INDEX_REG, 0x58, 0x8C,
2324: INDEX_REG, 0x54, 0x81,
2325: INDEX_REG, 0x50, 0x4F,
2326: INDEX_REG, 0x55, 0x00,
2327: INDEX_REG, 0x60, 0x00,
2328: INDEX_REG, 0x61, 0x00,
2329: INDEX_REG, 0x62, 0x00,
2330: INDEX_REG, 0x63, 0x00,
2331: INDEX_REG, 0x64, 0xFF,
2332: END_OF_SWITCH
2333: };
2334:
2335:
2336: MODE_REGISTER_DATA_TABLE XGA2_1360x1024x8x45Hz[] = {
2337:
2338: INT_ENABLE_REG, 0x00, 0x00,
2339: INT_STATUS_REG, 0x00, 0xFF,
2340: OP_MODE_REG, 0x00, 0x04,
2341: INDEX_REG, 0x64, 0x00,
2342: APP_CTL_REG, 0x00, 0x00,
2343: APP_INDEX_REG, 0x00, 0x00,
2344: VMEM_CONTROL_REG, 0x00, 0x00,
2345: MEMACC_MODE_REG, 0x00, 0x03,
2346: INDEX_REG, 0x50, 0x01,
2347: INDEX_REG, 0x50, 0x00,
2348: INDEX_REG, 0x10, 0xDB,
2349: INDEX_REG, 0x11, 0x00,
2350: INDEX_REG, 0x12, 0xA9,
2351: INDEX_REG, 0x13, 0x00,
2352: INDEX_REG, 0x14, 0xA9,
2353: INDEX_REG, 0x15, 0x00,
2354: INDEX_REG, 0x16, 0xDB,
2355: INDEX_REG, 0x17, 0x00,
2356: INDEX_REG, 0x18, 0xB1,
2357: INDEX_REG, 0x19, 0x00,
2358: INDEX_REG, 0x1A, 0xD9,
2359: INDEX_REG, 0x1B, 0x00,
2360: INDEX_REG, 0x1C, 0x00,
2361: INDEX_REG, 0x1E, 0x00,
2362: INDEX_REG, 0x20, 0x40,
2363: INDEX_REG, 0x21, 0x04,
2364: INDEX_REG, 0x22, 0xFF,
2365: INDEX_REG, 0x23, 0x03,
2366: INDEX_REG, 0x24, 0xFF,
2367: INDEX_REG, 0x25, 0x03,
2368: INDEX_REG, 0x26, 0x40,
2369: INDEX_REG, 0x27, 0x04,
2370: INDEX_REG, 0x28, 0x02,
2371: INDEX_REG, 0x29, 0x04,
2372: INDEX_REG, 0x2A, 0x0A,
2373: INDEX_REG, 0x2C, 0xFF,
2374: INDEX_REG, 0x2D, 0xFF,
2375: INDEX_REG, 0x36, 0x00,
2376: INDEX_REG, 0x40, 0x00,
2377: INDEX_REG, 0x41, 0x00,
2378: INDEX_REG, 0x42, 0x00,
2379: INDEX_REG, 0x43, 0xAA,
2380: INDEX_REG, 0x44, 0x00,
2381: INDEX_REG, 0x54, 0x01,
2382: INDEX_REG, 0x70, 0x00,
2383: INDEX_REG, 0x51, 0x03,
2384: INDEX_REG, 0x58, 0x95,
2385: INDEX_REG, 0x54, 0x81,
2386: INDEX_REG, 0x50, 0x4F,
2387: INDEX_REG, 0x55, 0x00,
2388: INDEX_REG, 0x60, 0x00,
2389: INDEX_REG, 0x61, 0x00,
2390: INDEX_REG, 0x62, 0x00,
2391: INDEX_REG, 0x63, 0x00,
2392: INDEX_REG, 0x64, 0xFF,
2393: END_OF_SWITCH
2394: };
2395:
2396:
2397: //
2398: // mode information tables
2399: //
2400:
2401: //
2402: // Characteristics of each mode
2403: //
2404:
2405: typedef struct _XGA_VIDEO_MODE {
2406: PMODE_REGISTER_DATA_TABLE Xga1Mode;
2407: PMODE_REGISTER_DATA_TABLE Xga2Mode;
2408: ULONG minimumRequiredMemory;
2409: VIDEO_MODE_INFORMATION modeInformation;
2410: } XGA_VIDEO_MODE, *PXGA_VIDEO_MODE;
2411:
2412:
2413: //
2414: // Video mode table - Lists the information about each individual mode
2415: //
2416:
2417: XGA_VIDEO_MODE XgaModes[] = {
2418:
2419: {
2420: XGA1_MODE_640_480_64_GR, // Mode setting table for XGA 1
2421: NULL, // Mode setting table for XGA 2
2422: 0x00080000, // Required Video memory for this mode
2423: {
2424: sizeof(VIDEO_MODE_INFORMATION), // Size of the mode informtion structure
2425: 0, // Mode index used in setting the mode
2426: 640, // X Resolution, in pixels
2427: 480, // Y Resolution, in pixels
2428: 480, // Screen stride, in bytes (distance
2429: // between the start point of two
2430: // consecutive scan lines, in bytes)
2431: 1, // Number of video memory planes
2432: 6, // Number of bits per plane
2433: 0, // Screen Frequency, in Hertz
2434: 330, // Horizontal size of screen in millimeters
2435: 240, // Vertical size of screen in millimeters
2436: 8, // Number Red pixels in DAC
2437: 8, // Number Green pixels in DAC
2438: 8, // Number Blue pixels in DAC
2439: 0x00000000, // Mask for Red Pixels in non-palette modes
2440: 0x00000000, // Mask for Green Pixels in non-palette modes
2441: 0x00000000, // Mask for Blue Pixels in non-palette modes
2442: VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2443: VIDEO_MODE_MANAGED_PALETTE // Mode description flags.
2444: }
2445: },
2446: {
2447: XGA1_MODE_1024_768_16_GR,
2448: NULL,
2449: 0x00080000,
2450: {
2451: sizeof(VIDEO_MODE_INFORMATION),
2452: 1,
2453: 1024,
2454: 768,
2455: 512,
2456: 1,
2457: 4,
2458: 0,
2459: 330,
2460: 240,
2461: 8,
2462: 8,
2463: 8,
2464: 0x00000000,
2465: 0x00000000,
2466: 0x00000000,
2467: VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2468: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
2469: }
2470: },
2471: {
2472: XGA1_MODE_1024_768_64_GR,
2473: NULL,
2474: 0x00100000,
2475: {
2476: sizeof(VIDEO_MODE_INFORMATION),
2477: 2,
2478: 1024,
2479: 768,
2480: 768,
2481: 1,
2482: 6,
2483: 0,
2484: 330,
2485: 240,
2486: 8,
2487: 8,
2488: 8,
2489: 0x00000000,
2490: 0x00000000,
2491: 0x00000000,
2492: VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2493: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
2494: }
2495: },
2496: {
2497: XGA1_MODE_1024_768_16_CO,
2498: NULL,
2499: 0x00080000,
2500: {
2501: sizeof(VIDEO_MODE_INFORMATION),
2502: 3,
2503: 1024,
2504: 768,
2505: 512,
2506: 1,
2507: 4,
2508: 0,
2509: 330,
2510: 240,
2511: 8,
2512: 8,
2513: 8,
2514: 0x00000000,
2515: 0x00000000,
2516: 0x00000000,
2517: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2518: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
2519: }
2520: },
2521: {
2522: XGA1_640x400x8x70Hz,
2523: XGA2_640x400x8x70Hz,
2524: 0x00080000,
2525: {
2526: sizeof(VIDEO_MODE_INFORMATION),
2527: 4,
2528: 640,
2529: 400,
2530: 640,
2531: 1,
2532: 8,
2533: 70,
2534: 330,
2535: 240,
2536: 8,
2537: 8,
2538: 8,
2539: 0x00000000,
2540: 0x00000000,
2541: 0x00000000,
2542: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2543: VIDEO_MODE_MANAGED_PALETTE
2544: }
2545: },
2546: {
2547: NULL,
2548: XGA2_640x400x8x84Hz,
2549: 0x00080000,
2550: {
2551: sizeof(VIDEO_MODE_INFORMATION),
2552: 5,
2553: 640,
2554: 400,
2555: 640,
2556: 1,
2557: 8,
2558: 84,
2559: 330,
2560: 240,
2561: 8,
2562: 8,
2563: 8,
2564: 0x00000000,
2565: 0x00000000,
2566: 0x00000000,
2567: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2568: VIDEO_MODE_MANAGED_PALETTE
2569: }
2570: },
2571: {
2572: NULL,
2573: XGA2_640x400x8x88Hz,
2574: 0x00080000,
2575: {
2576: sizeof(VIDEO_MODE_INFORMATION),
2577: 6,
2578: 640,
2579: 400,
2580: 640,
2581: 1,
2582: 8,
2583: 88,
2584: 330,
2585: 240,
2586: 8,
2587: 8,
2588: 8,
2589: 0x00000000,
2590: 0x00000000,
2591: 0x00000000,
2592: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2593: VIDEO_MODE_MANAGED_PALETTE
2594: }
2595: },
2596: {
2597: XGA1_640x480x8x60Hz,
2598: XGA2_640x480x8x60Hz,
2599: 0x00080000,
2600: {
2601: sizeof(VIDEO_MODE_INFORMATION),
2602: 7,
2603: 640,
2604: 480,
2605: 640,
2606: 1,
2607: 8,
2608: 60,
2609: 330,
2610: 240,
2611: 8,
2612: 8,
2613: 8,
2614: 0x00000000,
2615: 0x00000000,
2616: 0x00000000,
2617: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2618: VIDEO_MODE_MANAGED_PALETTE
2619: }
2620: },
2621: {
2622: NULL,
2623: XGA2_640x480x8x72Hz,
2624: 0x00080000,
2625: {
2626: sizeof(VIDEO_MODE_INFORMATION),
2627: 8,
2628: 640,
2629: 480,
2630: 640,
2631: 1,
2632: 8,
2633: 72,
2634: 330,
2635: 240,
2636: 8,
2637: 8,
2638: 8,
2639: 0x00000000,
2640: 0x00000000,
2641: 0x00000000,
2642: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2643: VIDEO_MODE_MANAGED_PALETTE
2644: }
2645: },
2646: {
2647: NULL,
2648: XGA2_640x480x8x75Hz,
2649: 0x00080000,
2650: {
2651: sizeof(VIDEO_MODE_INFORMATION),
2652: 9,
2653: 640,
2654: 480,
2655: 640,
2656: 1,
2657: 8,
2658: 75,
2659: 330,
2660: 240,
2661: 8,
2662: 8,
2663: 8,
2664: 0x00000000,
2665: 0x00000000,
2666: 0x00000000,
2667: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2668: VIDEO_MODE_MANAGED_PALETTE
2669: }
2670: },
2671: {
2672: NULL,
2673: XGA2_800x600x8x56Hz,
2674: 0x00080000,
2675: {
2676: sizeof(VIDEO_MODE_INFORMATION),
2677: 10,
2678: 800,
2679: 600,
2680: 800,
2681: 1,
2682: 8,
2683: 56,
2684: 330,
2685: 240,
2686: 8,
2687: 8,
2688: 8,
2689: 0x00000000,
2690: 0x00000000,
2691: 0x00000000,
2692: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2693: VIDEO_MODE_MANAGED_PALETTE
2694: }
2695: },
2696: {
2697: NULL,
2698: XGA2_800x600x8x60Hz,
2699: 0x00080000,
2700: {
2701: sizeof(VIDEO_MODE_INFORMATION),
2702: 11,
2703: 800,
2704: 600,
2705: 800,
2706: 1,
2707: 8,
2708: 60,
2709: 330,
2710: 240,
2711: 8,
2712: 8,
2713: 8,
2714: 0x00000000,
2715: 0x00000000,
2716: 0x00000000,
2717: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2718: VIDEO_MODE_MANAGED_PALETTE
2719: }
2720: },
2721: {
2722: NULL,
2723: XGA2_800x600x8x72Hz,
2724: 0x00080000,
2725: {
2726: sizeof(VIDEO_MODE_INFORMATION),
2727: 12,
2728: 800,
2729: 600,
2730: 800,
2731: 1,
2732: 8,
2733: 72,
2734: 330,
2735: 240,
2736: 8,
2737: 8,
2738: 8,
2739: 0x00000000,
2740: 0x00000000,
2741: 0x00000000,
2742: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2743: VIDEO_MODE_MANAGED_PALETTE
2744: }
2745: },
2746: {
2747: NULL,
2748: XGA2_800x600x8x75Hz,
2749: 0x00080000,
2750: {
2751: sizeof(VIDEO_MODE_INFORMATION),
2752: 13,
2753: 800,
2754: 600,
2755: 800,
2756: 1,
2757: 8,
2758: 75,
2759: 330,
2760: 240,
2761: 8,
2762: 8,
2763: 8,
2764: 0x00000000,
2765: 0x00000000,
2766: 0x00000000,
2767: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2768: VIDEO_MODE_MANAGED_PALETTE
2769: }
2770: },
2771: {
2772: XGA1_1024x768x8x43Hz,
2773: XGA2_1024x768x8x43Hz,
2774: 0x00100000,
2775: {
2776: sizeof(VIDEO_MODE_INFORMATION),
2777: 14,
2778: 1024,
2779: 768,
2780: 1024,
2781: 1,
2782: 8,
2783: 43,
2784: 330,
2785: 240,
2786: 8,
2787: 8,
2788: 8,
2789: 0x00000000,
2790: 0x00000000,
2791: 0x00000000,
2792: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2793: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
2794: }
2795: },
2796: {
2797: NULL,
2798: XGA2_1024x768x8x60Hz,
2799: 0x00100000,
2800: {
2801: sizeof(VIDEO_MODE_INFORMATION),
2802: 15,
2803: 1024,
2804: 768,
2805: 1024,
2806: 1,
2807: 8,
2808: 60,
2809: 330,
2810: 240,
2811: 8,
2812: 8,
2813: 8,
2814: 0x00000000,
2815: 0x00000000,
2816: 0x00000000,
2817: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2818: VIDEO_MODE_MANAGED_PALETTE
2819: }
2820: },
2821: {
2822: NULL,
2823: XGA2_1024x768x8x70Hz,
2824: 0x00100000,
2825: {
2826: sizeof(VIDEO_MODE_INFORMATION),
2827: 16,
2828: 1024,
2829: 768,
2830: 1024,
2831: 1,
2832: 8,
2833: 70,
2834: 330,
2835: 240,
2836: 8,
2837: 8,
2838: 8,
2839: 0x00000000,
2840: 0x00000000,
2841: 0x00000000,
2842: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2843: VIDEO_MODE_MANAGED_PALETTE
2844: }
2845: },
2846: {
2847: NULL,
2848: XGA2_1024x768x8x72Hz,
2849: 0x00100000,
2850: {
2851: sizeof(VIDEO_MODE_INFORMATION),
2852: 17,
2853: 1024,
2854: 768,
2855: 1024,
2856: 1,
2857: 8,
2858: 72,
2859: 330,
2860: 240,
2861: 8,
2862: 8,
2863: 8,
2864: 0x00000000,
2865: 0x00000000,
2866: 0x00000000,
2867: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2868: VIDEO_MODE_MANAGED_PALETTE
2869: }
2870: },
2871: {
2872: NULL,
2873: XGA2_1024x768x8x75Hz,
2874: 0x00100000,
2875: {
2876: sizeof(VIDEO_MODE_INFORMATION),
2877: 18,
2878: 1024,
2879: 768,
2880: 1024,
2881: 1,
2882: 8,
2883: 75,
2884: 330,
2885: 240,
2886: 8,
2887: 8,
2888: 8,
2889: 0x00000000,
2890: 0x00000000,
2891: 0x00000000,
2892: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2893: VIDEO_MODE_MANAGED_PALETTE
2894: }
2895: },
2896: {
2897: XGA1_1040x768x8x43Hz,
2898: XGA2_1040x768x8x43Hz,
2899: 0x00100000,
2900: {
2901: sizeof(VIDEO_MODE_INFORMATION),
2902: 19,
2903: 1040,
2904: 768,
2905: 1040,
2906: 1,
2907: 8,
2908: 43,
2909: 330,
2910: 240,
2911: 8,
2912: 8,
2913: 8,
2914: 0x00000000,
2915: 0x00000000,
2916: 0x00000000,
2917: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2918: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
2919: }
2920: },
2921: {
2922: NULL,
2923: XGA2_1040x768x8x60Hz,
2924: 0x00100000,
2925: {
2926: sizeof(VIDEO_MODE_INFORMATION),
2927: 20,
2928: 1040,
2929: 768,
2930: 1040,
2931: 1,
2932: 8,
2933: 60,
2934: 330,
2935: 240,
2936: 8,
2937: 8,
2938: 8,
2939: 0x00000000,
2940: 0x00000000,
2941: 0x00000000,
2942: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2943: VIDEO_MODE_MANAGED_PALETTE
2944: }
2945: },
2946: {
2947: NULL,
2948: XGA2_1040x768x8x70Hz,
2949: 0x00100000,
2950: {
2951: sizeof(VIDEO_MODE_INFORMATION),
2952: 21,
2953: 1040,
2954: 768,
2955: 1040,
2956: 1,
2957: 8,
2958: 70,
2959: 330,
2960: 240,
2961: 8,
2962: 8,
2963: 8,
2964: 0x00000000,
2965: 0x00000000,
2966: 0x00000000,
2967: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2968: VIDEO_MODE_MANAGED_PALETTE
2969: }
2970: },
2971: {
2972: NULL,
2973: XGA2_1040x768x8x72Hz,
2974: 0x00100000,
2975: {
2976: sizeof(VIDEO_MODE_INFORMATION),
2977: 22,
2978: 1040,
2979: 768,
2980: 1040,
2981: 1,
2982: 8,
2983: 72,
2984: 330,
2985: 240,
2986: 8,
2987: 8,
2988: 8,
2989: 0x00000000,
2990: 0x00000000,
2991: 0x00000000,
2992: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
2993: VIDEO_MODE_MANAGED_PALETTE
2994: }
2995: },
2996: {
2997: NULL,
2998: XGA2_1040x768x8x75Hz,
2999: 0x00100000,
3000: {
3001: sizeof(VIDEO_MODE_INFORMATION),
3002: 23,
3003: 1040,
3004: 768,
3005: 1040,
3006: 1,
3007: 8,
3008: 75,
3009: 330,
3010: 240,
3011: 8,
3012: 8,
3013: 8,
3014: 0x00000000,
3015: 0x00000000,
3016: 0x00000000,
3017: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3018: VIDEO_MODE_MANAGED_PALETTE
3019: }
3020: },
3021: {
3022: NULL,
3023: XGA2_1104x828x8x69Hz,
3024: 0x00140000,
3025: {
3026: sizeof(VIDEO_MODE_INFORMATION),
3027: 24,
3028: 1104,
3029: 828,
3030: 1104,
3031: 1,
3032: 8,
3033: 69,
3034: 330,
3035: 240,
3036: 8,
3037: 8,
3038: 8,
3039: 0x00000000,
3040: 0x00000000,
3041: 0x00000000,
3042: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3043: VIDEO_MODE_MANAGED_PALETTE
3044: }
3045: },
3046: {
3047: NULL,
3048: XGA2_1280x960x8x45Hz,
3049: 0x00180000,
3050: {
3051: sizeof(VIDEO_MODE_INFORMATION),
3052: 25,
3053: 1280,
3054: 960,
3055: 1280,
3056: 1,
3057: 8,
3058: 45,
3059: 330,
3060: 240,
3061: 8,
3062: 8,
3063: 8,
3064: 0x00000000,
3065: 0x00000000,
3066: 0x00000000,
3067: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3068: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
3069: }
3070: },
3071: {
3072: NULL,
3073: XGA2_1280x1024x8x45Hz,
3074: 0x00180000,
3075: {
3076: sizeof(VIDEO_MODE_INFORMATION),
3077: 26,
3078: 1280,
3079: 1024,
3080: 1280,
3081: 1,
3082: 8,
3083: 45,
3084: 330,
3085: 240,
3086: 8,
3087: 8,
3088: 8,
3089: 0x00000000,
3090: 0x00000000,
3091: 0x00000000,
3092: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3093: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
3094: }
3095: },
3096: {
3097: NULL,
3098: XGA2_1360x1024x8x45Hz,
3099: 0x00180000,
3100: {
3101: sizeof(VIDEO_MODE_INFORMATION),
3102: 27,
3103: 1360,
3104: 1024,
3105: 1360,
3106: 1,
3107: 8,
3108: 45,
3109: 330,
3110: 240,
3111: 8,
3112: 8,
3113: 8,
3114: 0x00000000,
3115: 0x00000000,
3116: 0x00000000,
3117: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3118: VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
3119: }
3120: },
3121: {
3122: XGA1_MODE_640_480_65536_CO,
3123: NULL,
3124: 0x00100000,
3125: {
3126: sizeof(VIDEO_MODE_INFORMATION),
3127: 28,
3128: 640,
3129: 480,
3130: 1280,
3131: 1,
3132: 16,
3133: 0,
3134: 330,
3135: 240,
3136: 8,
3137: 8,
3138: 8,
3139: 0x00000000,
3140: 0x00000000,
3141: 0x00000000,
3142: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
3143: VIDEO_MODE_MANAGED_PALETTE
3144: }
3145: }
3146:
3147: //
3148: // *** Important ***
3149: // New modes must only be added at the end and the mode
3150: // number must be incremented. !!!
3151: //
3152:
3153: };
3154:
3155: #define XGA_NUM_MODES (sizeof(XgaModes) / sizeof (XGA_VIDEO_MODE))
3156:
3157:
3158: //
3159: // Structure for VGA reseting
3160: //
3161:
3162: typedef struct _INDEX_REGISTER_DATA_TABLE {
3163: UCHAR PortIndex;
3164: UCHAR Data;
3165: } INDEX_REGISTER_DATA_TABLE, *PINDEX_REGISTER_DATA_TABLE;
3166:
3167: //
3168: // Set of registers needed to reset the XGA in standart VGA mode.
3169: //
3170:
3171: INDEX_REGISTER_DATA_TABLE XgaResetToVga[] = {
3172: {0x64, 0xff},
3173: {0x50, 0x15},
3174: {0x50, 0x14},
3175: {0x51, 0x00},
3176: {0x54, 0x04},
3177: {0x70, 0x00},
3178: {0x2A, 0x20},
3179: {0xFF, 0x00}
3180: };
3181:
3182:
3183: //
3184: // the device's private Device Extension
3185: //
3186:
3187: typedef struct _HW_DEVICE_EXTENSION {
3188: PHYSICAL_ADDRESS PhysicalRomBaseAddress;
3189: PHYSICAL_ADDRESS PhysicalCoProcessorAddress;
3190: PHYSICAL_ADDRESS PhysicalVideoMemoryAddress;
3191: PHYSICAL_ADDRESS PhysicalIoRegBaseAddress;
3192:
3193: UCHAR BoardType;
3194: UCHAR Color;
3195: UCHAR NumAvailableModes;
3196: UCHAR CurrentMode;
3197:
3198: ULONG IoRegBaseAddress;
3199:
3200: PVOID VirtualAddress;
3201: PVOID FrameAddress ;
3202: ULONG FrameLength ;
3203: ULONG PhysicalVideoMemoryLength;
3204:
3205: PVOID A0000MemoryAddress;
3206: PVOID PassThroughPort;
3207:
3208: UCHAR Valid[XGA_NUM_MODES];
3209:
3210: } HW_DEVICE_EXTENSION, *PHW_DEVICE_EXTENSION;
3211:
3212: //
3213: // Settings for the default color palette.
3214: //
3215:
3216: UCHAR colour_default_palette[] = {
3217: 0x00, 0x00, 0x00,
3218: 0x00, 0x00, 0xa8,
3219: 0x00, 0xa8, 0x00,
3220: 0x00, 0xA8, 0xA8,
3221: 0xA8, 0x00, 0x00,
3222: 0xA8, 0x00, 0xa8,
3223: 0xA8, 0x54, 0x00,
3224: 0xA8, 0xA8, 0xA8,
3225: 0x54, 0x54, 0x54,
3226: 0x54, 0x54, 0xfc,
3227: 0x54, 0xfc, 0x54,
3228: 0x54, 0xFC, 0xFC,
3229: 0xFC, 0x54, 0x54,
3230: 0xFC, 0x54, 0xFC,
3231: 0xFC, 0xFC, 0x54,
3232: 0xFC, 0xFC, 0xFC
3233: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.