|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1992 Microsoft Corporation ! 4: Copyright (c) 1993 Western Digital Corporation ! 5: ! 6: Module Name: ! 7: ! 8: Modeset.h ! 9: ! 10: Abstract: ! 11: ! 12: This module contains all the global data used by the Western Digital ! 13: 90Cxx driver. ! 14: ! 15: Environment: ! 16: ! 17: Kernel mode ! 18: ! 19: Revision History: ! 20: ! 21: --*/ ! 22: ! 23: #include "cmdcnst.h" ! 24: ! 25: ! 26: /************************************************************************** ! 27: * * ! 28: * Western Digital Color text mode, 640x350, 8x14 char * ! 29: * * ! 30: **************************************************************************/ ! 31: ! 32: USHORT WDVGA_TEXT_1[] = { ! 33: // SEQ index 7h-9h, 10h-14h ! 34: OWM, // start sync reset program up sequencer ! 35: SEQ_ADDRESS_PORT, ! 36: 8, ! 37: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 38: ! 39: OWM, ! 40: SEQ_ADDRESS_PORT, ! 41: 5, ! 42: 0x0100,0x0101,0x0302,0x0003,0x0204, // program up sequencer ! 43: ! 44: OB, ! 45: MISC_OUTPUT_REG_WRITE_PORT, ! 46: 0xa3, ! 47: ! 48: OW, ! 49: GRAPH_ADDRESS_PORT, ! 50: 0x0e06, ! 51: ! 52: // EndSyncResetCmd ! 53: OB, ! 54: SEQ_ADDRESS_PORT, ! 55: IND_SYNC_RESET, ! 56: ! 57: OB, ! 58: SEQ_DATA_PORT, ! 59: END_SYNC_RESET_VALUE, ! 60: ! 61: // CRTC index 2ah-30h, 3eh ! 62: METAOUT+INDXOUT, // program crtc registers ! 63: CRTC_ADDRESS_PORT_COLOR, ! 64: 7, // count ! 65: 0x2a, // start index ! 66: 0xf0,0x05,0x00,0x00,0x00,0x42,0x00, ! 67: ! 68: OW, // ! 69: CRTC_ADDRESS_PORT_COLOR, ! 70: 0x003e, ! 71: ! 72: OW, ! 73: CRTC_ADDRESS_PORT_COLOR, ! 74: 0x0511, ! 75: ! 76: METAOUT+INDXOUT, // program crtc registers ! 77: CRTC_ADDRESS_PORT_COLOR, ! 78: VGA_NUM_CRTC_PORTS, // count ! 79: 0, // start index ! 80: 0x5F,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0xb,0xc,0x0,0x0,0x0,0x0, ! 81: 0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,0xFF, ! 82: ! 83: IB, // prepare atc for writing ! 84: INPUT_STATUS_1_COLOR, ! 85: ! 86: METAOUT+ATCOUT, // ! 87: ATT_ADDRESS_PORT, // port ! 88: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 89: 0, // start index ! 90: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, ! 91: 0x00,0x0,0x0F,0x0,0x0, ! 92: ! 93: METAOUT+INDXOUT, // program graphics controller registers ! 94: GRAPH_ADDRESS_PORT, // port ! 95: 7, // count ! 96: 9, // start index ! 97: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 98: ! 99: METAOUT+INDXOUT, // ! 100: GRAPH_ADDRESS_PORT, // port ! 101: VGA_NUM_GRAPH_CONT_PORTS, // count ! 102: 0, // start index ! 103: 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF, ! 104: ! 105: OB, ! 106: DAC_PIXEL_MASK_PORT, ! 107: 0xFF, ! 108: ! 109: IB, // prepare atc for writing ! 110: INPUT_STATUS_1_COLOR, ! 111: ! 112: OB, // turn video on. ! 113: ATT_ADDRESS_PORT, ! 114: VIDEO_ENABLE, ! 115: ! 116: EOD ! 117: }; ! 118: ! 119: #ifndef INT10_MODE_SET ! 120: /************************************************************************** ! 121: * * ! 122: * Western Digital Color text mode, 720x400, 9x16 char * ! 123: * * ! 124: **************************************************************************/ ! 125: ! 126: USHORT WDVGA_TEXT_0[] = { ! 127: // SEQ index 7h-9h, 10h-14h ! 128: OWM, // start sync reset program up sequencer ! 129: SEQ_ADDRESS_PORT, ! 130: 8, ! 131: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 132: ! 133: OWM, ! 134: SEQ_ADDRESS_PORT, ! 135: 5, ! 136: 0x0100,0x0001,0x0302,0x0003,0x0204, // program up sequencer ! 137: ! 138: OB, ! 139: MISC_OUTPUT_REG_WRITE_PORT, ! 140: 0x67, ! 141: ! 142: OW, ! 143: GRAPH_ADDRESS_PORT, ! 144: 0x0e06, ! 145: ! 146: // EndSyncResetCmd ! 147: OB, ! 148: SEQ_ADDRESS_PORT, ! 149: IND_SYNC_RESET, ! 150: ! 151: OB, ! 152: SEQ_DATA_PORT, ! 153: END_SYNC_RESET_VALUE, ! 154: ! 155: // CRTC index 2ah-30h, 3eh ! 156: METAOUT+INDXOUT, // program crtc registers ! 157: CRTC_ADDRESS_PORT_COLOR, ! 158: 7, // count ! 159: 0x2a, // start index ! 160: 0xf0,0x05,0x00,0x00,0x00,0x42,0x00, ! 161: ! 162: OW, // ! 163: CRTC_ADDRESS_PORT_COLOR, ! 164: 0x003e, ! 165: ! 166: OW, ! 167: CRTC_ADDRESS_PORT_COLOR, ! 168: 0x0E11, ! 169: ! 170: METAOUT+INDXOUT, // program crtc registers ! 171: CRTC_ADDRESS_PORT_COLOR, ! 172: VGA_NUM_CRTC_PORTS, // count ! 173: 0, // start index ! 174: 0x5F,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0xd,0xe,0x0,0x0,0x0,0x0, ! 175: 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xFF, ! 176: ! 177: IB, // prepare atc for writing ! 178: INPUT_STATUS_1_COLOR, ! 179: ! 180: METAOUT+ATCOUT, // ! 181: ATT_ADDRESS_PORT, // port ! 182: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 183: 0, // start index ! 184: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, ! 185: 0x04,0x0,0x0F,0x8,0x0, ! 186: ! 187: METAOUT+INDXOUT, // program graphics controller registers ! 188: GRAPH_ADDRESS_PORT, // port ! 189: 7, // count ! 190: 9, // start index ! 191: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 192: ! 193: METAOUT+INDXOUT, // ! 194: GRAPH_ADDRESS_PORT, // port ! 195: VGA_NUM_GRAPH_CONT_PORTS, // count ! 196: 0, // start index ! 197: 0x00,0x0,0x0,0x0,0x0,0x10,0x0e,0x0,0x0FF, ! 198: ! 199: OB, ! 200: DAC_PIXEL_MASK_PORT, ! 201: 0xFF, ! 202: ! 203: IB, // prepare atc for writing ! 204: INPUT_STATUS_1_COLOR, ! 205: ! 206: OB, // turn video on. ! 207: ATT_ADDRESS_PORT, ! 208: VIDEO_ENABLE, ! 209: ! 210: EOD ! 211: }; ! 212: ! 213: ! 214: /************************************************************************** ! 215: * * ! 216: * Western Digital Color graphics mode 0x12, 640x480 16 colors * ! 217: * * ! 218: **************************************************************************/ ! 219: ! 220: USHORT WDVGA_640x480[] = { ! 221: // SEQ index 7h-9h, 10h-14h ! 222: OWM, // start sync reset program up sequencer ! 223: SEQ_ADDRESS_PORT, ! 224: 8, ! 225: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 226: ! 227: OWM, // start sync reset program up sequencer ! 228: SEQ_ADDRESS_PORT, ! 229: 5, ! 230: 0x0100,0x0101,0x0f02,0x0003,0x0604, ! 231: ! 232: OB, ! 233: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 234: 0xe3, ! 235: ! 236: OW, // Set chain mode in sync reset ! 237: GRAPH_ADDRESS_PORT, ! 238: 0x0506, ! 239: ! 240: OB, // EndSyncResetCmd ! 241: SEQ_ADDRESS_PORT, ! 242: IND_SYNC_RESET, ! 243: ! 244: OB, ! 245: SEQ_DATA_PORT, ! 246: END_SYNC_RESET_VALUE, ! 247: ! 248: // CRTC index 2ah-30h, 3eh ! 249: METAOUT+INDXOUT, // program crtc registers ! 250: CRTC_ADDRESS_PORT_COLOR, ! 251: 7, // count ! 252: 0x2a, // start index ! 253: 0xf0,0x05,0x00,0x00,0x00,0x42,0x00, ! 254: ! 255: OW, // ! 256: CRTC_ADDRESS_PORT_COLOR, ! 257: 0x003e, ! 258: ! 259: OW, // Unlock CRTC registers 0-7 ! 260: CRTC_ADDRESS_PORT_COLOR, ! 261: 0x0511, ! 262: ! 263: METAOUT+INDXOUT, // program crtc registers ! 264: CRTC_ADDRESS_PORT_COLOR, ! 265: VGA_NUM_CRTC_PORTS, // count ! 266: 0, // start index ! 267: 0x5F,0x4F,0x50,0x82,0x54,0x80,0x0B,0x3E,0x00,0x40,0x0,0x0,0x0,0x0,0x0,0x0, ! 268: 0xEA,0x8C,0xDF,0x28,0x0,0xE7,0x4,0xE3,0xFF, ! 269: ! 270: IB, // prepare atc for writing ! 271: INPUT_STATUS_1_COLOR, ! 272: ! 273: METAOUT+ATCOUT, // program attribute controller registers ! 274: ATT_ADDRESS_PORT, // port ! 275: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 276: 0, // start index ! 277: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, ! 278: 0x01,0x0,0x0F,0x0,0x0, ! 279: ! 280: METAOUT+INDXOUT, // program graphics controller registers ! 281: GRAPH_ADDRESS_PORT, // port ! 282: 7, // count ! 283: 9, // start index ! 284: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 285: ! 286: METAOUT+INDXOUT, // program graphics controller registers ! 287: GRAPH_ADDRESS_PORT, // port ! 288: VGA_NUM_GRAPH_CONT_PORTS, // count ! 289: 0, // start index ! 290: 0x00,0x0,0x0,0x0,0x0,0x0,0x05,0x0F,0x0FF, ! 291: ! 292: OB, // DAC mask registers ! 293: DAC_PIXEL_MASK_PORT, ! 294: 0xFF, ! 295: ! 296: IB, // prepare atc for writing ! 297: INPUT_STATUS_1_COLOR, ! 298: ! 299: OB, // turn video on. ! 300: ATT_ADDRESS_PORT, ! 301: VIDEO_ENABLE, ! 302: ! 303: EOD ! 304: }; ! 305: ! 306: /******************************************************************** ! 307: * Western Digital 800x600 modes - vRefresh 60Hz. * ! 308: * * ! 309: *********************************************************************/ ! 310: ! 311: // ! 312: // Color graphics mode 0x58, 800x600 16 colors 60Hz. ! 313: // ! 314: USHORT WDVGA_800x600_60hz[] = { ! 315: // SEQ index 7h-9h, 10h-14h ! 316: OWM, // start sync reset program up sequencer ! 317: SEQ_ADDRESS_PORT, ! 318: 8, ! 319: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 320: ! 321: OWM, // start sync reset program up sequencer ! 322: SEQ_ADDRESS_PORT, ! 323: 5, ! 324: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 325: ! 326: OB, ! 327: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 328: 0x23, ! 329: ! 330: OW, // Set chain mode in sync reset ! 331: GRAPH_ADDRESS_PORT, ! 332: 0x0506, ! 333: ! 334: OB, // EndSyncResetCmd ! 335: SEQ_ADDRESS_PORT, ! 336: IND_SYNC_RESET, ! 337: ! 338: OB, ! 339: SEQ_DATA_PORT, ! 340: END_SYNC_RESET_VALUE, ! 341: ! 342: // CRTC index 2ah-30h, 3eh ! 343: METAOUT+INDXOUT, // program crtc registers ! 344: CRTC_ADDRESS_PORT_COLOR, ! 345: 7, // count ! 346: 0x2a, // start index ! 347: 0xf0,0x45,0x00,0x00,0x00,0x00,0x00, ! 348: ! 349: OW, // CRTC index 3e ! 350: CRTC_ADDRESS_PORT_COLOR, ! 351: 0x003e, ! 352: ! 353: OW, // Unlock CRTC registers 0-7 ! 354: CRTC_ADDRESS_PORT_COLOR, ! 355: 0x0511, ! 356: ! 357: METAOUT+INDXOUT, // program crtc registers ! 358: CRTC_ADDRESS_PORT_COLOR, ! 359: VGA_NUM_CRTC_PORTS, // count ! 360: 0, // start index ! 361: 0x7f,0x63,0x64,0x82,0x6b,0x1b,0x72,0xf0,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 362: 0x58,0x8c,0x57,0x32,0x0,0x58,0x71,0xE3,0xFF, ! 363: ! 364: IB, // prepare atc for writing ! 365: INPUT_STATUS_1_COLOR, ! 366: ! 367: METAOUT+ATCOUT, // program attribute controller registers ! 368: ATT_ADDRESS_PORT, // port ! 369: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 370: 0, // start index ! 371: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, ! 372: 0x01,0x0,0x0F,0x0,0x0, ! 373: ! 374: // GRAPH index 9-fh ! 375: METAOUT+INDXOUT, // program graphics controller registers ! 376: GRAPH_ADDRESS_PORT, // port ! 377: 7, // count ! 378: 9, // start index ! 379: 0x00,0x00,0xc6,0x00,0x00,0x00,0x05, ! 380: ! 381: METAOUT+INDXOUT, // program graphics controller registers ! 382: GRAPH_ADDRESS_PORT, // port ! 383: VGA_NUM_GRAPH_CONT_PORTS, // count ! 384: 0, // start index ! 385: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 386: ! 387: OB, // DAC mask registers ! 388: DAC_PIXEL_MASK_PORT, ! 389: 0xFF, ! 390: ! 391: IB, // prepare atc for writing ! 392: INPUT_STATUS_1_COLOR, ! 393: ! 394: OB, // turn video on. ! 395: ATT_ADDRESS_PORT, ! 396: VIDEO_ENABLE, ! 397: ! 398: EOD ! 399: }; ! 400: ! 401: /******************************************************************** ! 402: * Western Digital 800x600 modes - vRefresh6 72Hz. * ! 403: * * ! 404: *********************************************************************/ ! 405: ! 406: // ! 407: // Color graphics mode 0x58, 800x600 16 colors 72Hz. ! 408: // ! 409: USHORT WDVGA_800x600_72hz[] = { ! 410: // SEQ index 7h-9h, 10h-14h ! 411: OWM, // start sync reset program up sequencer ! 412: SEQ_ADDRESS_PORT, ! 413: 8, ! 414: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 415: ! 416: OWM, // start sync reset program up sequencer ! 417: SEQ_ADDRESS_PORT, ! 418: 5, ! 419: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 420: ! 421: OB, ! 422: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 423: 0x27, ! 424: ! 425: OW, // Set chain mode in sync reset ! 426: GRAPH_ADDRESS_PORT, ! 427: 0x0506, ! 428: ! 429: OB, // EndSyncResetCmd ! 430: SEQ_ADDRESS_PORT, ! 431: IND_SYNC_RESET, ! 432: ! 433: OB, ! 434: SEQ_DATA_PORT, ! 435: END_SYNC_RESET_VALUE, ! 436: ! 437: // CRTC index 2ah-30h, 3eh ! 438: METAOUT+INDXOUT, // program crtc registers ! 439: CRTC_ADDRESS_PORT_COLOR, ! 440: 7, // count ! 441: 0x2a, // start index ! 442: 0xf0,0x85,0x00,0x00,0x00,0x00,0x00, ! 443: ! 444: OW, // CRTC index 3e ! 445: CRTC_ADDRESS_PORT_COLOR, ! 446: 0x003e, ! 447: ! 448: OW, // Unlock CRTC registers 0-7 ! 449: CRTC_ADDRESS_PORT_COLOR, ! 450: 0x0511, ! 451: ! 452: METAOUT+INDXOUT, // program crtc registers ! 453: CRTC_ADDRESS_PORT_COLOR, ! 454: VGA_NUM_CRTC_PORTS, // count ! 455: 0, // start index ! 456: 0x7e,0x63,0x64,0x81,0x6b,0x1a,0x96,0xf0,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 457: 0x6d,0xf3,0x57,0x32,0x0,0x5a,0x94,0xE3,0xFF, ! 458: ! 459: IB, // prepare atc for writing ! 460: INPUT_STATUS_1_COLOR, ! 461: ! 462: METAOUT+ATCOUT, // program attribute controller registers ! 463: ATT_ADDRESS_PORT, // port ! 464: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 465: 0, // start index ! 466: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, ! 467: 0x01,0x0,0x0F,0x0,0x0, ! 468: ! 469: // GRAPH index 9-fh ! 470: METAOUT+INDXOUT, // program graphics controller registers ! 471: GRAPH_ADDRESS_PORT, // port ! 472: 7, // count ! 473: 9, // start index ! 474: 0x00,0x00,0xc6,0x00,0x00,0x00,0x05, ! 475: ! 476: METAOUT+INDXOUT, // program graphics controller registers ! 477: GRAPH_ADDRESS_PORT, // port ! 478: VGA_NUM_GRAPH_CONT_PORTS, // count ! 479: 0, // start index ! 480: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 481: ! 482: OB, // DAC mask registers ! 483: DAC_PIXEL_MASK_PORT, ! 484: 0xFF, ! 485: ! 486: IB, // prepare atc for writing ! 487: INPUT_STATUS_1_COLOR, ! 488: ! 489: OB, // turn video on. ! 490: ATT_ADDRESS_PORT, ! 491: VIDEO_ENABLE, ! 492: ! 493: EOD ! 494: }; ! 495: ! 496: /******************************************************************** ! 497: * Western Digital 800x600 modes - vRefresh 56Hz. * ! 498: * * ! 499: *********************************************************************/ ! 500: ! 501: // ! 502: // Color graphics mode 0x58, 800x600 16 colors 56Hz. ! 503: // ! 504: USHORT WDVGA_800x600_56hz[] = { ! 505: // SEQ index 7h-9h, 10h-14h ! 506: OWM, // start sync reset program up sequencer ! 507: SEQ_ADDRESS_PORT, ! 508: 8, ! 509: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 510: ! 511: OWM, // start sync reset program up sequencer ! 512: SEQ_ADDRESS_PORT, ! 513: 5, ! 514: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 515: ! 516: OB, ! 517: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 518: 0xef, ! 519: ! 520: OW, // Set chain mode in sync reset ! 521: GRAPH_ADDRESS_PORT, ! 522: 0x0506, ! 523: ! 524: OB, // EndSyncResetCmd ! 525: SEQ_ADDRESS_PORT, ! 526: IND_SYNC_RESET, ! 527: ! 528: OB, ! 529: SEQ_DATA_PORT, ! 530: END_SYNC_RESET_VALUE, ! 531: ! 532: // CRTC index 2ah-30h, 3eh ! 533: METAOUT+INDXOUT, // program crtc registers ! 534: CRTC_ADDRESS_PORT_COLOR, ! 535: 7, // count ! 536: 0x2a, // start index ! 537: 0xf0,0x05,0x00,0x00,0x00,0x00,0x00, ! 538: ! 539: OW, // CRTC index 3e ! 540: CRTC_ADDRESS_PORT_COLOR, ! 541: 0x003e, ! 542: ! 543: OW, // Unlock CRTC registers 0-7 ! 544: CRTC_ADDRESS_PORT_COLOR, ! 545: 0x0511, ! 546: ! 547: METAOUT+INDXOUT, // program crtc registers ! 548: CRTC_ADDRESS_PORT_COLOR, ! 549: VGA_NUM_CRTC_PORTS, // count ! 550: 0, // start index ! 551: 0x7b,0x63,0x64,0x9e,0x69,0x92,0x6f,0xf0,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 552: 0x58,0x8a,0x57,0x32,0x0,0x58,0x6f,0xE3,0xFF, ! 553: ! 554: IB, // prepare atc for writing ! 555: INPUT_STATUS_1_COLOR, ! 556: ! 557: METAOUT+ATCOUT, // program attribute controller registers ! 558: ATT_ADDRESS_PORT, // port ! 559: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 560: 0, // start index ! 561: 0x0,0x1,0x2,0x3,0x4,0x5,0x14,0x7,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, ! 562: 0x01,0x0,0x0F,0x0,0x0, ! 563: ! 564: // GRAPH index 9-fh ! 565: METAOUT+INDXOUT, // program graphics controller registers ! 566: GRAPH_ADDRESS_PORT, // port ! 567: 7, // count ! 568: 9, // start index ! 569: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 570: ! 571: METAOUT+INDXOUT, // program graphics controller registers ! 572: GRAPH_ADDRESS_PORT, // port ! 573: VGA_NUM_GRAPH_CONT_PORTS, // count ! 574: 0, // start index ! 575: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 576: ! 577: OB, // DAC mask registers ! 578: DAC_PIXEL_MASK_PORT, ! 579: 0xFF, ! 580: ! 581: IB, // prepare atc for writing ! 582: INPUT_STATUS_1_COLOR, ! 583: ! 584: OB, // turn video on. ! 585: ATT_ADDRESS_PORT, ! 586: VIDEO_ENABLE, ! 587: ! 588: EOD ! 589: }; ! 590: ! 591: ! 592: /************************************************************************** ! 593: * Western Digital 1024x768 modes - vRefresh 60Hz. * ! 594: * * ! 595: **************************************************************************/ ! 596: ! 597: // ! 598: // Color graphics mode 0x5d, 1024x768 16 colors. 60Hz non-interlace ! 599: // ! 600: USHORT WDVGA_1024x768_60hz[] = { ! 601: // SEQ index 7h-9h, 10h-14h ! 602: OWM, // start sync reset program up sequencer ! 603: SEQ_ADDRESS_PORT, ! 604: 8, ! 605: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 606: ! 607: OWM, // start sync reset program up sequencer ! 608: SEQ_ADDRESS_PORT, ! 609: 5, ! 610: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 611: ! 612: OB, ! 613: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 614: 0xeb, ! 615: ! 616: OW, // Set chain mode in sync reset ! 617: GRAPH_ADDRESS_PORT, ! 618: 0x0506, ! 619: ! 620: OB, // EndSyncResetCmd ! 621: SEQ_ADDRESS_PORT, ! 622: IND_SYNC_RESET, ! 623: ! 624: OB, ! 625: SEQ_DATA_PORT, ! 626: END_SYNC_RESET_VALUE, ! 627: ! 628: // CRTC index 2ah-30h, 3eh ! 629: METAOUT+INDXOUT, // program crtc registers ! 630: CRTC_ADDRESS_PORT_COLOR, ! 631: 7, // count ! 632: 0x2a, // start index ! 633: 0xf0,0x95,0x00,0x00,0x01,0x00,0x00, ! 634: ! 635: OW, // ! 636: CRTC_ADDRESS_PORT_COLOR, ! 637: 0x003e, ! 638: ! 639: OW, // Unlock CRTC registers 0-7 ! 640: CRTC_ADDRESS_PORT_COLOR, ! 641: 0x0511, ! 642: ! 643: METAOUT+INDXOUT, // program crtc registers ! 644: CRTC_ADDRESS_PORT_COLOR, ! 645: VGA_NUM_CRTC_PORTS, // count ! 646: 0, // start index ! 647: 0xa3,0x7f,0x80,0x06,0x87,0x98,0x24,0xf1,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 648: 0xff,0x85,0xff,0x40,0x0,0xff,0x23,0xE3,0xFF, ! 649: ! 650: IB, // prepare atc for writing ! 651: INPUT_STATUS_1_COLOR, ! 652: ! 653: METAOUT+ATCOUT, // program attribute controller registers ! 654: ATT_ADDRESS_PORT, // port ! 655: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 656: 0, // start index ! 657: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF, ! 658: 0x01,0x0,0x0F,0x0,0x0, ! 659: ! 660: METAOUT+INDXOUT, // program graphics controller registers ! 661: GRAPH_ADDRESS_PORT, // port ! 662: 7, // count ! 663: 9, // start index ! 664: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 665: ! 666: METAOUT+INDXOUT, // program graphics controller registers ! 667: GRAPH_ADDRESS_PORT, // port ! 668: VGA_NUM_GRAPH_CONT_PORTS, // count ! 669: 0, // start index ! 670: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 671: ! 672: ! 673: OB, // DAC mask registers ! 674: DAC_PIXEL_MASK_PORT, ! 675: 0xFF, ! 676: ! 677: IB, // prepare atc for writing ! 678: INPUT_STATUS_1_COLOR, ! 679: ! 680: OB, // turn video on. ! 681: ATT_ADDRESS_PORT, ! 682: VIDEO_ENABLE, ! 683: ! 684: //start of enable 64k read/write bank mode. ! 685: OW, // enable 64k single read/write bank ! 686: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 687: 0xe511, ! 688: ! 689: OW, // enable PR0B register ! 690: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 691: 0xce0b, ! 692: //end of enable 64k read/write bank mode. ! 693: ! 694: EOD ! 695: }; ! 696: ! 697: ! 698: /************************************************************************** ! 699: * Western Digital 1024x768 modes - vRefresh 70Hz. * ! 700: * * ! 701: **************************************************************************/ ! 702: ! 703: // ! 704: // Color graphics mode 0x5d, 1024x768 16 colors. 70Hz non-interlace ! 705: // ! 706: USHORT WDVGA_1024x768_70hz[] = { ! 707: // SEQ index 7h-9h, 10h-14h ! 708: OWM, // start sync reset program up sequencer ! 709: SEQ_ADDRESS_PORT, ! 710: 8, ! 711: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0012,0x8013,0x1014, ! 712: ! 713: OWM, // start sync reset program up sequencer ! 714: SEQ_ADDRESS_PORT, ! 715: 5, ! 716: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 717: ! 718: OB, ! 719: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 720: 0xeb, ! 721: ! 722: OW, // Set chain mode in sync reset ! 723: GRAPH_ADDRESS_PORT, ! 724: 0x0506, ! 725: ! 726: OB, // EndSyncResetCmd ! 727: SEQ_ADDRESS_PORT, ! 728: IND_SYNC_RESET, ! 729: ! 730: OB, ! 731: SEQ_DATA_PORT, ! 732: END_SYNC_RESET_VALUE, ! 733: ! 734: // CRTC index 2ah-30h, 3eh ! 735: METAOUT+INDXOUT, // program crtc registers ! 736: CRTC_ADDRESS_PORT_COLOR, ! 737: 7, // count ! 738: 0x2a, // start index ! 739: 0xf0,0xa5,0x00,0x00,0x01,0x00,0x00, ! 740: ! 741: OW, // ! 742: CRTC_ADDRESS_PORT_COLOR, ! 743: 0x003e, ! 744: ! 745: OW, // Unlock CRTC registers 0-7 ! 746: CRTC_ADDRESS_PORT_COLOR, ! 747: 0x0511, ! 748: ! 749: METAOUT+INDXOUT, // program crtc registers ! 750: CRTC_ADDRESS_PORT_COLOR, ! 751: VGA_NUM_CRTC_PORTS, // count ! 752: 0, // start index ! 753: 0xa1,0x7f,0x80,0x04,0x86,0x97,0x24,0xf1,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 754: 0xff,0x85,0xff,0x40,0x0,0xff,0x23,0xE3,0xFF, ! 755: ! 756: IB, // prepare atc for writing ! 757: INPUT_STATUS_1_COLOR, ! 758: ! 759: METAOUT+ATCOUT, // program attribute controller registers ! 760: ATT_ADDRESS_PORT, // port ! 761: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 762: 0, // start index ! 763: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF, ! 764: 0x01,0x0,0x0F,0x0,0x0, ! 765: ! 766: METAOUT+INDXOUT, // program graphics controller registers ! 767: GRAPH_ADDRESS_PORT, // port ! 768: 7, // count ! 769: 9, // start index ! 770: 0x00,0x00,0xc6,0x02,0x00,0x00,0x05, ! 771: ! 772: METAOUT+INDXOUT, // program graphics controller registers ! 773: GRAPH_ADDRESS_PORT, // port ! 774: VGA_NUM_GRAPH_CONT_PORTS, // count ! 775: 0, // start index ! 776: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 777: ! 778: ! 779: OB, // DAC mask registers ! 780: DAC_PIXEL_MASK_PORT, ! 781: 0xFF, ! 782: ! 783: IB, // prepare atc for writing ! 784: INPUT_STATUS_1_COLOR, ! 785: ! 786: OB, // turn video on. ! 787: ATT_ADDRESS_PORT, ! 788: VIDEO_ENABLE, ! 789: ! 790: //start of enable 64k read/write bank mode. ! 791: OW, // enable 64k single read/write bank ! 792: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 793: 0xe511, ! 794: ! 795: OW, // enable PR0B register ! 796: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 797: 0xce0b, ! 798: //end of enable 64k read/write bank mode. ! 799: ! 800: EOD ! 801: }; ! 802: ! 803: ! 804: /************************************************************************** ! 805: * Western Digital 1024x768 modes - vRefresh 72Hz. * ! 806: * * ! 807: **************************************************************************/ ! 808: ! 809: // ! 810: // Color graphics mode 0x5d, 1024x768 16 colors. 72Hz non-interlace ! 811: // ! 812: USHORT WDVGA_1024x768_72hz[] = { ! 813: // SEQ index 7h-9h, 10h-14h ! 814: OWM, // start sync reset program up sequencer ! 815: SEQ_ADDRESS_PORT, ! 816: 8, ! 817: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0012,0x8013,0x1014, ! 818: ! 819: OWM, // start sync reset program up sequencer ! 820: SEQ_ADDRESS_PORT, ! 821: 5, ! 822: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 823: ! 824: OB, ! 825: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 826: 0xef, ! 827: ! 828: OW, // Set chain mode in sync reset ! 829: GRAPH_ADDRESS_PORT, ! 830: 0x0506, ! 831: ! 832: OB, // EndSyncResetCmd ! 833: SEQ_ADDRESS_PORT, ! 834: IND_SYNC_RESET, ! 835: ! 836: OB, ! 837: SEQ_DATA_PORT, ! 838: END_SYNC_RESET_VALUE, ! 839: ! 840: // CRTC index 2ah-30h, 3eh ! 841: METAOUT+INDXOUT, // program crtc registers ! 842: CRTC_ADDRESS_PORT_COLOR, ! 843: 7, // count ! 844: 0x2a, // start index ! 845: 0xf0,0xb5,0x00,0x00,0x01,0x00,0x00, ! 846: ! 847: OW, // ! 848: CRTC_ADDRESS_PORT_COLOR, ! 849: 0x003e, ! 850: ! 851: OW, // Unlock CRTC registers 0-7 ! 852: CRTC_ADDRESS_PORT_COLOR, ! 853: 0x0511, ! 854: ! 855: METAOUT+INDXOUT, // program crtc registers ! 856: CRTC_ADDRESS_PORT_COLOR, ! 857: VGA_NUM_CRTC_PORTS, // count ! 858: 0, // start index ! 859: 0xa3,0x7f,0x80,0x06,0x81,0x92,0x37,0xfd,0x00,0x60,0x0,0x0,0x0,0x0,0x0,0x0, ! 860: 0x01,0x87,0xff,0x40,0x0,0x00,0x37,0xE3,0xFF, ! 861: ! 862: IB, // prepare atc for writing ! 863: INPUT_STATUS_1_COLOR, ! 864: ! 865: METAOUT+ATCOUT, // program attribute controller registers ! 866: ATT_ADDRESS_PORT, // port ! 867: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 868: 0, // start index ! 869: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF, ! 870: 0x01,0x0,0x0F,0x0,0x0, ! 871: ! 872: METAOUT+INDXOUT, // program graphics controller registers ! 873: GRAPH_ADDRESS_PORT, // port ! 874: 7, // count ! 875: 9, // start index ! 876: 0x00,0x00,0xc6,0x00,0x00,0x00,0x05, ! 877: ! 878: METAOUT+INDXOUT, // program graphics controller registers ! 879: GRAPH_ADDRESS_PORT, // port ! 880: VGA_NUM_GRAPH_CONT_PORTS, // count ! 881: 0, // start index ! 882: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 883: ! 884: ! 885: OB, // DAC mask registers ! 886: DAC_PIXEL_MASK_PORT, ! 887: 0xFF, ! 888: ! 889: IB, // prepare atc for writing ! 890: INPUT_STATUS_1_COLOR, ! 891: ! 892: OB, // turn video on. ! 893: ATT_ADDRESS_PORT, ! 894: VIDEO_ENABLE, ! 895: ! 896: //start of enable 64k read/write bank mode. ! 897: OW, // enable 64k single read/write bank ! 898: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 899: 0xe511, ! 900: ! 901: OW, // enable PR0B register ! 902: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 903: 0xce0b, ! 904: //end of enable 64k read/write bank mode. ! 905: ! 906: EOD ! 907: }; ! 908: ! 909: ! 910: /************************************************************************** ! 911: * Western Digital 1024x768 modes - vRefresh Interlace. * ! 912: * * ! 913: **************************************************************************/ ! 914: ! 915: // ! 916: // Color graphics mode 0x5d, 1024x768 16 colors. Default - Interlace ! 917: // ! 918: USHORT WDVGA_1024x768_int[] = { ! 919: // SEQ index 7h-9h, 10h-14h ! 920: OWM, // start sync reset program up sequencer ! 921: SEQ_ADDRESS_PORT, ! 922: 8, ! 923: 0xf807,0x0008,0x0009,0xc510,0x6511,0x0412,0x8013,0x1014, ! 924: ! 925: OWM, // start sync reset program up sequencer ! 926: SEQ_ADDRESS_PORT, ! 927: 5, ! 928: 0x0300,0x0101,0x0f02,0x0003,0x0604, ! 929: ! 930: OB, ! 931: MISC_OUTPUT_REG_WRITE_PORT, // Misc output register ! 932: 0x2f, ! 933: ! 934: OW, // Set chain mode in sync reset ! 935: GRAPH_ADDRESS_PORT, ! 936: 0x0506, ! 937: ! 938: OB, // EndSyncResetCmd ! 939: SEQ_ADDRESS_PORT, ! 940: IND_SYNC_RESET, ! 941: ! 942: OB, ! 943: SEQ_DATA_PORT, ! 944: END_SYNC_RESET_VALUE, ! 945: ! 946: // CRTC index 2ah-30h, 3eh ! 947: METAOUT+INDXOUT, // program crtc registers ! 948: CRTC_ADDRESS_PORT_COLOR, ! 949: 7, // count ! 950: 0x2a, // start index ! 951: 0xf0,0x05,0x34,0x2a,0x0b,0x00,0x00, ! 952: ! 953: OW, // ! 954: CRTC_ADDRESS_PORT_COLOR, ! 955: 0x003e, ! 956: ! 957: OW, // Unlock CRTC registers 0-7 ! 958: CRTC_ADDRESS_PORT_COLOR, ! 959: 0x0511, ! 960: ! 961: METAOUT+INDXOUT, // program crtc registers ! 962: CRTC_ADDRESS_PORT_COLOR, ! 963: VGA_NUM_CRTC_PORTS, // count ! 964: 0, // start index ! 965: 0x99,0x7f,0x7f,0x1c,0x83,0x19,0x97,0x1f,0x00,0x40,0x0,0x0,0x0,0x0,0x0,0x0, ! 966: 0x7f,0x83,0x7F,0x40,0x0,0x7f,0x96,0xE3,0xFF, ! 967: ! 968: IB, // prepare atc for writing ! 969: INPUT_STATUS_1_COLOR, ! 970: ! 971: METAOUT+ATCOUT, // program attribute controller registers ! 972: ATT_ADDRESS_PORT, // port ! 973: VGA_NUM_ATTRIB_CONT_PORTS, // count ! 974: 0, // start index ! 975: 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF, ! 976: 0x01,0x0,0x0F,0x0,0x0, ! 977: ! 978: METAOUT+INDXOUT, // program graphics controller registers ! 979: GRAPH_ADDRESS_PORT, // port ! 980: 7, // count ! 981: 9, // start index ! 982: 0x00,0x00,0xc6,0x00,0x00,0x00,0x05, ! 983: ! 984: METAOUT+INDXOUT, // program graphics controller registers ! 985: GRAPH_ADDRESS_PORT, // port ! 986: VGA_NUM_GRAPH_CONT_PORTS, // count ! 987: 0, // start index ! 988: 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x0FF, ! 989: ! 990: ! 991: OB, // DAC mask registers ! 992: DAC_PIXEL_MASK_PORT, ! 993: 0xFF, ! 994: ! 995: IB, // prepare atc for writing ! 996: INPUT_STATUS_1_COLOR, ! 997: ! 998: OB, // turn video on. ! 999: ATT_ADDRESS_PORT, ! 1000: VIDEO_ENABLE, ! 1001: ! 1002: //start of enable 64k read/write bank mode. ! 1003: OW, // enable 64k single read/write bank ! 1004: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 1005: 0xe511, ! 1006: ! 1007: OW, // enable PR0B register ! 1008: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 1009: 0xce0b, ! 1010: //end of enable 64k read/write bank mode. ! 1011: ! 1012: EOD ! 1013: }; ! 1014: #else//!INT10_MODE_SET ! 1015: ! 1016: USHORT WDVGA_1K_WIDE[] = { ! 1017: OW, // stretch scans to 1k ! 1018: CRTC_ADDRESS_PORT_COLOR, ! 1019: 0x8013, ! 1020: ! 1021: EOD ! 1022: }; ! 1023: ! 1024: USHORT WDVGA_RW_BANK[] = { ! 1025: OW, //unlock SEQ ext. regs for 90c11 ! 1026: SEQ_ADDRESS_PORT, ! 1027: 0x4806, ! 1028: ! 1029: OB, ! 1030: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 1031: 0x11, ! 1032: METAOUT+MASKOUT, ! 1033: SEQ_DATA_PORT, ! 1034: 0x7f, ! 1035: 0x80, ! 1036: ! 1037: OB, // enable PR0B register ! 1038: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 1039: 0x0b, ! 1040: METAOUT+MASKOUT, ! 1041: GRAPH_DATA_PORT, ! 1042: 0xf7, ! 1043: 0x08, ! 1044: ! 1045: EOD ! 1046: }; ! 1047: ! 1048: USHORT WDVGA_RW_BANK_1K_WIDE[] = { ! 1049: OW, // stretch scans to 1k ! 1050: CRTC_ADDRESS_PORT_COLOR, ! 1051: 0x8013, ! 1052: ! 1053: OW, //unlock SEQ ext. regs for 90c11 ! 1054: SEQ_ADDRESS_PORT, ! 1055: 0x4806, ! 1056: ! 1057: OB, ! 1058: SEQ_ADDRESS_PORT, // set 3c4.11 bit #7 ! 1059: 0x11, ! 1060: METAOUT+MASKOUT, ! 1061: SEQ_DATA_PORT, ! 1062: 0x7f, ! 1063: 0x80, ! 1064: ! 1065: OB, // enable PR0B register ! 1066: GRAPH_ADDRESS_PORT, // set 3ce.0b bit #3 ! 1067: 0x0b, ! 1068: METAOUT+MASKOUT, ! 1069: GRAPH_DATA_PORT, ! 1070: 0xf7, ! 1071: 0x08, ! 1072: ! 1073: EOD ! 1074: }; ! 1075: ! 1076: #endif ! 1077: // ! 1078: // Memory map table - ! 1079: // ! 1080: // These memory maps are used to save and restore the physical video buffer. ! 1081: // ! 1082: ! 1083: // ! 1084: // Memory map table definition ! 1085: // ! 1086: ! 1087: typedef struct { ! 1088: ULONG MaxSize; // Maximum addressable size of memory. ! 1089: ULONG Start; // Start address of mode. ! 1090: } MEMORYMAPS; ! 1091: ! 1092: MEMORYMAPS MemoryMaps[] = { ! 1093: ! 1094: // length start ! 1095: // ------ ----- ! 1096: { 0x08000, 0xB0000}, // all mono text modes (7) ! 1097: { 0x08000, 0xB8000}, // all color text modes (0, 1, 2, 3, ! 1098: { 0x20000, 0xA0000}, // all VGA graphics modes ! 1099: }; ! 1100: ! 1101: // ! 1102: // Video mode table - contains information and commands for initializing each ! 1103: // mode. These entries must correspond with those in VIDEO_MODE_VGA. The first ! 1104: // entry is commented; the rest follow the same format, but are not so ! 1105: // heavily commented. ! 1106: // ! 1107: ! 1108: // ! 1109: // Total # of video modes this driver supports. ! 1110: // ! 1111: ! 1112: #ifdef INT10_MODE_SET ! 1113: #define NUM_VIDEO_MODES 18 //should be changed to support 256-color drivers ! 1114: #else ! 1115: #define NUM_VIDEO_MODES 10 ! 1116: #endif ! 1117: ! 1118: VIDEOMODE ModesVGA[NUM_VIDEO_MODES] = { ! 1119: ! 1120: // ! 1121: // Standard VGA modes. ! 1122: // ! 1123: ! 1124: // ! 1125: // Mode index 0 ! 1126: // Color text mode 3, 720x400, 9x16 char cell (VGA). ! 1127: // ! 1128: ! 1129: { ! 1130: VIDEO_MODE_COLOR, // flags that this mode is a color mode, but not graphics ! 1131: 4, // four planes ! 1132: 1, // one bit of color per plane ! 1133: 80, 25, // 80x25 text resolution ! 1134: 720, 400, // 720x400 pixels on screen ! 1135: 160, 0x10000, // 160 bytes per scan line, 64K of CPU-addressable bitmap ! 1136: 0, 0, // set to 0 frequency, non-interlaced mode. ! 1137: NoBanking, // no banking supported or needed in this mode ! 1138: MemMap_CGA, // the memory mapping is the standard CGA memory mapping ! 1139: // of 32K at B8000 ! 1140: FALSE, // Is mode valid or not ! 1141: #ifdef INT10_MODE_SET ! 1142: 0xFF, // mask to AND in for frequency ! 1143: 0x00, // Value used to set the frequency ! 1144: 0x3, // int10 mode number ! 1145: NULL, ! 1146: #else ! 1147: WDVGA_TEXT_0, // pointer to the command strings ! 1148: #endif ! 1149: }, ! 1150: ! 1151: // ! 1152: // Mode index 1. ! 1153: // Color text mode 3, 640x350, 8x14 char cell (EGA). ! 1154: // ! 1155: ! 1156: { ! 1157: VIDEO_MODE_COLOR, 4, 1, 80, 25, ! 1158: 640, 350, 160, 0x10000, 0, 0, NoBanking, MemMap_CGA, ! 1159: FALSE, ! 1160: #ifdef INT10_MODE_SET ! 1161: 0xFF, 0x00, ! 1162: 0x3, ! 1163: NULL, ! 1164: #else ! 1165: WDVGA_TEXT_1, // pointer to the command strings ! 1166: #endif ! 1167: }, ! 1168: ! 1169: // ! 1170: // ! 1171: // Mode index 2 ! 1172: // Standard VGA Color graphics mode 0x12, 640x480 16 colors. ! 1173: // ! 1174: ! 1175: { ! 1176: VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 80, 30, ! 1177: 640, 480, 80, 0x10000, 0, 0, NoBanking, MemMap_VGA, ! 1178: FALSE, ! 1179: #ifdef INT10_MODE_SET ! 1180: 0xFF, 0x00, ! 1181: 0x12, ! 1182: NULL, ! 1183: #else ! 1184: WDVGA_640x480, // pointer to the command strings ! 1185: #endif ! 1186: }, ! 1187: ! 1188: // ! 1189: // Beginning of SVGA modes ! 1190: // ! 1191: ! 1192: // ! 1193: // Mode index 3 ! 1194: // 800x600 16 colors. 60hz ! 1195: // ! 1196: ! 1197: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 100, 37, ! 1198: 800, 600, 100, 0x10000, 60, 0, NoBanking, MemMap_VGA, ! 1199: FALSE, ! 1200: #ifdef INT10_MODE_SET ! 1201: 0x3F, 0x40, ! 1202: 0x58, ! 1203: NULL, ! 1204: #else ! 1205: WDVGA_800x600_60hz, // pointer to the command strings ! 1206: #endif ! 1207: }, ! 1208: ! 1209: // ! 1210: // Mode index 4 ! 1211: // 800x600 16 colors. 72hz ! 1212: // ! 1213: ! 1214: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 100, 37, ! 1215: 800, 600, 100, 0x10000, 72, 0, NoBanking, MemMap_VGA, ! 1216: FALSE, ! 1217: #ifdef INT10_MODE_SET ! 1218: 0x3F, 0x80, ! 1219: 0x58, ! 1220: NULL, ! 1221: #else ! 1222: WDVGA_800x600_72hz, // pointer to the command strings ! 1223: #endif ! 1224: }, ! 1225: ! 1226: // ! 1227: // Mode index 5 ! 1228: // 800x600 16 colors. 56hz ! 1229: // ! 1230: ! 1231: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 100, 37, ! 1232: 800, 600, 100, 0x10000, 56, 0, NoBanking, MemMap_VGA, ! 1233: FALSE, ! 1234: #ifdef INT10_MODE_SET ! 1235: 0x3F, 0x00, ! 1236: 0x58, ! 1237: NULL, ! 1238: #else ! 1239: WDVGA_800x600_56hz, // pointer to the command strings ! 1240: #endif ! 1241: }, ! 1242: ! 1243: // ! 1244: // Mode index 6 ! 1245: // 1024x768 non-interlaced 16 colors. 60hz ! 1246: // Assumes 512K. ! 1247: // ! 1248: ! 1249: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 128, 48, ! 1250: 1024, 768, 128, 0x20000, 60, 0, NormalBanking, MemMap_VGA, ! 1251: FALSE, ! 1252: #ifdef INT10_MODE_SET ! 1253: 0xCF, 0x10, ! 1254: 0x5d, ! 1255: WDVGA_RW_BANK, ! 1256: #else ! 1257: WDVGA_1024x768_60hz, // pointer to the command strings ! 1258: #endif ! 1259: }, ! 1260: ! 1261: // ! 1262: // Mode index 7 ! 1263: // 1024x768 non-interlaced 16 colors. 70hz ! 1264: // Assumes 512K. ! 1265: // ! 1266: ! 1267: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 128, 48, ! 1268: 1024, 768, 128, 0x20000, 70, 0, NormalBanking, MemMap_VGA, ! 1269: FALSE, ! 1270: #ifdef INT10_MODE_SET ! 1271: 0xCF, 0x20, ! 1272: 0x5d, ! 1273: WDVGA_RW_BANK, ! 1274: #else ! 1275: WDVGA_1024x768_70hz, // pointer to the command strings ! 1276: #endif ! 1277: }, ! 1278: ! 1279: // ! 1280: // Mode index 8 ! 1281: // 1024x768 non-interlaced 16 colors. 72hz ! 1282: // Assumes 512K. ! 1283: // ! 1284: ! 1285: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 128, 48, ! 1286: 1024, 768, 128, 0x20000, 72, 0, NormalBanking, MemMap_VGA, ! 1287: FALSE, ! 1288: #ifdef INT10_MODE_SET ! 1289: 0xCF, 0x30, ! 1290: 0x5d, ! 1291: WDVGA_RW_BANK, ! 1292: #else ! 1293: WDVGA_1024x768_72hz, // pointer to the command strings ! 1294: #endif ! 1295: }, ! 1296: ! 1297: // ! 1298: // Mode index 9 ! 1299: // 1024x768 interlaced 16 colors. 44hz ! 1300: // Assumes 512K. ! 1301: // ! 1302: ! 1303: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 128, 48, ! 1304: 1024, 768, 128, 0x20000, 44, 1, NormalBanking, MemMap_VGA, ! 1305: FALSE, ! 1306: #ifdef INT10_MODE_SET ! 1307: 0xCF, 0x00, ! 1308: 0x5d, ! 1309: WDVGA_RW_BANK, ! 1310: #else ! 1311: WDVGA_1024x768_int, // pointer to the command strings ! 1312: #endif ! 1313: }, ! 1314: ! 1315: #ifdef INT10_MODE_SET ! 1316: // ! 1317: // Mode index 10 ! 1318: // 640x480x256 ! 1319: // ! 1320: ! 1321: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1322: 640, 480, 1024, 0x80000, 0, 0, NormalBanking, MemMap_VGA, ! 1323: FALSE, ! 1324: 0xFF, 0x00, ! 1325: 0x5f, ! 1326: WDVGA_RW_BANK_1K_WIDE, ! 1327: }, ! 1328: ! 1329: // BUGBUG 800x600 modes need 1Meg until we support broken rasters ! 1330: ! 1331: // ! 1332: // Mode index 11 ! 1333: // 800x600x256 56Hz ! 1334: // ! 1335: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1336: 800, 600, 1024, 0x100000, 56, 0, NormalBanking, MemMap_VGA, ! 1337: FALSE, ! 1338: 0x3F, 0x00, ! 1339: 0x5c, ! 1340: WDVGA_RW_BANK_1K_WIDE, ! 1341: }, ! 1342: ! 1343: // ! 1344: // Mode index 12 ! 1345: // 800x600x256 60Hz ! 1346: // ! 1347: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1348: 800, 600, 1024, 0x100000, 60, 0, NormalBanking, MemMap_VGA, ! 1349: FALSE, ! 1350: 0x3F, 0x40, ! 1351: 0x5c, ! 1352: WDVGA_RW_BANK_1K_WIDE, ! 1353: }, ! 1354: ! 1355: // ! 1356: // Mode index 13 ! 1357: // 800x600x256 72Hz ! 1358: // ! 1359: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1360: 800, 600, 1024, 0x100000, 72, 0, NormalBanking, MemMap_VGA, ! 1361: FALSE, ! 1362: 0x3F, 0x80, ! 1363: 0x5c, ! 1364: WDVGA_RW_BANK_1K_WIDE, ! 1365: }, ! 1366: ! 1367: // ! 1368: // Mode index 14 ! 1369: // 1024x768x256 60Hz ! 1370: // ! 1371: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1372: 1024, 768, 1024, 0x100000, 60, 0, NormalBanking, MemMap_VGA, ! 1373: FALSE, ! 1374: 0xCF, 0x10, ! 1375: 0x60, ! 1376: WDVGA_RW_BANK, ! 1377: }, ! 1378: ! 1379: // ! 1380: // Mode index 15 ! 1381: // 1024x768x256 70hz ! 1382: // ! 1383: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1384: 1024, 768, 1024, 0x100000, 70, 0, NormalBanking, MemMap_VGA, ! 1385: FALSE, ! 1386: 0xCF, 0x20, ! 1387: 0x60, ! 1388: WDVGA_RW_BANK, ! 1389: }, ! 1390: ! 1391: // ! 1392: // ! 1393: // Mode index 16 ! 1394: // 1024x768x256 72hz ! 1395: // ! 1396: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1397: 1024, 768, 1024, 0x100000, 72, 0, NormalBanking, MemMap_VGA, ! 1398: FALSE, ! 1399: 0xCF, 0x30, ! 1400: 0x60, ! 1401: WDVGA_RW_BANK, ! 1402: }, ! 1403: ! 1404: // Mode index 17 ! 1405: // 1024x768x256 44Hz (Interlaced) ! 1406: // ! 1407: { VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30, ! 1408: 1024, 768, 1024, 0x100000, 44, 1, NormalBanking, MemMap_VGA, ! 1409: FALSE, ! 1410: 0xCF, 0x00, ! 1411: 0x60, ! 1412: WDVGA_RW_BANK, ! 1413: }, ! 1414: #endif//INT10_MODE_SET ! 1415: }; ! 1416: ! 1417: ! 1418: ULONG NumVideoModes = sizeof(ModesVGA) / sizeof(VIDEOMODE); ! 1419: ! 1420: // ! 1421: // ! 1422: // Data used to set the Graphics and Sequence Controllers to put the ! 1423: // VGA into a planar state at A0000 for 64K, with plane 2 enabled for ! 1424: // reads and writes, so that a font can be loaded, and to disable that mode. ! 1425: // ! 1426: ! 1427: // Settings to enable planar mode with plane 2 enabled. ! 1428: // ! 1429: ! 1430: USHORT EnableA000Data[] = { ! 1431: OWM, ! 1432: SEQ_ADDRESS_PORT, ! 1433: 1, ! 1434: 0x0100, ! 1435: ! 1436: OWM, ! 1437: GRAPH_ADDRESS_PORT, ! 1438: 3, ! 1439: 0x0204, // Read Map = plane 2 ! 1440: 0x0005, // Graphics Mode = read mode 0, write mode 0 ! 1441: 0x0406, // Graphics Miscellaneous register = A0000 for 64K, not odd/even, ! 1442: // graphics mode ! 1443: OWM, ! 1444: SEQ_ADDRESS_PORT, ! 1445: 3, ! 1446: 0x0402, // Map Mask = write to plane 2 only ! 1447: 0x0404, // Memory Mode = not odd/even, not full memory, graphics mode ! 1448: 0x0300, // end sync reset ! 1449: EOD ! 1450: }; ! 1451: ! 1452: // ! 1453: // Settings to disable the font-loading planar mode. ! 1454: // ! 1455: ! 1456: USHORT DisableA000Color[] = { ! 1457: OWM, ! 1458: SEQ_ADDRESS_PORT, ! 1459: 1, ! 1460: 0x0100, ! 1461: ! 1462: OWM, ! 1463: GRAPH_ADDRESS_PORT, ! 1464: 3, ! 1465: 0x0004, 0x1005, 0x0E06, ! 1466: ! 1467: OWM, ! 1468: SEQ_ADDRESS_PORT, ! 1469: 3, ! 1470: 0x0302, 0x0204, 0x0300, // end sync reset ! 1471: EOD ! 1472: ! 1473: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.