|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1992 Cirrus Logic, Inc.
4:
5: Module Name:
6:
7: Mode6420.h
8:
9: Abstract:
10:
11: This module contains all the global data used by the Cirrus Logic
12: CL-6420 driver.
13:
14: Environment:
15:
16: Kernel mode
17:
18: Revision History:
19:
20: --*/
21:
22: //---------------------------------------------------------------------------
23: // The next set of tables are for the CL6420
24: // Note: all resolutions supported
25: //
26: USHORT CL6420_640x480_panel[] = {
27: // Unlock Key for color mode
28: OW, // GR0A = 0xEC opens extension registers
29: GRAPH_ADDRESS_PORT,
30: 0xec0a,
31:
32: #ifndef INT10_MODE_SET
33: OWM,
34: SEQ_ADDRESS_PORT,
35: 5,
36: 0x0100, // start synch reset
37: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
38:
39:
40: OB,
41: MISC_OUTPUT_REG_WRITE_PORT,
42: 0xe3,
43:
44: OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
45: GRAPH_ADDRESS_PORT,
46: 0x0506,
47:
48: // EndSyncResetCmd
49: OW,
50: SEQ_ADDRESS_PORT,
51: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
52:
53: OW,
54: CRTC_ADDRESS_PORT_COLOR,
55: 0x0111,
56:
57: METAOUT+INDXOUT, // program crtc registers
58: CRTC_ADDRESS_PORT_COLOR,
59: VGA_NUM_CRTC_PORTS, // count
60: 0, // start index
61: 0x5F,0x4F,0x50,0x82,
62: 0x54,0x80,0x0B,0x3E,
63: 0x00,0x40,0x00,0x00,
64: 0x00,0x00,0x00,0x00,
65: 0xEA,0xAC,0xDF,0x28,
66: 0x00,0xE7,0x04,0xE3,
67: 0xFF,
68:
69: // extension registers
70: OWM,
71: GRAPH_ADDRESS_PORT,
72: 16,
73: 0x0262, // ER62 horz. display end extension
74: 0x8064, // ER64 horz. retrace end extension
75: 0x0079, // ER79 vertical overflow
76: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
77: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
78: 0x007c, // ER7c screen A start addr. extension
79: 0x0181, // ER81 display mode
80: 0x8982, // ER82 character clock selection
81: 0x9a84, // ER84 clock select extension
82: 0x0090, // ER90 display memory control
83: 0x0091, // ER91 CRT-circular buffer policy select
84: 0x0095, // ER95 CRT-circular buffer delta & burst
85: 0x0096, // ER96 display memory control test
86: 0x12a0, // ERa0 bus interface unit control
87: 0x00a1, // ERa1 three-state and test control
88: 0xa1c8, // ERc8 RAMDAC control
89:
90: IB, // prepare atc for writing
91: INPUT_STATUS_1_COLOR,
92:
93: METAOUT+ATCOUT, //
94: ATT_ADDRESS_PORT, // port
95: VGA_NUM_ATTRIB_CONT_PORTS, // count
96: 0, // start index
97: 0x00,0x01,0x02,0x03,0x04,
98: 0x05,0x14,0x07,0x38,0x39,
99: 0x3A,0x3B,0x3C,0x3D,0x3E,
100: 0x3F,0x01,0x00,0x0F,0x00,0x00,
101:
102: METAOUT+INDXOUT, //
103: GRAPH_ADDRESS_PORT, // port
104: VGA_NUM_GRAPH_CONT_PORTS, // count
105: 0, // start index
106: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
107:
108: OB, // turn video on.
109: ATT_ADDRESS_PORT,
110: VIDEO_ENABLE,
111:
112: #endif
113: // zero out the banking regs. for this mode
114: OWM,
115: GRAPH_ADDRESS_PORT,
116: 3,
117: 0x000d, // ER0D = Banking control: 1 64K bank,
118: 0x000e, // ER0E bank A address = 0
119: 0x000f, // ER0F bank B address = 0
120:
121: OB,
122: DAC_PIXEL_MASK_PORT,
123: 0xFF,
124:
125:
126: EOD
127: };
128: USHORT CL6420_640x480_crt[] = {
129: // Unlock Key for color mode
130: OW, // GR0A = 0xEC opens extension registers
131: GRAPH_ADDRESS_PORT,
132: 0xec0a,
133:
134: #ifndef INT10_MODE_SET
135: OWM,
136: SEQ_ADDRESS_PORT,
137: 5,
138: 0x0100, // start synch reset
139: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
140:
141:
142: OB,
143: MISC_OUTPUT_REG_WRITE_PORT,
144: 0xe3,
145:
146: OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
147: GRAPH_ADDRESS_PORT,
148: 0x0506,
149:
150: // EndSyncResetCmd
151: OW,
152: SEQ_ADDRESS_PORT,
153: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
154:
155: OW,
156: CRTC_ADDRESS_PORT_COLOR,
157: 0x0111,
158:
159: METAOUT+INDXOUT, // program crtc registers
160: CRTC_ADDRESS_PORT_COLOR,
161: VGA_NUM_CRTC_PORTS, // count
162: 0, // start index
163: 0x5F,0x4F,0x50,0x82,
164: 0x54,0x80,0x0B,0x3E,
165: 0x00,0x40,0x00,0x00,
166: 0x00,0x00,0x00,0x00,
167: 0xEA,0xAC,0xDF,0x28,
168: 0x00,0xE7,0x04,0xE3,
169: 0xFF,
170:
171: // extension registers
172: OWM,
173: GRAPH_ADDRESS_PORT,
174: 16,
175: 0x0262, // ER62 horz. display end extension
176: 0x8064, // ER64 horz. retrace end extension
177: 0x0079, // ER79 vertical overflow
178: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
179: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
180: 0x007c, // ER7c screen A start addr. extension
181: 0x0081, // ER81 display mode
182: 0x0082, // ER82 character clock selection
183: 0x1084, // ER84 clock select extension
184: 0x0090, // ER90 display memory control
185: 0x0091, // ER91 CRT-circular buffer policy select
186: 0x0095, // ER95 CRT-circular buffer delta & burst
187: 0x0096, // ER96 display memory control test
188: 0x12a0, // ERa0 bus interface unit control
189: 0x00a1, // ERa1 three-state and test control
190: 0x00c8, // ERc8 RAMDAC control
191:
192: IB, // prepare atc for writing
193: INPUT_STATUS_1_COLOR,
194:
195: METAOUT+ATCOUT, //
196: ATT_ADDRESS_PORT, // port
197: VGA_NUM_ATTRIB_CONT_PORTS, // count
198: 0, // start index
199: 0x00,0x01,0x02,0x03,0x04,
200: 0x05,0x14,0x07,0x38,0x39,
201: 0x3A,0x3B,0x3C,0x3D,0x3E,
202: 0x3F,0x01,0x00,0x0F,0x00,0x00,
203:
204: METAOUT+INDXOUT, //
205: GRAPH_ADDRESS_PORT, // port
206: VGA_NUM_GRAPH_CONT_PORTS, // count
207: 0, // start index
208: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
209:
210: OB, // turn video on.
211: ATT_ADDRESS_PORT,
212: VIDEO_ENABLE,
213:
214: #endif
215: // zero out the banking regs. for this mode
216: OWM,
217: GRAPH_ADDRESS_PORT,
218: 3,
219: 0x000d, // ER0D = Banking control: 1 64K bank,
220: 0x000e, // ER0E bank A address = 0
221: 0x000f, // ER0F bank B address = 0
222:
223: OB,
224: DAC_PIXEL_MASK_PORT,
225: 0xFF,
226:
227: EOD
228: };
229:
230:
231: //
232: // 800x600 16-color (60Hz refresh) mode set command string for CL 6420.
233: //
234: USHORT CL6420_800x600_crt[] = {
235: // Unlock Key for color mode
236: OW, // GR0A = 0xEC opens extension registers
237: GRAPH_ADDRESS_PORT,
238: 0xec0a,
239: #ifndef INT10_MODE_SET
240:
241: OWM,
242: SEQ_ADDRESS_PORT,
243: 5,
244: 0x0100, // start synch reset
245: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
246:
247:
248: OB,
249: MISC_OUTPUT_REG_WRITE_PORT,
250: 0xe3,
251:
252: OW,
253: GRAPH_ADDRESS_PORT,
254: 0x0506,
255:
256: // EndSyncResetCmd
257: OW,
258: SEQ_ADDRESS_PORT,
259: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
260:
261: OW,
262: CRTC_ADDRESS_PORT_COLOR,
263: 0x0E11,
264:
265: METAOUT+INDXOUT, // program crtc registers
266: CRTC_ADDRESS_PORT_COLOR,
267: VGA_NUM_CRTC_PORTS, // count
268: 0, // start index
269: 0x7F,0x63,0x64,0x82,
270: 0x6b,0x1d,0x72,0xf0,
271: 0x00,0x60,0x00,0x00,
272: 0x00,0x00,0x00,0x00,
273: 0x58,0xac,0x57,0x32,
274: 0x00,0x58,0x72,0xe3,
275: 0xFF,
276:
277: // extension registers
278: OWM,
279: GRAPH_ADDRESS_PORT,
280: 16,
281: 0x0262, // ER62 horz. display end extension
282: 0x1b64, // ER64 horz. retrace end extension
283: 0x0079, // ER79 vertical overflow
284: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
285: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
286: 0x007c, // ER7c screen A start addr. extension
287: 0x0081, // ER81 display mode
288: 0x0082, // ER82 character clock selection
289: 0x9c84, // ER84 clock select extension
290: 0x0090, // ER90 display memory control
291: 0x0391, // ER91 CRT-circular buffer policy select
292: 0x0395, // ER95 CRT-circular buffer delta & burst
293: 0x0096, // ER96 display memory control test
294: 0x12a0, // ERa0 bus interface unit control
295: 0x00a1, // ERa1 three-state and test control
296: 0x00c8, // ERc8 RAMDAC control
297:
298: IB, // prepare atc for writing
299: INPUT_STATUS_1_COLOR,
300:
301: METAOUT+ATCOUT, //
302: ATT_ADDRESS_PORT, // port
303: VGA_NUM_ATTRIB_CONT_PORTS, // count
304: 0, // start index
305: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
306: 0x01,0x0,0x0F,0x0,0x0,
307:
308: METAOUT+INDXOUT, //
309: GRAPH_ADDRESS_PORT, // port
310: VGA_NUM_GRAPH_CONT_PORTS, // count
311: 0, // start index
312: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
313:
314: OB, // turn video on.
315: ATT_ADDRESS_PORT,
316: VIDEO_ENABLE,
317:
318: #endif
319: // zero out the banking regs. for this mode
320: OWM,
321: GRAPH_ADDRESS_PORT,
322: 3,
323: 0x000d, // ER0D = Banking control: 1 64K bank,
324: 0x000e, // ER0E bank A address = 0
325: 0x000f, // ER0F bank B address = 0
326:
327: OB,
328: DAC_PIXEL_MASK_PORT,
329: 0xFF,
330:
331: EOD
332: };
333:
334: //
335: // 1024x768 16-color (60Hz refresh) mode set command string for CL 6420.
336: // Requires 512K minimum.
337: //
338: USHORT CL6420_1024x768_crt[] = {
339:
340: // Unlock Key for color mode
341: OW, // GR0A = 0xEC opens extension registers
342: GRAPH_ADDRESS_PORT,
343: 0xec0a,
344:
345: #ifndef INT10_MODE_SET
346: OWM,
347: SEQ_ADDRESS_PORT,
348: 5,
349: 0x0100, // start synch reset
350: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
351:
352:
353: OWM,
354: SEQ_ADDRESS_PORT,
355: 2,
356: 0x0006,0x0bc07, // program up sequencer
357:
358: OB,
359: MISC_OUTPUT_REG_WRITE_PORT,
360: 0x2b,
361:
362: OW,
363: GRAPH_ADDRESS_PORT,
364: 0x0506,
365:
366: // EndSyncResetCmd
367: OW,
368: SEQ_ADDRESS_PORT,
369: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
370:
371: OW,
372: CRTC_ADDRESS_PORT_COLOR,
373: 0x0E11,
374:
375: METAOUT+INDXOUT, // program crtc registers
376: CRTC_ADDRESS_PORT_COLOR,
377: VGA_NUM_CRTC_PORTS, // count
378: 0, // start index
379: 0x99,0x7f,0x80,0x9c,
380: 0x83,0x19,0x2f,0xfd,
381: 0x00,0x60,0x00,0x00,
382: 0x00,0x00,0x00,0x00,
383: 0x00,0xa4,0xff,0x3f,
384: 0x00,0x00,0x2f,0xe3,
385: 0xFF,
386: // extension registers
387: OWM,
388: GRAPH_ADDRESS_PORT,
389: 16,
390: 0x1c62, // ER62 horz. display end extension
391: 0x1964, // ER64 horz. retrace end extension
392: 0x0079, // ER79 vertical overflow
393: 0x4c7a, // ER7a coarse vert. retrace skew for interlaced odd fields
394: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
395: 0x007c, // ER7c screen A start addr. extension
396: 0x0481, // ER81 display mode
397: 0x0082, // ER82 character clock selection
398: 0xa084, // ER84 clock select extension
399: 0x0090, // ER90 display memory control
400: 0x8391, // ER91 CRT-circular buffer policy select
401: 0x0295, // ER95 CRT-circular buffer delta & burst
402: 0x0096, // ER96 display memory control test
403: 0x12a0, // ERa0 bus interface unit control
404: 0x00a1, // ERa1 three-state and test control
405: 0x00c8, // ERc8 RAMDAC control
406:
407: OB,
408: DAC_PIXEL_MASK_PORT,
409: 0xFF,
410:
411: IB, // prepare atc for writing
412: INPUT_STATUS_1_COLOR,
413:
414: METAOUT+ATCOUT, //
415: ATT_ADDRESS_PORT, // port
416: VGA_NUM_ATTRIB_CONT_PORTS, // count
417: 0, // start index
418: 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
419: 0x01,0x00,0x0F,0x00,0x00,
420:
421: METAOUT+INDXOUT, //
422: GRAPH_ADDRESS_PORT, // port
423: VGA_NUM_GRAPH_CONT_PORTS, // count
424: 0, // start index
425: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF,
426:
427: OB, // turn video on.
428: ATT_ADDRESS_PORT,
429: VIDEO_ENABLE,
430:
431: #endif
432: // now do the banking registers
433: OWM,
434: GRAPH_ADDRESS_PORT,
435: 3,
436: #if ONE_64K_BANK
437: 0x030d, // ER0D = Banking control: 1 64K bank,
438: #endif
439: #if TWO_32K_BANKS
440: 0x050d,
441: #endif
442: 0x000e, // ER0E bank A address = 0
443: 0x000f, // ER0F bank B address = 0
444:
445: OB,
446: DAC_PIXEL_MASK_PORT,
447: 0xFF,
448:
449: EOD
450: };
451:
452: //-----------------------------
453: // standard VGA text modes here
454: // 80x25 at 640x350
455: //
456: //-----------------------------
457:
458: USHORT CL6420_80x25_14_Text_crt[] = {
459: // Unlock Key for color mode
460: OW, // GR0A = 0xEC opens extension registers
461: GRAPH_ADDRESS_PORT,
462: 0xec0a,
463:
464: #ifndef INT10_MODE_SET
465: OWM,
466: SEQ_ADDRESS_PORT,
467: 5,
468: 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
469:
470: OB,
471: MISC_OUTPUT_REG_WRITE_PORT,
472: 0x67,
473:
474: OW,
475: GRAPH_ADDRESS_PORT,
476: 0x0e06,
477:
478: // EndSyncResetCmd
479: OW,
480: SEQ_ADDRESS_PORT,
481: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
482:
483: OW,
484: CRTC_ADDRESS_PORT_COLOR,
485: 0x0511,
486:
487: METAOUT+INDXOUT, // program crtc registers
488: CRTC_ADDRESS_PORT_COLOR,
489: VGA_NUM_CRTC_PORTS, // count
490: 0, // start index
491: 0x5F,0x4f,0x50,0x82,
492: 0x55,0x81,0xbf,0x1f,
493: 0x00,0x4f,0x0d,0x0e,
494: 0x00,0x00,0x01,0xe0,
495: 0x9c,0xae,0x8f,0x28,
496: 0x1f,0x96,0xb9,0xa3,
497: 0xFF,
498:
499: // extension registers
500: OWM,
501: GRAPH_ADDRESS_PORT,
502: 16,
503: 0x0262, // ER62 horz. display end extension
504: 0x8164, // ER64 horz. retrace end extension
505: 0x0079, // ER79 vertical overflow
506: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
507: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
508: 0x007c, // ER7c screen A start addr. extension
509: 0x0081, // ER81 display mode
510: 0x0082, // ER82 character clock selection
511: 0x1084, // ER84 clock select extension
512: 0x0090, // ER90 display memory control
513: 0x0091, // ER91 CRT-circular buffer policy select
514: 0x0095, // ER95 CRT-circular buffer delta & burst
515: 0x0096, // ER96 display memory control test
516: 0x12a0, // ERa0 bus interface unit control
517: 0x00a1, // ERa1 three-state and test control
518: 0x00c8, // ERc8 RAMDAC control
519:
520: IB, // prepare atc for writing
521: INPUT_STATUS_1_COLOR,
522:
523: METAOUT+ATCOUT, //
524: ATT_ADDRESS_PORT, // port
525: VGA_NUM_ATTRIB_CONT_PORTS, // count
526: 0, // start index
527: 0x00,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
528: 0x00,0x00,0x0F,0x00,0x00,
529:
530: METAOUT+INDXOUT, //
531: GRAPH_ADDRESS_PORT, // port
532: VGA_NUM_GRAPH_CONT_PORTS, // count
533: 0, // start index
534: 0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x0FF,
535:
536: OB, // turn video on.
537: ATT_ADDRESS_PORT,
538: VIDEO_ENABLE,
539:
540: #endif
541: // zero out the banking regs. for this mode
542: OWM,
543: GRAPH_ADDRESS_PORT,
544: 3,
545: 0x000d, // ER0D = Banking control: 1 64K bank,
546: 0x000e, // ER0E bank A address = 0
547: 0x000f, // ER0F bank B address = 0
548:
549: OB,
550: DAC_PIXEL_MASK_PORT,
551: 0xFF,
552:
553: EOD
554: };
555: //
556: USHORT CL6420_80x25_14_Text_panel[] = {
557: // Unlock Key for color mode
558: OW, // GR0A = 0xEC opens extension registers
559: GRAPH_ADDRESS_PORT,
560: 0xec0a,
561:
562: #ifndef INT10_MODE_SET
563: OWM,
564: SEQ_ADDRESS_PORT,
565: 5,
566: 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
567:
568: OB,
569: MISC_OUTPUT_REG_WRITE_PORT,
570: 0x67,
571:
572: OW,
573: GRAPH_ADDRESS_PORT,
574: 0x0e06,
575:
576: // EndSyncResetCmd
577: OW,
578: SEQ_ADDRESS_PORT,
579: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
580:
581: OW,
582: CRTC_ADDRESS_PORT_COLOR,
583: 0x0511,
584:
585: METAOUT+INDXOUT, // program crtc registers
586: CRTC_ADDRESS_PORT_COLOR,
587: VGA_NUM_CRTC_PORTS, // count
588: 0, // start index
589: 0x5F,0x4f,0x50,0x82,
590: 0x55,0x81,0xbf,0x1f,
591: 0x00,0x4f,0x0d,0x0e,
592: 0x00,0x00,0x01,0xe0,
593: 0x9c,0xae,0x8f,0x28,
594: 0x1f,0x96,0xb9,0xa3,
595: 0xFF,
596:
597: // extension registers
598: OWM,
599: GRAPH_ADDRESS_PORT,
600: 16,
601: 0x0262, // ER62 horz. display end extension
602: 0x8164, // ER64 horz. retrace end extension
603: 0x0079, // ER79 vertical overflow
604: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
605: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
606: 0x007c, // ER7c screen A start addr. extension
607: 0x0181, // ER81 display mode
608: 0x8982, // ER82 character clock selection
609: 0x9a84, // ER84 clock select extension
610: 0x0090, // ER90 display memory control
611: 0x0091, // ER91 CRT-circular buffer policy select
612: 0x0095, // ER95 CRT-circular buffer delta & burst
613: 0x0096, // ER96 display memory control test
614: 0x12a0, // ERa0 bus interface unit control
615: 0x00a1, // ERa1 three-state and test control
616: 0xa1c8, // ERc8 RAMDAC control
617:
618: IB, // prepare atc for writing
619: INPUT_STATUS_1_COLOR,
620:
621: METAOUT+ATCOUT, //
622: ATT_ADDRESS_PORT, // port
623: VGA_NUM_ATTRIB_CONT_PORTS, // count
624: 0, // start index
625: 0x00,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
626: 0x00,0x00,0x0F,0x00,0x00,
627:
628: METAOUT+INDXOUT, //
629: GRAPH_ADDRESS_PORT, // port
630: VGA_NUM_GRAPH_CONT_PORTS, // count
631: 0, // start index
632: 0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x0FF,
633:
634: OB, // turn video on.
635: ATT_ADDRESS_PORT,
636: VIDEO_ENABLE,
637:
638: #endif
639: // zero out the banking regs. for this mode
640: OWM,
641: GRAPH_ADDRESS_PORT,
642: 3,
643: 0x000d, // ER0D = Banking control: 1 64K bank,
644: 0x000e, // ER0E bank A address = 0
645: 0x000f, // ER0F bank B address = 0
646:
647: OB,
648: DAC_PIXEL_MASK_PORT,
649: 0xFF,
650:
651: EOD
652: };
653: //
654:
655:
656: USHORT CL6420_80x25Text_crt[] = {
657: // Unlock Key for color mode
658: OW, // GR0A = 0xEC opens extension registers
659: GRAPH_ADDRESS_PORT,
660: 0xec0a,
661:
662: #ifndef INT10_MODE_SET
663: OWM,
664: SEQ_ADDRESS_PORT,
665: 5,
666: 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
667:
668: OWM,
669: SEQ_ADDRESS_PORT,
670: 2,
671: 0x0006,0x0fc07, // program up sequencer
672:
673: OB,
674: MISC_OUTPUT_REG_WRITE_PORT,
675: 0x67,
676:
677: OW,
678: GRAPH_ADDRESS_PORT,
679: 0x0e06,
680:
681: // EndSyncResetCmd
682: OW,
683: SEQ_ADDRESS_PORT,
684: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
685:
686: OW,
687: CRTC_ADDRESS_PORT_COLOR,
688: 0x0E11,
689:
690: METAOUT+INDXOUT, // program crtc registers
691: CRTC_ADDRESS_PORT_COLOR,
692: VGA_NUM_CRTC_PORTS, // count
693: 0, // start index
694: 0x5F,0x4f,0x50,0x82,
695: 0x55,0x81,0xbf,0x1f,
696: 0x00,0x4f,0x0d,0x0e,
697: 0x00,0x00,0x00,0x00,
698: 0x9c,0x8e,0x8f,0x28,
699: 0x1f,0x96,0xb9,0xa3,
700: 0xFF,
701:
702: // extension registers
703: OWM,
704: GRAPH_ADDRESS_PORT,
705: 16,
706: 0x0262, // ER62 horz. display end extension
707: 0x8164, // ER64 horz. retrace end extension
708: 0x0079, // ER79 vertical overflow
709: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
710: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
711: 0x007c, // ER7c screen A start addr. extension
712: 0x0081, // ER81 display mode
713: 0x8082, // ER82 character clock selection
714: 0x1084, // ER84 clock select extension
715: 0x0090, // ER90 display memory control
716: 0x0091, // ER91 CRT-circular buffer policy select
717: 0x0095, // ER95 CRT-circular buffer delta & burst
718: 0x0096, // ER96 display memory control test
719: 0x12a0, // ERa0 bus interface unit control
720: 0x00a1, // ERa1 three-state and test control
721: 0x00c8, // ERc8 RAMDAC control
722:
723: IB, // prepare atc for writing
724: INPUT_STATUS_1_COLOR,
725:
726: METAOUT+ATCOUT, //
727: ATT_ADDRESS_PORT, // port
728: VGA_NUM_ATTRIB_CONT_PORTS, // count
729: 0, // start index
730: 0x00,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
731: 0x04,0x00,0x0F,0x8,0x00,
732:
733: METAOUT+INDXOUT, //
734: GRAPH_ADDRESS_PORT, // port
735: VGA_NUM_GRAPH_CONT_PORTS, // count
736: 0, // start index
737: 0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x0FF,
738:
739: OB, // turn video on.
740: ATT_ADDRESS_PORT,
741: VIDEO_ENABLE,
742:
743: #endif
744: // zero out the banking regs. for this mode
745: OWM,
746: GRAPH_ADDRESS_PORT,
747: 3,
748: 0x000d, // ER0D = Banking control: 1 64K bank,
749: 0x000e, // ER0E bank A address = 0
750: 0x000f, // ER0F bank B address = 0
751:
752: OB,
753: DAC_PIXEL_MASK_PORT,
754: 0xFF,
755:
756: EOD
757: };
758:
759: USHORT CL6420_80x25Text_panel[] = {
760: // Unlock Key for color mode
761: OW, // GR0A = 0xEC opens extension registers
762: GRAPH_ADDRESS_PORT,
763: 0xec0a,
764:
765: #ifndef INT10_MODE_SET
766: OWM,
767: SEQ_ADDRESS_PORT,
768: 5,
769: 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer
770:
771: OWM,
772: SEQ_ADDRESS_PORT,
773: 2,
774: 0x0006,0x0fc07, // program up sequencer
775:
776: OB,
777: MISC_OUTPUT_REG_WRITE_PORT,
778: 0x67,
779:
780: OW,
781: GRAPH_ADDRESS_PORT,
782: 0x0e06,
783:
784: // EndSyncResetCmd
785: OW,
786: SEQ_ADDRESS_PORT,
787: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
788:
789: OW,
790: CRTC_ADDRESS_PORT_COLOR,
791: 0x0E11,
792:
793: METAOUT+INDXOUT, // program crtc registers
794: CRTC_ADDRESS_PORT_COLOR,
795: VGA_NUM_CRTC_PORTS, // count
796: 0, // start index
797: 0x5F,0x4f,0x50,0x82,
798: 0x55,0x81,0xbf,0x1f,
799: 0x00,0x4f,0x0d,0x0e,
800: 0x00,0x00,0x00,0x00,
801: 0x9c,0xae,0x8f,0x28,
802: 0x1f,0x96,0xb9,0xa3,
803: 0xFF,
804:
805: // extension registers
806: OWM,
807: GRAPH_ADDRESS_PORT,
808: 16,
809: 0x0262, // ER62 horz. display end extension
810: 0x8164, // ER64 horz. retrace end extension
811: 0x0079, // ER79 vertical overflow
812: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
813: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
814: 0x007c, // ER7c screen A start addr. extension
815: 0x0181, // ER81 display mode
816: 0x8982, // ER82 character clock selection
817: 0x9a84, // ER84 clock select extension
818: 0x0090, // ER90 display memory control
819: 0x0091, // ER91 CRT-circular buffer policy select
820: 0x0095, // ER95 CRT-circular buffer delta & burst
821: 0x0096, // ER96 display memory control test
822: 0x12a0, // ERa0 bus interface unit control
823: 0x00a1, // ERa1 three-state and test control
824: 0xa1c8, // ERc8 RAMDAC control
825:
826: IB, // prepare atc for writing
827: INPUT_STATUS_1_COLOR,
828:
829: METAOUT+ATCOUT, //
830: ATT_ADDRESS_PORT, // port
831: VGA_NUM_ATTRIB_CONT_PORTS, // count
832: 0, // start index
833: 0x00,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
834: 0x04,0x00,0x0F,0x8,0x00,
835:
836: METAOUT+INDXOUT, //
837: GRAPH_ADDRESS_PORT, // port
838: VGA_NUM_GRAPH_CONT_PORTS, // count
839: 0, // start index
840: 0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x0FF,
841:
842: OB, // turn video on.
843: ATT_ADDRESS_PORT,
844: VIDEO_ENABLE,
845:
846: #endif
847: // zero out the banking regs. for this mode
848: OWM,
849: GRAPH_ADDRESS_PORT,
850: 3,
851: 0x000d, // ER0D = Banking control: 1 64K bank,
852: 0x000e, // ER0E bank A address = 0
853: 0x000f, // ER0F bank B address = 0
854:
855: OB,
856: DAC_PIXEL_MASK_PORT,
857: 0xFF,
858:
859: EOD
860: };
861:
862:
863: //
864: //---------------------------------------------------------------------------
865: // 256 color tables
866: //---------------------------------------------------------------------------
867: //
868: // 800x600 256-color (60Hz refresh) mode set command string for CL 6420.
869: // requires 512k minimum
870: //
871: USHORT CL6420_640x480_256color_crt[] = {
872: // Unlock Key for color mode
873: OW, // GR0A = 0xEC opens extension registers
874: GRAPH_ADDRESS_PORT,
875: 0xec0a,
876:
877: #ifndef INT10_MODE_SET
878: OWM,
879: SEQ_ADDRESS_PORT,
880: 5,
881: 0x0100, // start synch reset
882: 0x0101,0x0f02,0x0003,0x0e04, // program up sequencer
883:
884:
885: OB,
886: MISC_OUTPUT_REG_WRITE_PORT,
887: 0xe3,
888:
889: OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
890: GRAPH_ADDRESS_PORT,
891: 0x0506,
892:
893: // EndSyncResetCmd
894: OW,
895: SEQ_ADDRESS_PORT,
896: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
897:
898: OW,
899: CRTC_ADDRESS_PORT_COLOR,
900: 0x0111,
901:
902: METAOUT+INDXOUT, // program crtc registers
903: CRTC_ADDRESS_PORT_COLOR,
904: VGA_NUM_CRTC_PORTS, // count
905: 0, // start index
906: 0xc3,0x9F,0xa0,0x86,
907: 0xa4,0x10,0x0B,0x3E,
908: 0x00,0x40,0x00,0x00,
909: 0x00,0x00,0x00,0x00,
910: 0xEA,0xAC,0xDF,0x50,
911: 0x00,0xE7,0x04,0xE3,
912: 0xFF,
913:
914: // extension registers
915: OWM,
916: GRAPH_ADDRESS_PORT,
917: 16,
918: 0x2662, // ER62 horz. display end extension
919: 0x1064, // ER64 horz. retrace end extension
920: 0x0079, // ER79 vertical overflow
921: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
922: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
923: 0x007c, // ER7c screen A start addr. extension
924: 0x0081, // ER81 display mode
925: 0x0a82, // ER82 character clock selection
926: 0x1084, // ER84 clock select extension
927: 0x0090, // ER90 display memory control
928: 0x0391, // ER91 CRT-circular buffer policy select
929: 0x0895, // ER95 CRT-circular buffer delta & burst
930: 0x0096, // ER96 display memory control test
931: 0x12a0, // ERa0 bus interface unit control
932: 0x20a1, // ERa1 three-state and test control
933: 0x05c8, // ERc8 RAMDAC control
934:
935: IB, // prepare atc for writing
936: INPUT_STATUS_1_COLOR,
937:
938: METAOUT+ATCOUT, //
939: ATT_ADDRESS_PORT, // port
940: VGA_NUM_ATTRIB_CONT_PORTS, // count
941: 0, // start index
942: 0x00,0x01,0x02,0x03,0x04,
943: 0x05,0x06,0x07,0x08,0x09,
944: 0x0A,0x0B,0x0C,0x0D,0x0E,
945: 0x0F,0x01,0x00,0x0F,0x00,0x00,
946:
947: METAOUT+INDXOUT, //
948: GRAPH_ADDRESS_PORT, // port
949: VGA_NUM_GRAPH_CONT_PORTS, // count
950: 0, // start index
951: 0x00,0x0,0x0,0x0,0x0,0x40,0x05,0x0F,0x0FF,
952:
953: OB, // turn video on.
954: ATT_ADDRESS_PORT,
955: VIDEO_ENABLE,
956:
957: #endif
958: // now do the banking registers
959: OWM,
960: GRAPH_ADDRESS_PORT,
961: 3,
962: #if ONE_64K_BANK
963: 0x030d, // ER0D = Banking control: 1 64K bank,
964: #endif
965: #if TWO_32K_BANKS
966: 0x050d,
967: #endif
968: 0x000e, // ER0E bank A address = 0
969: 0x000f, // ER0F bank B address = 0
970:
971: OB,
972: DAC_PIXEL_MASK_PORT,
973: 0xFF,
974:
975: EOD
976: };
977:
978: USHORT CL6420_640x480_256color_panel[] = {
979: // Unlock Key for color mode
980: OW, // GR0A = 0xEC opens extension registers
981: GRAPH_ADDRESS_PORT,
982: 0xec0a,
983:
984: #ifndef INT10_MODE_SET
985: OWM,
986: SEQ_ADDRESS_PORT,
987: 5,
988: 0x0100, // start synch reset
989: 0x0101,0x0f02,0x0003,0x0e04, // program up sequencer
990:
991:
992: OB,
993: MISC_OUTPUT_REG_WRITE_PORT,
994: 0xe3,
995:
996: OW, //{ SetGraphCmd,{ "\x05", 0x06, 1 } },
997: GRAPH_ADDRESS_PORT,
998: 0x0506,
999:
1000: // EndSyncResetCmd
1001: OW,
1002: SEQ_ADDRESS_PORT,
1003: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1004:
1005: OW,
1006: CRTC_ADDRESS_PORT_COLOR,
1007: 0x0111,
1008:
1009: METAOUT+INDXOUT, // program crtc registers
1010: CRTC_ADDRESS_PORT_COLOR,
1011: VGA_NUM_CRTC_PORTS, // count
1012: 0, // start index
1013: 0xc3,0x9F,0xa0,0x86,
1014: 0xa4,0x10,0x0B,0x3E,
1015: 0x00,0x40,0x00,0x00,
1016: 0x00,0x00,0x00,0x00,
1017: 0xEA,0xAC,0xDF,0x50,
1018: 0x00,0xE7,0x04,0xE3,
1019: 0xFF,
1020:
1021: // extension registers
1022: OWM,
1023: GRAPH_ADDRESS_PORT,
1024: 16,
1025: 0x2662, // ER62 horz. display end extension
1026: 0x1064, // ER64 horz. retrace end extension
1027: 0x0079, // ER79 vertical overflow
1028: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
1029: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1030: 0x007c, // ER7c screen A start addr. extension
1031: 0x0181, // ER81 display mode
1032: 0x8a82, // ER82 character clock selection
1033: 0x9a84, // ER84 clock select extension
1034: 0x0090, // ER90 display memory control
1035: 0x0391, // ER91 CRT-circular buffer policy select
1036: 0x0895, // ER95 CRT-circular buffer delta & burst
1037: 0x0096, // ER96 display memory control test
1038: 0x12a0, // ERa0 bus interface unit control
1039: 0x20a1, // ERa1 three-state and test control
1040: 0xa5c8, // ERc8 RAMDAC control
1041:
1042: IB, // prepare atc for writing
1043: INPUT_STATUS_1_COLOR,
1044:
1045: METAOUT+ATCOUT, //
1046: ATT_ADDRESS_PORT, // port
1047: VGA_NUM_ATTRIB_CONT_PORTS, // count
1048: 0, // start index
1049: 0x00,0x01,0x02,0x03,0x04,
1050: 0x05,0x06,0x07,0x08,0x09,
1051: 0x0A,0x0B,0x0C,0x0D,0x0E,
1052: 0x0F,0x01,0x00,0x0F,0x00,0x00,
1053:
1054: METAOUT+INDXOUT, //
1055: GRAPH_ADDRESS_PORT, // port
1056: VGA_NUM_GRAPH_CONT_PORTS, // count
1057: 0, // start index
1058: 0x00,0x0,0x0,0x0,0x0,0x40,0x05,0x0F,0x0FF,
1059:
1060: OB, // turn video on.
1061: ATT_ADDRESS_PORT,
1062: VIDEO_ENABLE,
1063:
1064: #endif
1065: // now do the banking registers
1066: OWM,
1067: GRAPH_ADDRESS_PORT,
1068: 3,
1069: #if ONE_64K_BANK
1070: 0x030d, // ER0D = Banking control: 1 64K bank,
1071: #endif
1072: #if TWO_32K_BANKS
1073: 0x050d,
1074: #endif
1075: 0x000e, // ER0E bank A address = 0
1076: 0x000f, // ER0F bank B address = 0
1077:
1078: OB,
1079: DAC_PIXEL_MASK_PORT,
1080: 0xFF,
1081:
1082: EOD
1083: };
1084:
1085: //
1086: // 800x600 256-color (60Hz refresh) mode set command string for CL 6420.
1087: // requires 512k minimum
1088: //
1089: USHORT CL6420_800x600_256color_crt[] = {
1090: // Unlock Key for color mode
1091: OW, // GR0A = 0xEC opens extension registers
1092: GRAPH_ADDRESS_PORT,
1093: 0xec0a,
1094:
1095: #ifndef INT10_MODE_SET
1096: OWM,
1097: SEQ_ADDRESS_PORT,
1098: 5,
1099: 0x0100, // start synch reset
1100: 0x0101,0x0f02,0x0003,0x0e04, // program up sequencer
1101:
1102:
1103: OB,
1104: MISC_OUTPUT_REG_WRITE_PORT,
1105: 0x2f,
1106:
1107: OW,
1108: GRAPH_ADDRESS_PORT,
1109: 0x0506,
1110:
1111: // EndSyncResetCmd
1112: OW,
1113: SEQ_ADDRESS_PORT,
1114: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1115:
1116: OW,
1117: CRTC_ADDRESS_PORT_COLOR,
1118: 0x0E11,
1119:
1120: METAOUT+INDXOUT, // program crtc registers
1121: CRTC_ADDRESS_PORT_COLOR,
1122: VGA_NUM_CRTC_PORTS, // count
1123: 0, // start index
1124: 0x03,0xc7,0xc8,0x86,
1125: 0xdc,0x0c,0x72,0xf0,
1126: 0x00,0x60,0x00,0x00,
1127: 0x00,0x00,0x00,0x00,
1128: 0x5a,0xac,0x57,0x64,
1129: 0x00,0x58,0x72,0xe3,
1130: 0xFF,
1131:
1132: // extension registers
1133: OWM,
1134: GRAPH_ADDRESS_PORT,
1135: 16,
1136: 0x2662, // ER62 horz. display end extension
1137: 0x2c64, // ER64 horz. retrace end extension
1138: 0x0079, // ER79 vertical overflow
1139: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
1140: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1141: 0x007c, // ER7c screen A start addr. extension
1142: 0x0081, // ER81 display mode
1143: 0x0a82, // ER82 character clock selection
1144: 0x9c84, // ER84 clock select extension
1145: 0x0090, // ER90 display memory control
1146: 0x0391, // ER91 CRT-circular buffer policy select
1147: 0x0895, // ER95 CRT-circular buffer delta & burst
1148: 0x0096, // ER96 display memory control test
1149: 0x12a0, // ERa0 bus interface unit control
1150: 0x20a1, // ERa1 three-state and test control
1151: 0x05c8, // ERc8 RAMDAC control
1152:
1153: IB, // prepare atc for writing
1154: INPUT_STATUS_1_COLOR,
1155:
1156: METAOUT+ATCOUT, //
1157: ATT_ADDRESS_PORT, // port
1158: VGA_NUM_ATTRIB_CONT_PORTS, // count
1159: 0, // start index
1160: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
1161: 0x01,0x0,0x0F,0x0,0x0,
1162:
1163: METAOUT+INDXOUT, //
1164: GRAPH_ADDRESS_PORT, // port
1165: VGA_NUM_GRAPH_CONT_PORTS, // count
1166: 0, // start index
1167: 0x00,0x0,0x0,0x0,0x0,0x40,0x05,0x0F,0x0FF,
1168:
1169: OB, // turn video on.
1170: ATT_ADDRESS_PORT,
1171: VIDEO_ENABLE,
1172:
1173: #endif
1174:
1175: // now do the banking registers
1176: OWM,
1177: GRAPH_ADDRESS_PORT,
1178: 3,
1179: #if ONE_64K_BANK
1180: 0x030d, // ER0D = Banking control: 1 64K bank,
1181: #endif
1182: #if TWO_32K_BANKS
1183: 0x050d,
1184: #endif
1185: 0x000e, // ER0E bank A address = 0
1186: 0x000f, // ER0F bank B address = 0
1187:
1188: OB,
1189: DAC_PIXEL_MASK_PORT,
1190: 0xFF,
1191:
1192: EOD
1193: };
1194:
1195: //
1196: // 1024x768 256-color (60Hz refresh) mode set command string for CL 6420.
1197: // Requires 1Meg minimum.
1198: //
1199: USHORT CL6420_1024x768_256color_crt[] = {
1200:
1201: // Unlock Key for color mode
1202: OW, // GR0A = 0xEC opens extension registers
1203: GRAPH_ADDRESS_PORT,
1204: 0xec0a,
1205:
1206: #ifndef INT10_MODE_SET
1207: OWM,
1208: SEQ_ADDRESS_PORT,
1209: 5,
1210: 0x0100, // start synch reset
1211: 0x0101,0x0f02,0x0003,0x0e04, // program up sequencer
1212:
1213: OB,
1214: MISC_OUTPUT_REG_WRITE_PORT,
1215: 0x23,
1216:
1217: OW,
1218: GRAPH_ADDRESS_PORT,
1219: 0x0506,
1220:
1221: // EndSyncResetCmd
1222: OW,
1223: SEQ_ADDRESS_PORT,
1224: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1225:
1226: OW,
1227: CRTC_ADDRESS_PORT_COLOR,
1228: 0x0E11,
1229:
1230: METAOUT+INDXOUT, // program crtc registers
1231: CRTC_ADDRESS_PORT_COLOR,
1232: VGA_NUM_CRTC_PORTS, // count
1233: 0, // start index
1234: 0x39,0xff,0x00,0x9c,
1235: 0x06,0x91,0x26,0xfd,
1236: 0x00,0x60,0x00,0x00,
1237: 0x00,0x00,0x00,0x00,
1238: 0x04,0xa6,0xff,0x7f,
1239: 0x00,0x00,0x26,0xe3,
1240: 0xFF,
1241: // extension registers
1242: OWM,
1243: GRAPH_ADDRESS_PORT,
1244: 16,
1245: 0xbc62, // ER62 horz. display end extension
1246: 0xf164, // ER64 horz. retrace end extension
1247: 0x0079, // ER79 vertical overflow
1248: 0x997a, // ER7a coarse vert. retrace skew for interlaced odd fields
1249: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1250: 0x007c, // ER7c screen A start addr. extension
1251: 0x0481, // ER81 display mode
1252: 0x0a82, // ER82 character clock selection
1253: 0xa084, // ER84 clock select extension
1254: 0x0090, // ER90 display memory control
1255: 0x0391, // ER91 CRT-circular buffer policy select
1256: 0x0895, // ER95 CRT-circular buffer delta & burst
1257: 0x0096, // ER96 display memory control test
1258: 0x12a0, // ERa0 bus interface unit control
1259: 0x20a1, // ERa1 three-state and test control
1260: 0x05c8, // ERc8 RAMDAC control
1261:
1262: IB, // prepare atc for writing
1263: INPUT_STATUS_1_COLOR,
1264:
1265: OB,
1266: DAC_PIXEL_MASK_PORT,
1267: 0xFF,
1268:
1269: METAOUT+ATCOUT, //
1270: ATT_ADDRESS_PORT, // port
1271: VGA_NUM_ATTRIB_CONT_PORTS, // count
1272: 0, // start index
1273: 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
1274: 0x01,0x00,0x0F,0x00,0x00,
1275:
1276: METAOUT+INDXOUT, //
1277: GRAPH_ADDRESS_PORT, // port
1278: VGA_NUM_GRAPH_CONT_PORTS, // count
1279: 0, // start index
1280: 0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0F,0x0FF,
1281:
1282: OB, // turn video on.
1283: ATT_ADDRESS_PORT,
1284: VIDEO_ENABLE,
1285:
1286: #endif
1287: // now do the banking registers
1288: OWM,
1289: GRAPH_ADDRESS_PORT,
1290: 3,
1291: #if ONE_64K_BANK
1292: 0x030d, // ER0D = Banking control: 1 64K bank,
1293: #endif
1294: #if TWO_32K_BANKS
1295: 0x050d,
1296: #endif
1297: 0x000e, // ER0E bank A address = 0
1298: 0x000f, // ER0F bank B address = 0
1299:
1300: OB,
1301: DAC_PIXEL_MASK_PORT,
1302: 0xFF,
1303:
1304: EOD
1305: };
1306:
1307: #if MULTIPLE_REFRESH_TABLES
1308: //
1309: // 800x600 16-color (56Hz refresh) mode set command string for CL 6420.
1310: //
1311: USHORT CL6420_800x600_56Hz_crt[] = {
1312: #ifndef INT10_MODE_SET
1313: // Unlock Key for color mode
1314: OW, // GR0A = 0xEC opens extension registers
1315: GRAPH_ADDRESS_PORT,
1316: 0xec0a,
1317:
1318: OWM,
1319: SEQ_ADDRESS_PORT,
1320: 5,
1321: 0x0100, // start synch reset
1322: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
1323:
1324:
1325: OB,
1326: MISC_OUTPUT_REG_WRITE_PORT,
1327: 0xe3,
1328:
1329: OW,
1330: GRAPH_ADDRESS_PORT,
1331: 0x0506,
1332:
1333: // EndSyncResetCmd
1334: OW,
1335: SEQ_ADDRESS_PORT,
1336: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1337:
1338: OW,
1339: CRTC_ADDRESS_PORT_COLOR,
1340: 0x0E11,
1341:
1342: METAOUT+INDXOUT, // program crtc registers
1343: CRTC_ADDRESS_PORT_COLOR,
1344: VGA_NUM_CRTC_PORTS, // count
1345: 0, // start index
1346: 0x7b,0x63,0x64,0x9e,
1347: 0x69,0x92,0x6f,0xf0,
1348: 0x00,0x60,0x00,0x00,
1349: 0x00,0x00,0x00,0x00,
1350: 0x58,0xaa,0x57,0x32,
1351: 0x00,0x58,0x6f,0xe3,
1352: 0xFF,
1353:
1354: // extension registers
1355: OWM,
1356: GRAPH_ADDRESS_PORT,
1357: 16,
1358: 0x1e62, // ER62 horz. display end extension
1359: 0x9264, // ER64 horz. retrace end extension
1360: 0x0079, // ER79 vertical overflow
1361: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
1362: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1363: 0x007c, // ER7c screen A start addr. extension
1364: 0x0081, // ER81 display mode
1365: 0x0082, // ER82 character clock selection
1366: 0x8c84, // ER84 clock select extension
1367: 0x0090, // ER90 display memory control
1368: 0x8391, // ER91 CRT-circular buffer policy select
1369: 0x0395, // ER95 CRT-circular buffer delta & burst
1370: 0x0096, // ER96 display memory control test
1371: 0x12a0, // ERa0 bus interface unit control
1372: 0x00a1, // ERa1 three-state and test control
1373: 0x00c8, // ERc8 RAMDAC control
1374:
1375: // zero out the banking regs. for this mode
1376: OWM,
1377: GRAPH_ADDRESS_PORT,
1378: 3,
1379: 0x000d, // ER0D = Banking control: 1 64K bank,
1380: 0x000e, // ER0E bank A address = 0
1381: 0x000f, // ER0F bank B address = 0
1382:
1383: IB, // prepare atc for writing
1384: INPUT_STATUS_1_COLOR,
1385:
1386: METAOUT+ATCOUT, //
1387: ATT_ADDRESS_PORT, // port
1388: VGA_NUM_ATTRIB_CONT_PORTS, // count
1389: 0, // start index
1390: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
1391: 0x01,0x0,0x0F,0x0,0x0,
1392:
1393: METAOUT+INDXOUT, //
1394: GRAPH_ADDRESS_PORT, // port
1395: VGA_NUM_GRAPH_CONT_PORTS, // count
1396: 0, // start index
1397: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
1398:
1399: OB,
1400: DAC_PIXEL_MASK_PORT,
1401: 0xFF,
1402:
1403: OB, // turn video on.
1404: ATT_ADDRESS_PORT,
1405: VIDEO_ENABLE,
1406:
1407: #endif
1408: EOD
1409: };
1410:
1411: //
1412: // 800x600 16-color (72Hz refresh) mode set command string for CL 6420.
1413: //
1414: USHORT CL6420_800x600_72Hz_crt[] = {
1415: #ifndef INT10_MODE_SET
1416: // Unlock Key for color mode
1417: OW, // GR0A = 0xEC opens extension registers
1418: GRAPH_ADDRESS_PORT,
1419: 0xec0a,
1420:
1421: OWM,
1422: SEQ_ADDRESS_PORT,
1423: 5,
1424: 0x0100, // start synch reset
1425: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
1426:
1427:
1428: OB,
1429: MISC_OUTPUT_REG_WRITE_PORT,
1430: 0xe3,
1431:
1432: OW,
1433: GRAPH_ADDRESS_PORT,
1434: 0x0506,
1435:
1436: // EndSyncResetCmd
1437: OW,
1438: SEQ_ADDRESS_PORT,
1439: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1440:
1441: OW,
1442: CRTC_ADDRESS_PORT_COLOR,
1443: 0x0E11,
1444:
1445: METAOUT+INDXOUT, // program crtc registers
1446: CRTC_ADDRESS_PORT_COLOR,
1447: VGA_NUM_CRTC_PORTS, // count
1448: 0, // start index
1449: 0x7f,0x63,0x64,0x82,
1450: 0x6b,0x1b,0x72,0xf0,
1451: 0x00,0x60,0x00,0x00,
1452: 0x00,0x00,0x00,0x00,
1453: 0x58,0xac,0x57,0x32,
1454: 0x00,0x58,0x72,0xe3,
1455: 0xFF,
1456:
1457: // extension registers
1458: OWM,
1459: GRAPH_ADDRESS_PORT,
1460: 16,
1461: 0x0262, // ER62 horz. display end extension
1462: 0x1b64, // ER64 horz. retrace end extension
1463: 0x0079, // ER79 vertical overflow
1464: 0x007a, // ER7a coarse vert. retrace skew for interlaced odd fields
1465: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1466: 0x007c, // ER7c screen A start addr. extension
1467: 0x0081, // ER81 display mode
1468: 0x0082, // ER82 character clock selection
1469: 0x9c84, // ER84 clock select extension
1470: 0x0090, // ER90 display memory control
1471: 0x8391, // ER91 CRT-circular buffer policy select
1472: 0x0395, // ER95 CRT-circular buffer delta & burst
1473: 0x0096, // ER96 display memory control test
1474: 0x12a0, // ERa0 bus interface unit control
1475: 0x00a1, // ERa1 three-state and test control
1476: 0x00c8, // ERc8 RAMDAC control
1477:
1478: // zero out the banking regs. for this mode
1479: OWM,
1480: GRAPH_ADDRESS_PORT,
1481: 3,
1482: 0x000d, // ER0D = Banking control: 1 64K bank,
1483: 0x000e, // ER0E bank A address = 0
1484: 0x000f, // ER0F bank B address = 0
1485:
1486: IB, // prepare atc for writing
1487: INPUT_STATUS_1_COLOR,
1488:
1489: METAOUT+ATCOUT, //
1490: ATT_ADDRESS_PORT, // port
1491: VGA_NUM_ATTRIB_CONT_PORTS, // count
1492: 0, // start index
1493: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
1494: 0x01,0x0,0x0F,0x0,0x0,
1495:
1496: METAOUT+INDXOUT, //
1497: GRAPH_ADDRESS_PORT, // port
1498: VGA_NUM_GRAPH_CONT_PORTS, // count
1499: 0, // start index
1500: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF,
1501:
1502: OB,
1503: DAC_PIXEL_MASK_PORT,
1504: 0xFF,
1505:
1506: OB, // turn video on.
1507: ATT_ADDRESS_PORT,
1508: VIDEO_ENABLE,
1509:
1510: #endif
1511: EOD
1512: };
1513: //
1514: // 1024x768 16-color (43.5Hz refresh interlaced) mode set command string
1515: // for CL 6420.
1516: // Requires 512K minimum.
1517: //
1518: USHORT CL6420_1024x768_I43Hz_crt[] = {
1519:
1520: #ifndef INT10_MODE_SET
1521: // Unlock Key for color mode
1522: OW, // GR0A = 0xEC opens extension registers
1523: GRAPH_ADDRESS_PORT,
1524: 0xec0a,
1525:
1526: OWM,
1527: SEQ_ADDRESS_PORT,
1528: 5,
1529: 0x0100, // start synch reset
1530: 0x0101,0x0f02,0x0003,0x0604, // program up sequencer
1531:
1532:
1533: OWM,
1534: SEQ_ADDRESS_PORT,
1535: 2,
1536: 0x0006,0x0bc07, // program up sequencer
1537:
1538: OB,
1539: MISC_OUTPUT_REG_WRITE_PORT,
1540: 0x2b,
1541:
1542: OW,
1543: GRAPH_ADDRESS_PORT,
1544: 0x0506,
1545:
1546: // EndSyncResetCmd
1547: OW,
1548: SEQ_ADDRESS_PORT,
1549: IND_SYNC_RESET + (END_SYNC_RESET_VALUE << 8),
1550:
1551: OW,
1552: CRTC_ADDRESS_PORT_COLOR,
1553: 0x0E11,
1554:
1555: METAOUT+INDXOUT, // program crtc registers
1556: CRTC_ADDRESS_PORT_COLOR,
1557: VGA_NUM_CRTC_PORTS, // count
1558: 0, // start index
1559: 0x99,0x7f,0x80,0x9c,
1560: 0x83,0x19,0x2f,0xfd,
1561: 0x00,0x60,0x00,0x00,
1562: 0x00,0x00,0x00,0x00,
1563: 0x00,0xa4,0xff,0x3f,
1564: 0x00,0x00,0x2f,0xe3,
1565: 0xff,
1566: // extension registers
1567: OWM,
1568: GRAPH_ADDRESS_PORT,
1569: 16,
1570: 0x1c62, // ER62 horz. display end extension
1571: 0x1964, // ER64 horz. retrace end extension
1572: 0x0079, // ER79 vertical overflow
1573: 0x4c7a, // ER7a coarse vert. retrace skew for interlaced odd fields
1574: 0x007b, // ER7b fine vert. retrace skew for interlaced odd fields
1575: 0x007c, // ER7c screen A start addr. extension
1576: 0x0481, // ER81 display mode
1577: 0x0082, // ER82 character clock selection
1578: 0xa084, // ER84 clock select extension
1579: 0x0090, // ER90 display memory control
1580: 0x0391, // ER91 CRT-circular buffer policy select
1581: 0x0295, // ER95 CRT-circular buffer delta & burst
1582: 0x0096, // ER96 display memory control test
1583: 0x12a0, // ERa0 bus interface unit control
1584: 0x00a1, // ERa1 three-state and test control
1585: 0x00c8, // ERc8 RAMDAC control
1586:
1587: // now do the banking registers
1588: OWM,
1589: GRAPH_ADDRESS_PORT,
1590: 3,
1591: #if ONE_64K_BANK
1592: 0x030d, // ER0D = Banking control: 1 64K bank,
1593: #endif
1594: #if TWO_32K_BANKS
1595: 0x050d,
1596: #endif
1597: 0x000e, // ER0E bank A address = 0
1598: 0x000f, // ER0F bank B address = 0
1599:
1600: OB,
1601: DAC_PIXEL_MASK_PORT,
1602: 0xFF,
1603:
1604: IB, // prepare atc for writing
1605: INPUT_STATUS_1_COLOR,
1606:
1607: METAOUT+ATCOUT, //
1608: ATT_ADDRESS_PORT, // port
1609: VGA_NUM_ATTRIB_CONT_PORTS, // count
1610: 0, // start index
1611: 0x00,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF,
1612: 0x01,0x00,0x0F,0x00,0x00,
1613:
1614: METAOUT+INDXOUT, //
1615: GRAPH_ADDRESS_PORT, // port
1616: VGA_NUM_GRAPH_CONT_PORTS, // count
1617: 0, // start index
1618: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF,
1619:
1620: OB,
1621: DAC_PIXEL_MASK_PORT,
1622: 0xFF,
1623:
1624: OB, // turn video on.
1625: ATT_ADDRESS_PORT,
1626: VIDEO_ENABLE,
1627:
1628: #endif
1629: EOD
1630: };
1631:
1632:
1633: #endif
1634:
1635:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.