|
|
1.1 ! root 1: /*++ ! 2: ! 3: Copyright (c) 1992 Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: s3data.h ! 8: ! 9: Abstract: ! 10: ! 11: This module contains all the global data used by the S3 driver. ! 12: ! 13: Environment: ! 14: ! 15: Kernel mode ! 16: ! 17: Revision History: ! 18: ! 19: ! 20: --*/ ! 21: ! 22: ! 23: #include "cmdcnst.h" ! 24: ! 25: ! 26: /***************************************************************************** ! 27: * Command table to get ready for VGA mode ! 28: * this is only used for the 911/924 chips ! 29: ****************************************************************************/ ! 30: USHORT s3_set_vga_mode[] = { ! 31: ! 32: SELECTACCESSRANGE + SYSTEMCONTROL, ! 33: ! 34: OW, // Unlock the S3 regs ! 35: 0x3d4, 0x4838, ! 36: ! 37: OW, // Unlock the SC regs ! 38: 0x3d4, 0xa539, ! 39: ! 40: OB, // Enable the S3 graphics engine ! 41: 0x3d4, 0x40, ! 42: ! 43: METAOUT+MASKOUT, ! 44: 0x3d5, 0xfe, 0x01, ! 45: ! 46: SELECTACCESSRANGE + ADVANCEDFUNCTIONCONTROL, ! 47: ! 48: OB, // reset to normal VGA operation ! 49: 0x4ae8, 0x02, ! 50: ! 51: SELECTACCESSRANGE + SYSTEMCONTROL, ! 52: ! 53: OB, // Disable the S3 graphics engine ! 54: 0x3d4, 0x40, ! 55: ! 56: METAOUT+MASKOUT, ! 57: 0x3d5, 0xfe, 0x00, ! 58: ! 59: OB, // Memory Control ! 60: 0x3d4, 0x31, ! 61: ! 62: METAOUT+MASKOUT, ! 63: 0x3d5, 0x75, 0x85, ! 64: ! 65: OB, // Backward Compat 1 ! 66: 0x3d4, 0x32, ! 67: ! 68: METAOUT+MASKOUT, ! 69: 0x3d5, 0x40, 0x00, ! 70: ! 71: OW, // Backward Compat 2 ! 72: 0x3d4, 0x0033, ! 73: ! 74: OW, // Backward Compat 3 ! 75: 0x3d4, 0x0034, ! 76: ! 77: OW, // CRTC Lock ! 78: 0x3d4, 0x0035, ! 79: ! 80: OB, // S3 Misc 1 ! 81: 0x3d4, 0x3a, ! 82: ! 83: METAOUT+MASKOUT, ! 84: 0x3d5, 0x88, 0x05, ! 85: ! 86: OW, // Data Transfer Exec Pos ! 87: 0x3d4, 0x5a3b, ! 88: ! 89: OW, // Interlace Retrace start ! 90: 0x3d4, 0x103c, ! 91: ! 92: OW, // Extended Mode ! 93: 0x3d4, 0x0043, ! 94: ! 95: OW, // HW graphics Cursor Mode ! 96: 0x3d4, 0x0045, ! 97: ! 98: OW, // HW graphics Cursor Orig x ! 99: 0x3d4, 0x0046, ! 100: ! 101: OW, // HW graphics Cursor Orig x ! 102: 0x3d4, 0xff47, ! 103: ! 104: OW, // HW graphics Cursor Orig y ! 105: 0x3d4, 0xfc48, ! 106: ! 107: OW, // HW graphics Cursor Orig y ! 108: 0x3d4, 0xff49, ! 109: ! 110: OW, // HW graphics Cursor Orig y ! 111: 0x3d4, 0xff4a, ! 112: ! 113: OW, // HW graphics Cursor Orig y ! 114: 0x3d4, 0xff4b, ! 115: ! 116: OW, // HW graphics Cursor Orig y ! 117: 0x3d4, 0xff4c, ! 118: ! 119: OW, // HW graphics Cursor Orig y ! 120: 0x3d4, 0xff4d, ! 121: ! 122: OW, // Dsp Start x pixel pos ! 123: 0x3d4, 0xff4e, ! 124: ! 125: OW, // Dsp Start y pixel pos ! 126: 0x3d4, 0xdf4d, ! 127: ! 128: OB, // MODE-CNTL ! 129: 0x3d4, 0x42, ! 130: ! 131: METAOUT+MASKOUT, ! 132: 0x3d5, 0xdf, 0x00, ! 133: ! 134: EOD ! 135: ! 136: }; ! 137: ! 138: // ! 139: // Mode tables are only necessary for non-x86. ! 140: // This allows us to save lots of space in memory ! 141: ! 142: #ifndef i386 ! 143: ! 144: /***************************************************************************** ! 145: * S3 - 911 Enhanced mode init. ! 146: ****************************************************************************/ ! 147: USHORT S3_911_Enhanced_Mode[] = { ! 148: SELECTACCESSRANGE + VARIOUSVGA, ! 149: ! 150: OB, // Make the screen dark ! 151: 0x3c6, 0x00, ! 152: ! 153: OW, // Turn off the screen ! 154: 0x3c4, 0x2101, ! 155: ! 156: METAOUT+VBLANK, // Wait for the 911 to settle down. ! 157: METAOUT+VBLANK, ! 158: ! 159: OW, // Async Reset ! 160: 0x3c4, 0x0100, ! 161: ! 162: OWM, // Sequencer Registers ! 163: 0x3c4, ! 164: 4, ! 165: 0x2101, 0x0F02, 0x0003, 0x0e04, ! 166: ! 167: METAOUT+SETCRTC, // Program the CRTC regs ! 168: ! 169: SELECTACCESSRANGE + SYSTEMCONTROL, ! 170: ! 171: IB, // Prepare to prgram the ACT ! 172: 0x3da, ! 173: ! 174: SELECTACCESSRANGE + VARIOUSVGA, ! 175: ! 176: METAOUT+ATCOUT, // Program the ATC ! 177: 0x3c0, ! 178: 21, 0, ! 179: 0x00, 0x01, 0x02, 0x03, 0x04, ! 180: 0x05, 0x06, 0x07, 0x08, 0x09, ! 181: 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, ! 182: 0x0f, 0x41, 0x00, 0x0f, 0x00, ! 183: 0x00, ! 184: ! 185: OW, // Start the sequencer ! 186: 0x3c4, 0x300, ! 187: ! 188: OWM, // Program the GDC ! 189: 0x3ce, ! 190: 9, ! 191: 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, ! 192: 0x0005, 0x0506, 0x0f07, 0xff08, ! 193: ! 194: SELECTACCESSRANGE + SYSTEMCONTROL, ! 195: ! 196: IB, // Set ATC FF to index ! 197: 0x3da, ! 198: ! 199: SELECTACCESSRANGE + VARIOUSVGA, ! 200: ! 201: OB, // Enable the palette ! 202: 0x3c0, 0x20, ! 203: ! 204: SELECTACCESSRANGE + SYSTEMCONTROL, ! 205: ! 206: OW, // Unlock S3 SC regs ! 207: 0x3d4, 0xa039, ! 208: ! 209: OB, // Enable 8514/a reg access ! 210: 0x3d4, 0x40, ! 211: ! 212: METAOUT+MASKOUT, ! 213: 0x3d5, 0xfe, 0x01, ! 214: ! 215: OB, // Turn off H/W Graphics Cursor ! 216: 0x3d4, 0x45, ! 217: ! 218: METAOUT+MASKOUT, ! 219: 0x3d5, 0xfe, 0x0, ! 220: ! 221: OW, // Set the graphic cursor fg color ! 222: 0x3d4, 0xff0e, ! 223: ! 224: OW, // Set the graphic cursor bg color ! 225: 0x3d4, 0x000f, ! 226: ! 227: OW, // Unlock the S3 specific regs ! 228: 0x3d4, 0x4838, ! 229: ! 230: OB, // Set the Misc 1 reg ! 231: 0x3d4, 0x3a, ! 232: ! 233: METAOUT+MASKOUT, ! 234: 0x3d5, 0xe2, 0x15, ! 235: ! 236: OB, // Disable 2K X 1K X 4 plane ! 237: 0x3d4, 0x31, ! 238: ! 239: METAOUT+MASKOUT, ! 240: 0x3d5, 0xe4, 0x08, ! 241: ! 242: OB, // Disable multiple pages ! 243: 0x3d4, 0x32, ! 244: ! 245: METAOUT+MASKOUT, ! 246: 0x3d5, 0xbf, 0x0, ! 247: ! 248: OW, // Lock S3 specific regs ! 249: 0x3d4, 0x0038, ! 250: ! 251: SELECTACCESSRANGE + ADVANCEDFUNCTIONCONTROL, ! 252: ! 253: OW, // Set either 800X600 or 1024X768 ! 254: 0x4ae8, 0x07, // hi-res mode. ! 255: ! 256: SELECTACCESSRANGE + VARIOUSVGA, ! 257: ! 258: OB, // Set Misc out reg for external clock ! 259: 0x3c2, 0x2f, ! 260: ! 261: SELECTACCESSRANGE + SYSTEMCONTROL, ! 262: ! 263: OW, // Unlock the SC regs ! 264: 0x3d4, 0xa039, ! 265: ! 266: METAOUT+SETCLK, // Set the clock for 65 Mhz ! 267: ! 268: METAOUT+VBLANK, // Wait for the clock to settle down ! 269: METAOUT+VBLANK, // S3 product alert Synchronization & ! 270: METAOUT+VBLANK, // Clock Skew. ! 271: METAOUT+VBLANK, ! 272: METAOUT+VBLANK, ! 273: METAOUT+VBLANK, ! 274: ! 275: OW, // Lock the SC regs ! 276: 0x3d4, 0x0039, ! 277: ! 278: SELECTACCESSRANGE + VARIOUSVGA, ! 279: ! 280: OB, // Turn on the screen - in the sequencer ! 281: 0x3c4, 0x01, ! 282: ! 283: METAOUT+MASKOUT, ! 284: 0x3c5, 0xdf, 0x0, ! 285: ! 286: METAOUT+VBLANK, // Wait the monitor to settle down ! 287: METAOUT+VBLANK, ! 288: ! 289: OW, // Enable all the planes through the DAC ! 290: 0x3c6, 0xff, ! 291: ! 292: EOD ! 293: ! 294: }; ! 295: ! 296: /***************************************************************************** ! 297: * S3 - 801 Enhanced mode init. ! 298: ****************************************************************************/ ! 299: USHORT S3_801_Enhanced_Mode[] = { ! 300: ! 301: SELECTACCESSRANGE + VARIOUSVGA, ! 302: ! 303: OB, // Make the screen dark ! 304: 0x3c6, 0x00, ! 305: ! 306: OW, // Turn off the screen ! 307: 0x3c4, 0x2101, ! 308: ! 309: METAOUT+VBLANK, // Wait for the 911 to settle down. ! 310: METAOUT+VBLANK, ! 311: ! 312: OW, // Async Reset ! 313: 0x3c4, 0x0100, ! 314: ! 315: OWM, // Sequencer Registers ! 316: 0x3c4, ! 317: 4, ! 318: 0x2101, 0x0F02, 0x0003, 0x0e04, ! 319: ! 320: METAOUT+SETCRTC, // Program the CRTC regs ! 321: ! 322: SELECTACCESSRANGE + SYSTEMCONTROL, ! 323: ! 324: OWM, ! 325: 0x3d4, ! 326: 17, ! 327: 0xA039, 0x0e42, 0x403c, 0x8931, 0x153a, ! 328: 0x0050, 0x4854, 0x2f60, 0x8161, 0x0062, ! 329: 0x0058, 0x0033, 0x0043, 0x8013, 0x0051, ! 330: 0x005c, 0x1034, ! 331: ! 332: OW, ! 333: 0x3d4, 0x0a5a, // Set the low byte of the LAW ! 334: ! 335: OW, ! 336: 0x3d4, 0x0059, // Set the high byte of the LAW ! 337: ! 338: OW, // Lock S3 specific regs ! 339: 0x3d4, 0x0038, ! 340: ! 341: OW, // Lock more S3 specific regs ! 342: 0x3d4, 0x0039, ! 343: ! 344: IB, // Prepare to prgram the ACT ! 345: 0x3da, ! 346: ! 347: SELECTACCESSRANGE + VARIOUSVGA, ! 348: ! 349: METAOUT+ATCOUT, // Program the ATC ! 350: 0x3c0, ! 351: 21, 0, ! 352: 0x00, 0x01, 0x02, 0x03, 0x04, ! 353: 0x05, 0x06, 0x07, 0x08, 0x09, ! 354: 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, ! 355: 0x0f, 0x41, 0x00, 0x0f, 0x00, ! 356: 0x00, ! 357: ! 358: OW, // Start the sequencer ! 359: 0x3c4, 0x300, ! 360: ! 361: OWM, // Program the GDC ! 362: 0x3ce, ! 363: 9, ! 364: 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, ! 365: 0x0005, 0x0506, 0x0f07, 0xff08, ! 366: ! 367: SELECTACCESSRANGE + SYSTEMCONTROL, ! 368: ! 369: IB, // Set ATC FF to index ! 370: 0x3da, ! 371: ! 372: SELECTACCESSRANGE + VARIOUSVGA, ! 373: ! 374: OB, // Enable the palette ! 375: 0x3c0, 0x20, ! 376: ! 377: SELECTACCESSRANGE + SYSTEMCONTROL, ! 378: ! 379: OW, // Unlock S3 SC regs ! 380: 0x3d4, 0xa039, ! 381: ! 382: OB, // Enable 8514/a reg access ! 383: 0x3d4, 0x40, ! 384: ! 385: METAOUT+MASKOUT, ! 386: 0x3d5, 0xfe, 0x01, ! 387: ! 388: OB, // Turn off H/W Graphics Cursor ! 389: 0x3d4, 0x45, ! 390: ! 391: METAOUT+MASKOUT, ! 392: 0x3d5, 0xfe, 0x0, ! 393: ! 394: OW, // Set the graphic cursor fg color ! 395: 0x3d4, 0xff0e, ! 396: ! 397: OW, // Set the graphic cursor bg color ! 398: 0x3d4, 0x000f, ! 399: ! 400: OW, // Unlock the S3 specific regs ! 401: 0x3d4, 0x4838, ! 402: ! 403: OB, // Set the Misc 1 reg ! 404: 0x3d4, 0x3a, ! 405: ! 406: METAOUT+MASKOUT, ! 407: 0x3d5, 0xe2, 0x15, ! 408: ! 409: OB, // Disable 2K X 1K X 4 plane ! 410: 0x3d4, 0x31, ! 411: ! 412: METAOUT+MASKOUT, ! 413: 0x3d5, 0xe4, 0x08, ! 414: ! 415: OB, // Disable multiple pages ! 416: 0x3d4, 0x32, ! 417: ! 418: METAOUT+MASKOUT, ! 419: 0x3d5, 0xbf, 0x0, ! 420: ! 421: OW, // Lock S3 specific regs ! 422: 0x3d4, 0x0038, ! 423: ! 424: SELECTACCESSRANGE + ADVANCEDFUNCTIONCONTROL, ! 425: ! 426: OW, // Set either 800X600 or 1024X768 ! 427: 0x4ae8, 0x07, // hi-res mode. ! 428: ! 429: SELECTACCESSRANGE + VARIOUSVGA, ! 430: ! 431: OB, // Set Misc out reg for external clock ! 432: 0x3c2, 0xef, ! 433: ! 434: SELECTACCESSRANGE + SYSTEMCONTROL, ! 435: ! 436: OW, // Unlock the SC regs ! 437: 0x3d4, 0xa039, ! 438: ! 439: METAOUT+SETCLK, // Set the clock for 65 Mhz ! 440: ! 441: METAOUT+VBLANK, // Wait for the clock to settle down ! 442: METAOUT+VBLANK, // S3 product alert Synchronization & ! 443: METAOUT+VBLANK, // Clock Skew. ! 444: METAOUT+VBLANK, ! 445: METAOUT+VBLANK, ! 446: METAOUT+VBLANK, ! 447: ! 448: OW, // Lock the SC regs ! 449: 0x3d4, 0x0039, ! 450: ! 451: SELECTACCESSRANGE + VARIOUSVGA, ! 452: ! 453: OB, // Turn on the screen - in the sequencer ! 454: 0x3c4, 0x01, ! 455: ! 456: METAOUT+MASKOUT, ! 457: 0x3c5, 0xdf, 0x0, ! 458: ! 459: METAOUT+VBLANK, // Wait the monitor to settle down ! 460: METAOUT+VBLANK, ! 461: ! 462: OW, // Enable all the planes through the DAC ! 463: 0x3c6, 0xff, ! 464: ! 465: EOD ! 466: ! 467: }; ! 468: ! 469: /***************************************************************************** ! 470: * S3 - 928 1024 X 768, 800 X 600, & 640 X 480 Enhanced mode init. ! 471: ****************************************************************************/ ! 472: USHORT S3_928_Enhanced_Mode[] = { ! 473: ! 474: SELECTACCESSRANGE + VARIOUSVGA, ! 475: ! 476: OB, // Make the screen dark ! 477: 0x3c6, 0x00, ! 478: ! 479: OW, // Async Reset ! 480: 0x3c4, 0x0100, ! 481: ! 482: OWM, // Sequencer Registers ! 483: 0x3c4, 5, ! 484: 0x0300, 0x0101, 0x0F02, 0x0003, 0x0e04, ! 485: ! 486: METAOUT+INDXOUT, // Program the GDC ! 487: 0x3ce, ! 488: 9, 0, ! 489: 0x00, 0x00, 0x00, 0x00, 0x00, ! 490: 0x00, 0x05, 0x0f, 0xff, ! 491: ! 492: SELECTACCESSRANGE + SYSTEMCONTROL, ! 493: ! 494: OW, // Unlock the S3 specific regs ! 495: 0x3d4, 0x4838, ! 496: ! 497: OW, // Unlock the more S3 specific regs ! 498: 0x3d4, 0xA039, ! 499: ! 500: METAOUT+SETCRTC, // Program the CRTC regs ! 501: ! 502: OW, // Set mode control ! 503: 0X3D4, 0x0242, // dot clock select ! 504: ! 505: OW, // memory configuration reg ! 506: 0X3D4, 0x8D31, ! 507: ! 508: OW, // extended system control reg ! 509: 0X3D4, 0x0050, ! 510: ! 511: OW, // backward compatibility 2 reg ! 512: 0X3D4, 0x2033, ! 513: ! 514: OB, // extended mode reg ! 515: 0x3D4, 0x43, ! 516: ! 517: METAOUT+MASKOUT, ! 518: 0x3D5, 0x10, 0x00, ! 519: ! 520: OW, // extended system control reg 2 ! 521: 0X3D4, 0x4051, ! 522: ! 523: OW, // general output port ! 524: 0X3D4, 0x025c, ! 525: ! 526: // METAOUT+BUSTEST, ! 527: ! 528: OW, ! 529: 0x3d4, 0x0a5a, // Set the low byte of the LAW ! 530: ! 531: OW, ! 532: 0x3d4, 0x0059, // Set the high byte of the LAW ! 533: ! 534: IB, // Prepare to prgram the ACT ! 535: 0x3da, ! 536: ! 537: SELECTACCESSRANGE + VARIOUSVGA, ! 538: ! 539: METAOUT+ATCOUT, // Program the ATC ! 540: 0x3c0, ! 541: 21, 0, ! 542: 0x00, 0x01, 0x02, 0x03, 0x04, ! 543: 0x05, 0x06, 0x07, 0x08, 0x09, ! 544: 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, ! 545: 0x0f, 0x41, 0x00, 0x0f, 0x00, ! 546: 0x00, ! 547: ! 548: SELECTACCESSRANGE + SYSTEMCONTROL, ! 549: ! 550: IB, // Set ATC FF to index ! 551: 0x3da, ! 552: ! 553: SELECTACCESSRANGE + VARIOUSVGA, ! 554: ! 555: OB, // Enable the palette ! 556: 0x3c0, 0x20, ! 557: ! 558: SELECTACCESSRANGE + SYSTEMCONTROL, ! 559: ! 560: OW, // Enable 8514/a reg access ! 561: 0x3d4, 0x0140, ! 562: ! 563: OB, // Turn off H/W Graphics Cursor ! 564: 0x3d4, 0x45, ! 565: ! 566: METAOUT+MASKOUT, ! 567: 0x3d5, 0xfe, 0x0, ! 568: ! 569: OW, // Set the graphic cursor fg color ! 570: 0x3d4, 0xff0e, ! 571: ! 572: OW, // Set the graphic cursor bg color ! 573: 0x3d4, 0x000f, ! 574: ! 575: OB, // Set the Misc 1 reg ! 576: 0x3d4, 0x3a, ! 577: ! 578: METAOUT+MASKOUT, ! 579: 0x3d5, 0x62, 0x15, ! 580: ! 581: OB, // Disable 2K X 1K X 4 plane ! 582: 0x3d4, 0x31, ! 583: ! 584: METAOUT+MASKOUT, ! 585: 0x3d5, 0xe4, 0x08, ! 586: ! 587: OB, // Disable multiple pages ! 588: 0x3d4, 0x32, ! 589: ! 590: METAOUT+MASKOUT, ! 591: 0x3d5, 0xbf, 0x0, ! 592: ! 593: SELECTACCESSRANGE + ADVANCEDFUNCTIONCONTROL, ! 594: ! 595: OW, // Set either 800X600 or 1024X768 ! 596: 0x4ae8, 0x07, // hi-res mode. ! 597: ! 598: SELECTACCESSRANGE + VARIOUSVGA, ! 599: ! 600: OB, // Set Misc out reg for external clock ! 601: 0x3c2, 0xef, ! 602: ! 603: METAOUT+SETCLK, // Set the clock ! 604: ! 605: METAOUT+DELAY, // Wait for the clock to settle down ! 606: 0x400, // S3 product alert Synchronization & ! 607: // Clock Skew. ! 608: METAOUT+VBLANK, ! 609: METAOUT+VBLANK, ! 610: ! 611: METAOUT+MASKOUT, ! 612: 0x3c5, 0xdf, 0x0, ! 613: ! 614: METAOUT+DELAY, // Wait for about 1 millisecond ! 615: 0x400, // for the monitor to settle down ! 616: ! 617: OW, // Enable all the planes through the DAC ! 618: 0x3c6, 0xff, ! 619: ! 620: SELECTACCESSRANGE + SYSTEMCONTROL, ! 621: ! 622: OW, // Lock S3 specific regs ! 623: 0x3d4, 0x0038, ! 624: ! 625: OW, // Lock more S3 specific regs ! 626: 0x3d4, 0x0039, ! 627: ! 628: EOD ! 629: ! 630: }; ! 631: ! 632: ! 633: /***************************************************************************** ! 634: * S3 - 928 1280 X 1024 Enhanced mode init. ! 635: ****************************************************************************/ ! 636: USHORT S3_928_1280_Enhanced_Mode[] = { ! 637: ! 638: SELECTACCESSRANGE + VARIOUSVGA, ! 639: ! 640: OB, // Make the screen dark ! 641: 0x3c6, 0x00, ! 642: ! 643: OW, // Async Reset ! 644: 0x3c4, 0x0100, ! 645: ! 646: OWM, // Sequencer Registers ! 647: 0x3c4, ! 648: 5, ! 649: 0x0300, 0x0101, 0x0F02, 0x0003, 0x0e04, ! 650: ! 651: METAOUT+INDXOUT, // Program the GDC ! 652: 0x3ce, ! 653: 9, 0, ! 654: 0x00, 0x00, 0x00, 0x00, 0x00, ! 655: 0x00, 0x05, 0x0f, 0xff, ! 656: ! 657: SELECTACCESSRANGE + SYSTEMCONTROL, ! 658: ! 659: OW, // Unlock the S3 specific regs ! 660: 0x3d4, 0x4838, ! 661: ! 662: OW, // Unlock the more S3 specific regs ! 663: 0x3d4, 0xA039, ! 664: ! 665: METAOUT+SETCRTC, // Program the CRTC regs ! 666: ! 667: // Set the Bt 485 DAC. ! 668: ! 669: OW, // hardware graphics cursor mode reg ! 670: 0X3D4, 0x2045, ! 671: ! 672: OW, // Enable access to Bt 485 CmdReg3 ! 673: 0x3D4, 0x2955, // disable the DAC ! 674: ! 675: SELECTACCESSRANGE + VARIOUSVGA, ! 676: ! 677: OB, ! 678: 0x3C6, 0x80, // Bt 485 - CR0 ! 679: ! 680: METAOUT+DELAY, ! 681: 0x400, ! 682: ! 683: SELECTACCESSRANGE + SYSTEMCONTROL, ! 684: ! 685: OW, // S3 extended video DAC control reg ! 686: 0x3D4, 0x2A55, ! 687: ! 688: SELECTACCESSRANGE + VARIOUSVGA, ! 689: ! 690: OB, ! 691: 0x3C8, 0x40, // Bt 485 - CR1 ! 692: ! 693: METAOUT+DELAY, ! 694: 0x400, ! 695: ! 696: OB, ! 697: 0x3C9, 0x30, // Bt 485 - CR2 ! 698: ! 699: METAOUT+DELAY, ! 700: 0x400, ! 701: ! 702: SELECTACCESSRANGE + SYSTEMCONTROL, ! 703: ! 704: OW, // S3 extened video DAC control reg ! 705: 0x3D4, 0x2855, ! 706: ! 707: SELECTACCESSRANGE + VARIOUSVGA, ! 708: ! 709: OB, // Bt 485 ! 710: 0x3c8, 0x01, ! 711: ! 712: METAOUT+DELAY, ! 713: 0x400, ! 714: ! 715: SELECTACCESSRANGE + SYSTEMCONTROL, ! 716: ! 717: OW, // S3 extened video DAC control reg ! 718: 0x3D4, 0x2A55, ! 719: ! 720: SELECTACCESSRANGE + VARIOUSVGA, ! 721: ! 722: OB, // Bt 485 - CR3 ! 723: 0x3c6, 0x08, ! 724: ! 725: METAOUT+DELAY, ! 726: 0x400, ! 727: ! 728: SELECTACCESSRANGE + SYSTEMCONTROL, ! 729: ! 730: OW, // Reset the palette index ! 731: 0x3d4, 0x2855, ! 732: ! 733: OW, // Set mode control ! 734: 0X3D4, 0x0242, // dot clock select ! 735: ! 736: METAOUT+DELAY, ! 737: 0x400, ! 738: ! 739: OW, // memory configuration ! 740: 0X3D4, 0x8f31, ! 741: ! 742: OW, ! 743: 0X3D4, 0x153a, ! 744: ! 745: OW, // extended system control reg ! 746: 0X3D4, 0x0050, ! 747: ! 748: OW, // backward compatibility reg ! 749: 0X3D4, 0x2033, ! 750: ! 751: OB, // extended mode reg ! 752: 0x3D4, 0x43, ! 753: ! 754: METAOUT+MASKOUT, ! 755: 0x3D5, 0x10, 0x00, ! 756: ! 757: OW, // extended system control reg 2 ! 758: 0X3D4, 0x5051, ! 759: ! 760: OW, ! 761: 0X3D4, 0x025c, // flash bits, 20 packed mode. ! 762: ! 763: // METAOUT+BUSTEST, ! 764: ! 765: OW, ! 766: 0x3d4, 0x0a5a, // Set the low byte of the LAW ! 767: ! 768: OW, ! 769: 0x3d4, 0x0059, // Set the high byte of the LAW ! 770: ! 771: IB, // Prepare to prgram the ATC ! 772: 0x3da, ! 773: ! 774: SELECTACCESSRANGE + VARIOUSVGA, ! 775: ! 776: METAOUT+ATCOUT, // Program the ATC ! 777: 0x3c0, ! 778: 21, 0, ! 779: 0x00, 0x01, 0x02, 0x03, 0x04, ! 780: 0x05, 0x06, 0x07, 0x08, 0x09, ! 781: 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, ! 782: 0x0f, 0x41, 0x00, 0x0f, 0x00, ! 783: 0x00, ! 784: ! 785: SELECTACCESSRANGE + SYSTEMCONTROL, ! 786: ! 787: IB, // Set ATC FF to index ! 788: 0x3da, ! 789: ! 790: SELECTACCESSRANGE + VARIOUSVGA, ! 791: ! 792: OB, // Enable the palette ! 793: 0x3c0, 0x20, ! 794: ! 795: SELECTACCESSRANGE + SYSTEMCONTROL, ! 796: ! 797: OW, // Enable 8514/a reg access ! 798: 0x3d4, 0x0140, ! 799: ! 800: SELECTACCESSRANGE + ADVANCEDFUNCTIONCONTROL, ! 801: ! 802: OW, // Galen said set to 0 ! 803: 0x4ae8, 0x03, // ! 804: ! 805: SELECTACCESSRANGE + VARIOUSVGA, ! 806: ! 807: OB, // Set Misc out reg for external clock ! 808: 0x3c2, 0xef, ! 809: ! 810: METAOUT+SETCLK, // Set the clock ! 811: ! 812: METAOUT+DELAY, // Wait for the clock to settle down ! 813: 0x400, // S3 product alert Synchronization & ! 814: // Clock Skew. ! 815: METAOUT+VBLANK, ! 816: METAOUT+VBLANK, ! 817: ! 818: METAOUT+MASKOUT, ! 819: 0x3c5, 0xdf, 0x0, ! 820: ! 821: METAOUT+DELAY, // Wait for about 1 millisecond ! 822: 0x400, // for the monitor to settle down ! 823: ! 824: OW, // Enable all the planes through the DAC ! 825: 0x3c6, 0xff, ! 826: ! 827: SELECTACCESSRANGE + SYSTEMCONTROL, ! 828: ! 829: OW, // Lock S3 specific regs ! 830: 0x3d4, 0x0038, ! 831: ! 832: OW, // Lock more S3 specific regs ! 833: 0x3d4, 0x0039, ! 834: ! 835: EOD ! 836: ! 837: }; ! 838: ! 839: /****************************************************************************** ! 840: * 911/924 CRTC Values ! 841: *****************************************************************************/ ! 842: ! 843: USHORT crtc911_640x480x60Hz[] = { ! 844: ! 845: SELECTACCESSRANGE + SYSTEMCONTROL, ! 846: ! 847: OW, // Unlock the S3 specific regs ! 848: 0x3d4, 0x4838, ! 849: ! 850: OW, // Data Xfer Execution Position reg ! 851: 0x3d4, 0x5a3b, ! 852: ! 853: OW, // S3R4 - Backwards Compatibility 3 ! 854: 0x3d4, 0x1034, ! 855: ! 856: OW, // Lock S3 specific regs ! 857: 0x3d4, 0x0038, ! 858: ! 859: OW, // Unprotect CRTC regs ! 860: 0x3d4, 0x0011, ! 861: ! 862: METAOUT+INDXOUT, // Program the CRTC regs ! 863: 0x3d4, ! 864: 25, 0, ! 865: 0x5f, 0x4f, 0x50, 0x82, 0x54, ! 866: 0x80, 0x0b, 0x3e, 0x00, 0x40, ! 867: 0x00, 0x00, 0x00, 0x00, 0x00, ! 868: 0x00, 0xea, 0x8c, 0xdf, 0x80, ! 869: 0x60, 0xe7, 0x04, 0xab, 0xff, ! 870: ! 871: EOD ! 872: }; ! 873: ! 874: USHORT crtc911_800x600x60Hz[] = { ! 875: ! 876: SELECTACCESSRANGE + SYSTEMCONTROL, ! 877: ! 878: OW, // Unlock the S3 specific regs ! 879: 0x3d4, 0x4838, ! 880: ! 881: OW, // Data Xfer Execution Position reg ! 882: 0x3d4, 0x7a3b, ! 883: ! 884: OW, // S3R4 - Backwards Compatibility 3 ! 885: 0x3d4, 0x1034, ! 886: ! 887: OW, // Lock S3 specific regs ! 888: 0x3d4, 0x0038, ! 889: ! 890: OW, // Unprotect CRTC regs ! 891: 0x3d4, 0x0011, ! 892: ! 893: METAOUT+INDXOUT, // Program the CRTC regs ! 894: 0x3d4, ! 895: 25, 0, ! 896: 0x7f, 0x63, 0x64, 0x82, 0x6a, ! 897: 0x1a, 0x74, 0xf0, 0x00, 0x60, ! 898: 0x00, 0x00, 0x00, 0x00, 0x00, ! 899: 0x00, 0x58, 0x8c, 0x57, 0x80, ! 900: 0x00, 0x57, 0x73, 0xe3, 0xff, ! 901: ! 902: ! 903: EOD ! 904: }; ! 905: ! 906: USHORT crtc911_1024x768x60Hz[] = { ! 907: ! 908: SELECTACCESSRANGE + SYSTEMCONTROL, ! 909: ! 910: OW, // Unlock the S3 specific regs ! 911: 0x3d4, 0x4838, ! 912: ! 913: OW, // Data Xfer Execution Position reg ! 914: 0x3d4, 0x9f3b, ! 915: ! 916: OW, // S3R4 - Backwards Compatibility 3 ! 917: 0x3d4, 0x1034, ! 918: ! 919: OW, // Lock S3 specific regs ! 920: 0x3d4, 0x0038, ! 921: ! 922: OW, // Unprotect CRTC regs ! 923: 0x3d4, 0x0011, ! 924: ! 925: METAOUT+INDXOUT, // Program the CRTC ! 926: 0x3d4, ! 927: 25, 0, ! 928: 0xa4, 0x7f, 0x80, 0x87, 0x84, ! 929: 0x95, 0x25, 0xf5, 0x00, 0x60, ! 930: 0x00, 0x00, 0x00, 0x00, 0x00, ! 931: 0x00, 0x02, 0x87, 0xff, 0x80, ! 932: 0x60, 0xff, 0x21, 0xab, 0xff, ! 933: ! 934: EOD ! 935: }; ! 936: ! 937: ! 938: ! 939: USHORT crtc911_640x480x70Hz[] = { ! 940: ! 941: SELECTACCESSRANGE + SYSTEMCONTROL, ! 942: ! 943: OW, // Unlock the S3 specific regs ! 944: 0x3d4, 0x4838, ! 945: ! 946: OW, // Data Xfer Execution Position reg ! 947: 0x3d4, 0x5e3b, ! 948: ! 949: OW, // S3R4 - Backwards Compatibility 3 ! 950: 0x3d4, 0x1034, ! 951: ! 952: OW, // Lock S3 specific regs ! 953: 0x3d4, 0x0038, ! 954: ! 955: OW, // Unprotect CRTC regs ! 956: 0x3d4, 0x0011, ! 957: ! 958: METAOUT+INDXOUT, // Program the CRTC regs ! 959: 0x3d4, ! 960: 25, 0, ! 961: 0x63, 0x4f, 0x50, 0x86, 0x53, ! 962: 0x97, 0x07, 0x3e, 0x00, 0x40, ! 963: 0x00, 0x00, 0x00, 0x00, 0x00, ! 964: 0x00, 0xe8, 0x8b, 0xdf, 0x80, ! 965: 0x60, 0xdf, 0x07, 0xab, 0xff, ! 966: ! 967: ! 968: EOD ! 969: }; ! 970: ! 971: USHORT crtc911_800x600x70Hz[] = { ! 972: ! 973: SELECTACCESSRANGE + SYSTEMCONTROL, ! 974: ! 975: OW, // Unlock the S3 specific regs ! 976: 0x3d4, 0x4838, ! 977: ! 978: OW, // Data Xfer Execution Position reg ! 979: 0x3d4, 0x783b, ! 980: ! 981: OW, // S3R4 - Backwards Compatibility 3 ! 982: 0x3d4, 0x1034, ! 983: ! 984: OW, // Lock S3 specific regs ! 985: 0x3d4, 0x0038, ! 986: ! 987: OW, // Unprotect CRTC regs ! 988: 0x3d4, 0x0011, ! 989: ! 990: METAOUT+INDXOUT, // Program the CRTC regs ! 991: 0x3d4, ! 992: 25, 0, ! 993: 0x7d, 0x63, 0x64, 0x80, 0x69, ! 994: 0x1a, 0x98, 0xf0, 0x00, 0x60, ! 995: 0x00, 0x00, 0x00, 0x00, 0x00, ! 996: 0x00, 0x7c, 0xa2, 0x57, 0x80, ! 997: 0x00, 0x57, 0x98, 0xe3, 0xff, ! 998: ! 999: ! 1000: ! 1001: EOD ! 1002: }; ! 1003: ! 1004: USHORT crtc911_1024x768x70Hz[] = { ! 1005: ! 1006: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1007: ! 1008: OW, // Unlock the S3 specific regs ! 1009: 0x3d4, 0x4838, ! 1010: ! 1011: OW, // Data Xfer Execution Position reg ! 1012: 0x3d4, 0x9d3b, ! 1013: ! 1014: OW, // S3R4 - Backwards Compatibility 3 ! 1015: 0x3d4, 0x1034, ! 1016: ! 1017: OW, // Lock S3 specific regs ! 1018: 0x3d4, 0x0038, ! 1019: ! 1020: OW, // Unprotect CRTC regs ! 1021: 0x3d4, 0x0011, ! 1022: ! 1023: METAOUT+INDXOUT, // Program the CRTC regs ! 1024: 0x3d4, ! 1025: 25, 0, ! 1026: 0xa2, 0x7f, 0x80, 0x85, 0x84, ! 1027: 0x95, 0x24, 0xf5, 0x00, 0x60, ! 1028: 0x00, 0x00, 0x00, 0x00, 0x00, ! 1029: 0x00, 0x02, 0x88, 0xff, 0x80, ! 1030: 0x60, 0xff, 0x24, 0xab, 0xff, ! 1031: ! 1032: EOD ! 1033: }; ! 1034: ! 1035: /***************************************************************************** ! 1036: * 801 / 805 CRTC values ! 1037: ****************************************************************************/ ! 1038: ! 1039: USHORT crtc801_640x480x60Hz[] = { ! 1040: ! 1041: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1042: ! 1043: OW, // Unlock the S3 specific regs ! 1044: 0x3d4, 0x4838, ! 1045: ! 1046: OW, // Unlock the more S3 specific regs ! 1047: 0x3d4, 0xA039, ! 1048: ! 1049: OW, // Data Xfer Execution Position reg ! 1050: 0x3d4, 0x5a3b, ! 1051: ! 1052: OW, // S3R4 - Backwards Compatibility 3 ! 1053: 0x3d4, 0x1034, ! 1054: ! 1055: OW, // Unprotect CRTC regs ! 1056: 0x3d4, 0x0011, ! 1057: ! 1058: METAOUT+INDXOUT, // Program the CRTC regs ! 1059: 0x3d4, ! 1060: 25, 0, ! 1061: 0x5f, 0x4f, 0x50, 0x82, 0x54, ! 1062: 0x80, 0x0b, 0x3e, 0x00, 0x40, ! 1063: 0x00, 0x00, 0x00, 0x00, 0x00, ! 1064: 0x00, 0xea, 0x8c, 0xdf, 0x80, ! 1065: 0x60, 0xe7, 0x04, 0xab, 0xff, ! 1066: ! 1067: OW, ! 1068: 0X3D4, 0x005d, ! 1069: ! 1070: OW, ! 1071: 0X3D4, 0x005e, ! 1072: ! 1073: EOD ! 1074: }; ! 1075: ! 1076: USHORT crtc801_640x480x70Hz[] = { ! 1077: ! 1078: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1079: ! 1080: OW, // Unlock the S3 specific regs ! 1081: 0x3d4, 0x4838, ! 1082: ! 1083: OW, // Unlock the more S3 specific regs ! 1084: 0x3d4, 0xA039, ! 1085: ! 1086: OW, // Data Xfer Execution Position reg ! 1087: 0x3d4, 0x5e3b, ! 1088: ! 1089: OW, // S3R4 - Backwards Compatibility 3 ! 1090: 0x3d4, 0x1034, ! 1091: ! 1092: OW, // Unprotect CRTC regs ! 1093: 0x3d4, 0x0011, ! 1094: ! 1095: METAOUT+INDXOUT, // Program the CRTC regs ! 1096: 0x3d4, ! 1097: 25, 0, ! 1098: 0x63, 0x4f, 0x50, 0x86, 0x53, ! 1099: 0x97, 0x07, 0x3e, 0x00, 0x40, ! 1100: 0x00, 0x00, 0x00, 0x00, 0x00, ! 1101: 0x00, 0xe8, 0x8b, 0xdf, 0x80, ! 1102: 0x60, 0xdf, 0x07, 0xab, 0xff, ! 1103: ! 1104: OW, ! 1105: 0X3D4, 0x005d, ! 1106: ! 1107: OW, ! 1108: 0X3D4, 0x005e, ! 1109: ! 1110: EOD ! 1111: }; ! 1112: ! 1113: ! 1114: ! 1115: USHORT crtc801_800x600x60Hz[] = { ! 1116: ! 1117: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1118: ! 1119: OW, // Unlock the S3 specific regs ! 1120: 0x3d4, 0x4838, ! 1121: ! 1122: OW, // Unlock the more S3 specific regs ! 1123: 0x3d4, 0xA039, ! 1124: ! 1125: OW, // Data Xfer Execution Position reg ! 1126: 0x3d4, 0x7a3b, ! 1127: ! 1128: OW, // S3R4 - Backwards Compatibility 3 ! 1129: 0x3d4, 0x1034, ! 1130: ! 1131: OW, // Unprotect CRTC regs ! 1132: 0x3d4, 0x0011, ! 1133: ! 1134: METAOUT+INDXOUT, // Program the CRTC regs ! 1135: 0x3d4, ! 1136: 25, 0, ! 1137: 0x7f, 0x63, 0x64, 0x82, ! 1138: 0x6a, 0x1a, 0x74, 0xf0, ! 1139: 0x00, 0x60, 0x00, 0x00, ! 1140: 0x00, 0x00, 0xff, 0x00, ! 1141: 0x58, 0x8c, 0x57, 0x80, ! 1142: 0x00, 0x57, 0x73, 0xe3, ! 1143: 0xff, ! 1144: ! 1145: OW, ! 1146: 0X3D4, 0x005d, ! 1147: ! 1148: OW, ! 1149: 0X3D4, 0x005e, ! 1150: ! 1151: EOD ! 1152: }; ! 1153: ! 1154: USHORT crtc801_800x600x70Hz[] = { ! 1155: ! 1156: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1157: ! 1158: OW, // Unlock the S3 specific regs ! 1159: 0x3d4, 0x4838, ! 1160: ! 1161: OW, // Unlock the more S3 specific regs ! 1162: 0x3d4, 0xA039, ! 1163: ! 1164: OW, // Data Xfer Execution Position reg ! 1165: 0x3d4, 0x783b, ! 1166: ! 1167: OW, // S3R4 - Backwards Compatibility 3 ! 1168: 0x3d4, 0x1034, ! 1169: ! 1170: OW, // Unprotect CRTC regs ! 1171: 0x3d4, 0x0011, ! 1172: ! 1173: METAOUT+INDXOUT, // Program the CRTC regs ! 1174: 0x3d4, ! 1175: 25, 0, ! 1176: 0x7d, 0x63, 0x64, 0x80, ! 1177: 0x6c, 0x1b, 0x98, 0xf0, ! 1178: 0x00, 0x60, 0x00, 0x00, ! 1179: 0x00, 0x00, 0xff, 0x00, ! 1180: 0x7c, 0xa2, 0x57, 0x80, ! 1181: 0x00, 0x57, 0x98, 0xe3, ! 1182: 0xff, ! 1183: ! 1184: OW, ! 1185: 0X3D4, 0x005d, ! 1186: ! 1187: OW, ! 1188: 0X3D4, 0x005e, ! 1189: ! 1190: EOD ! 1191: }; ! 1192: ! 1193: ! 1194: ! 1195: ! 1196: USHORT crtc801_1024x768x60Hz[] = { ! 1197: ! 1198: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1199: ! 1200: OW, // Unlock the S3 specific regs ! 1201: 0x3d4, 0x4838, ! 1202: ! 1203: OW, // Unlock the more S3 specific regs ! 1204: 0x3d4, 0xA039, ! 1205: ! 1206: OW, // Data Xfer Execution Position reg ! 1207: 0x3d4, 0x9d3b, ! 1208: ! 1209: OW, // S3R4 - Backwards Compatibility 3 ! 1210: 0x3d4, 0x1034, ! 1211: ! 1212: OW, // Unprotect CRTC regs ! 1213: 0x3d4, 0x0011, ! 1214: ! 1215: METAOUT+INDXOUT, // Program the CRTC regs ! 1216: 0x3d4, ! 1217: 25, 0, ! 1218: 0xa3, 0x7f, 0x80, 0x86, ! 1219: 0x84, 0x95, 0x25, 0xf5, ! 1220: 0x00, 0x60, 0x00, 0x00, ! 1221: 0x00, 0x00, 0xff, 0x00, ! 1222: 0x02, 0x87, 0xff, 0x80, ! 1223: 0x60, 0xff, 0x21, 0xeb, ! 1224: 0xff, ! 1225: ! 1226: OW, ! 1227: 0X3D4, 0x005d, ! 1228: ! 1229: OW, ! 1230: 0X3D4, 0x005e, ! 1231: ! 1232: EOD ! 1233: }; ! 1234: ! 1235: USHORT crtc801_1024x768x70Hz[] = { ! 1236: ! 1237: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1238: ! 1239: OW, // Unlock the S3 specific regs ! 1240: 0x3d4, 0x4838, ! 1241: ! 1242: OW, // Unlock the more S3 specific regs ! 1243: 0x3d4, 0xA039, ! 1244: ! 1245: OW, // Data Xfer Execution Position reg ! 1246: 0x3d4, 0x9d3b, ! 1247: ! 1248: OW, // S3R4 - Backwards Compatibility 3 ! 1249: 0x3d4, 0x1034, ! 1250: ! 1251: OW, // Unprotect CRTC regs ! 1252: 0x3d4, 0x0011, ! 1253: ! 1254: METAOUT+INDXOUT, // Program the CRTC regs ! 1255: 0x3d4, ! 1256: 25, 0, ! 1257: 0xa1, 0x7f, 0x80, 0x84, ! 1258: 0x84, 0x95, 0x24, 0xf5, ! 1259: 0x00, 0x60, 0x00, 0x00, ! 1260: 0x00, 0x00, 0x0b, 0x00, ! 1261: 0x02, 0x88, 0xff, 0x80, ! 1262: 0x60, 0xff, 0x24, 0xeb, ! 1263: 0xff, ! 1264: ! 1265: OW, ! 1266: 0X3D4, 0x005d, ! 1267: ! 1268: OW, ! 1269: 0X3D4, 0x005e, ! 1270: ! 1271: EOD ! 1272: }; ! 1273: ! 1274: /***************************************************************************** ! 1275: * 928 CRTC values ! 1276: ****************************************************************************/ ! 1277: ! 1278: USHORT crtc928_640x480x60Hz[] = { ! 1279: ! 1280: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1281: ! 1282: OW, // Unlock the S3 specific regs ! 1283: 0x3d4, 0x4838, ! 1284: ! 1285: OW, // Unlock the more S3 specific regs ! 1286: 0x3d4, 0xA039, ! 1287: ! 1288: OW, // Data Xfer Execution Position reg ! 1289: 0x3d4, 0x5a3b, ! 1290: ! 1291: OW, // S3R4 - Backwards Compatibility 3 ! 1292: 0x3d4, 0x1034, ! 1293: ! 1294: OW, // Unprotect CRTC regs ! 1295: 0x3d4, 0x0011, ! 1296: ! 1297: METAOUT+INDXOUT, // Program the CRTC regs ! 1298: 0x3d4, ! 1299: 25, 0, ! 1300: 0x5f, 0x4f, 0x50, 0x82, 0x54, ! 1301: 0x80, 0x0b, 0x3e, 0x00, 0x40, ! 1302: 0x00, 0x00, 0x00, 0x00, 0x00, ! 1303: 0x00, 0xea, 0x8c, 0xdf, 0x80, ! 1304: 0x60, 0xe7, 0x04, 0xab, 0xff, ! 1305: ! 1306: OW, ! 1307: 0X3D4, 0x005d, ! 1308: ! 1309: OW, ! 1310: 0X3D4, 0x005e, ! 1311: ! 1312: EOD ! 1313: }; ! 1314: ! 1315: USHORT crtc928_640x480x70Hz[] = { ! 1316: ! 1317: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1318: ! 1319: OW, // Unlock the S3 specific regs ! 1320: 0x3d4, 0x4838, ! 1321: ! 1322: OW, // Unlock the more S3 specific regs ! 1323: 0x3d4, 0xA039, ! 1324: ! 1325: OW, // Data Xfer Execution Position reg ! 1326: 0x3d4, 0x5e3b, ! 1327: ! 1328: OW, // S3R4 - Backwards Compatibility 3 ! 1329: 0x3d4, 0x1034, ! 1330: ! 1331: OW, // Unprotect CRTC regs ! 1332: 0x3d4, 0x0011, ! 1333: ! 1334: METAOUT+INDXOUT, // Program the CRTC regs ! 1335: 0x3d4, ! 1336: 25, 0, ! 1337: 0x63, 0x4f, 0x50, 0x86, 0x53, ! 1338: 0x97, 0x07, 0x3e, 0x00, 0x40, ! 1339: 0x00, 0x00, 0x00, 0x00, 0x00, ! 1340: 0x00, 0xe8, 0x8b, 0xdf, 0x80, ! 1341: 0x60, 0xdf, 0x07, 0xab, 0xff, ! 1342: ! 1343: OW, ! 1344: 0X3D4, 0x005d, ! 1345: ! 1346: OW, ! 1347: 0X3D4, 0x005e, ! 1348: ! 1349: EOD ! 1350: }; ! 1351: ! 1352: ! 1353: ! 1354: USHORT crtc928_800x600x60Hz[] = { ! 1355: ! 1356: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1357: ! 1358: OW, // Unlock the S3 specific regs ! 1359: 0x3d4, 0x4838, ! 1360: ! 1361: OW, // Unlock the more S3 specific regs ! 1362: 0x3d4, 0xA039, ! 1363: ! 1364: OW, // Data Xfer Execution Position reg ! 1365: 0x3d4, 0x7a3b, ! 1366: ! 1367: OW, // S3R4 - Backwards Compatibility 3 ! 1368: 0x3d4, 0x1034, ! 1369: ! 1370: OW, // Unprotect CRTC regs ! 1371: 0x3d4, 0x0011, ! 1372: ! 1373: METAOUT+INDXOUT, // Program the CRTC regs ! 1374: 0x3d4, ! 1375: 25, 0, ! 1376: 0x7f, 0x63, 0x64, 0x82, ! 1377: 0x6a, 0x1a, 0x74, 0xf0, ! 1378: 0x00, 0x60, 0x00, 0x00, ! 1379: 0x00, 0x00, 0xff, 0x00, ! 1380: 0x58, 0x8c, 0x57, 0x80, ! 1381: 0x00, 0x57, 0x73, 0xe3, ! 1382: 0xff, ! 1383: ! 1384: OW, ! 1385: 0X3D4, 0x005d, ! 1386: ! 1387: OW, ! 1388: 0X3D4, 0x005e, ! 1389: ! 1390: EOD ! 1391: }; ! 1392: ! 1393: USHORT crtc928_800x600x70Hz[] = { ! 1394: ! 1395: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1396: ! 1397: OW, // Unlock the S3 specific regs ! 1398: 0x3d4, 0x4838, ! 1399: ! 1400: OW, // Unlock the more S3 specific regs ! 1401: 0x3d4, 0xA039, ! 1402: ! 1403: OW, // Data Xfer Execution Position reg ! 1404: 0x3d4, 0x783b, ! 1405: ! 1406: OW, // S3R4 - Backwards Compatibility 3 ! 1407: 0x3d4, 0x1034, ! 1408: ! 1409: OW, // Unprotect CRTC regs ! 1410: 0x3d4, 0x0011, ! 1411: ! 1412: METAOUT+INDXOUT, // Program the CRTC regs ! 1413: 0x3d4, ! 1414: 25, 0, ! 1415: 0x7d, 0x63, 0x64, 0x80, ! 1416: 0x6c, 0x1b, 0x98, 0xf0, ! 1417: 0x00, 0x60, 0x00, 0x00, ! 1418: 0x00, 0x00, 0xff, 0x00, ! 1419: 0x7c, 0xa2, 0x57, 0x80, ! 1420: 0x00, 0x57, 0x98, 0xe3, ! 1421: 0xff, ! 1422: ! 1423: OW, ! 1424: 0X3D4, 0x005d, ! 1425: ! 1426: OW, ! 1427: 0X3D4, 0x005e, ! 1428: ! 1429: EOD ! 1430: }; ! 1431: ! 1432: ! 1433: ! 1434: /****************************************************************************** ! 1435: * CRTC values for S3-928 in 1024x768 @ 60Hz ! 1436: *****************************************************************************/ ! 1437: USHORT crtc928_1024x768x60Hz[] = { ! 1438: ! 1439: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1440: ! 1441: OW, // S3R4 - Backwards Compatibility 3 ! 1442: 0x3d4, 0x0034, ! 1443: ! 1444: OW, // Unprotect CRTC regs ! 1445: 0x3d4, 0x0011, ! 1446: ! 1447: METAOUT+INDXOUT, // Program the CRTC regs ! 1448: 0x3d4, ! 1449: 25, 0, ! 1450: 0xa3, 0x7f, 0x80, 0x86, ! 1451: 0x84, 0x95, 0x25, 0xf5, ! 1452: 0x00, 0x60, 0x00, 0x00, ! 1453: 0x00, 0x00, 0xff, 0x00, ! 1454: 0x02, 0x07, 0xff, 0x80, ! 1455: 0x60, 0xff, 0x21, 0xeb, ! 1456: 0xff, ! 1457: ! 1458: OW, // overlfow regs ! 1459: 0X3D4, 0x005d, ! 1460: ! 1461: OW, // more overflow regs ! 1462: 0X3D4, 0x005e, ! 1463: ! 1464: EOD ! 1465: }; ! 1466: ! 1467: /****************************************************************************** ! 1468: * CRTC values for S3-928 in 1024x768 @ 70Hz ! 1469: *****************************************************************************/ ! 1470: USHORT crtc928_1024x768x70Hz[] = { ! 1471: ! 1472: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1473: ! 1474: OW, // S3R4 - Backwards Compatibility 3 ! 1475: 0x3d4, 0x0034, ! 1476: ! 1477: OW, // Unprotect CRTC regs ! 1478: 0x3d4, 0x0011, ! 1479: ! 1480: METAOUT+INDXOUT, // Program the CRTC regs ! 1481: 0x3d4, ! 1482: 25, 0, ! 1483: 0xa1, 0x7f, 0x80, 0x84, ! 1484: 0x84, 0x95, 0x24, 0xf5, ! 1485: 0x00, 0x60, 0x00, 0x00, ! 1486: 0x00, 0x00, 0x0b, 0x00, ! 1487: 0x02, 0x88, 0xff, 0x80, ! 1488: 0x60, 0xff, 0x24, 0xeb, ! 1489: 0xff, ! 1490: ! 1491: OW, // overflow regs ! 1492: 0X3D4, 0x005d, ! 1493: ! 1494: OW, // more overflow regs ! 1495: 0X3D4, 0x405e, ! 1496: ! 1497: EOD ! 1498: }; ! 1499: ! 1500: ! 1501: /****************************************************************************** ! 1502: * CRTC values for S3-928 in 1280X1024 @ 60Hz ! 1503: *****************************************************************************/ ! 1504: USHORT crtc928_1280x1024x60Hz[] = { ! 1505: ! 1506: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1507: ! 1508: OW, // S3R4 - Backwards Compatibility 3 ! 1509: 0x3d4, 0x0034, ! 1510: ! 1511: OW, // Unprotect CRTC regs ! 1512: 0x3d4, 0x0011, ! 1513: ! 1514: METAOUT+INDXOUT, // Program the CRTC regs ! 1515: 0x3d4, ! 1516: 25, 0, ! 1517: 0x30, 0x27, 0x29, 0x96, ! 1518: 0x29, 0x8d, 0x28, 0x5a, ! 1519: 0x00, 0x60, 0x00, 0x00, ! 1520: 0x00, 0x00, 0xff, 0x00, ! 1521: 0x05, 0x09, 0xff, 0x00, // reg 19 == 50 for packed ! 1522: 0x00, 0xff, 0x29, 0xe3, ! 1523: 0xff, ! 1524: ! 1525: OW, // overflow regs ! 1526: 0X3D4, 0x005d, ! 1527: ! 1528: OW, // more overflow regs ! 1529: 0X3D4, 0x515e, ! 1530: ! 1531: EOD ! 1532: }; ! 1533: ! 1534: ! 1535: /****************************************************************************** ! 1536: * CRTC values for S3-928 in 1280X1024 @ 70Hz ! 1537: *****************************************************************************/ ! 1538: USHORT crtc928_1280x1024x70Hz[] = { ! 1539: ! 1540: SELECTACCESSRANGE + SYSTEMCONTROL, ! 1541: ! 1542: OW, // S3R4 - Backwards Compatibility 3 ! 1543: 0x3d4, 0x0034, ! 1544: ! 1545: OW, // Unprotect CRTC regs ! 1546: 0x3d4, 0x0011, ! 1547: ! 1548: METAOUT+INDXOUT, // Program the CRTC regs ! 1549: 0x3d4, ! 1550: 25, 0, ! 1551: 0x2f, 0x27, 0x29, 0x95, ! 1552: 0x29, 0x8d, 0x28, 0x5a, ! 1553: 0x00, 0x60, 0x00, 0x00, ! 1554: 0x00, 0x00, 0xff, 0x00, ! 1555: 0x05, 0x09, 0xff, 0x00, // reg 19 == 50 for packed ! 1556: 0x00, 0xff, 0x29, 0xe3, ! 1557: 0xff, ! 1558: ! 1559: OW, // overflow regs ! 1560: 0X3D4, 0x005d, ! 1561: ! 1562: OW, // more overflow regs ! 1563: 0X3D4, 0x515e, ! 1564: ! 1565: EOD ! 1566: ! 1567: }; ! 1568: ! 1569: /**************************************************************************** ! 1570: * Chip & Board Specific Mode Selection Tables ! 1571: ***************************************************************************/ ! 1572: ! 1573: ! 1574: ULONG aulGenericClk[] = { ! 1575: 0, // 640 x 480 @ 60Hz ! 1576: 0, // 640 x 480 @ 60Hz ! 1577: 0, // 640 x 480 @ 60Hz ! 1578: 0, // 640 x 480 @ 60Hz ! 1579: 0xB, // 640 x 480 @ 72Hz ! 1580: 2, // 800 x 600 @ 60Hz ! 1581: 2, // 800 x 600 @ 60Hz ! 1582: 2, // 800 x 600 @ 60Hz ! 1583: 2, // 800 x 600 @ 60Hz ! 1584: 4, // 800 x 600 @ 72Hz ! 1585: 0xD, // 1024 x 768 @ 60Hz ! 1586: 0xD, // 1024 x 768 @ 60Hz ! 1587: 0xD, // 1024 x 768 @ 60Hz ! 1588: 0xD, // 1024 x 768 @ 60Hz ! 1589: 0xE // 1024 x 768 @ 72Hz ! 1590: }; ! 1591: ! 1592: ULONG aulOrchidClk[] = { ! 1593: 0, // 640 x 480 @ 60Hz ! 1594: 0, // 640 x 480 @ 60Hz ! 1595: 0, // 640 x 480 @ 60Hz ! 1596: 0, // 640 x 480 @ 60Hz ! 1597: 2, // 640 x 480 @ 72Hz ! 1598: 4, // 800 x 600 @ 60Hz ! 1599: 4, // 800 x 600 @ 60Hz ! 1600: 4, // 800 x 600 @ 60Hz ! 1601: 4, // 800 x 600 @ 60Hz ! 1602: 6, // 800 x 600 @ 72Hz ! 1603: 7, // 1024 x 768 @ 60Hz ! 1604: 7, // 1024 x 768 @ 60Hz ! 1605: 7, // 1024 x 768 @ 60Hz ! 1606: 7, // 1024 x 768 @ 60Hz ! 1607: 0xB // 1024 x 768 @ 72Hz ! 1608: }; ! 1609: ! 1610: ULONG aulNumberNineClk[] = { ! 1611: 25175000, // 640 x 480 @ 60Hz ! 1612: 25175000, // 640 x 480 @ 60Hz ! 1613: 25175000, // 640 x 480 @ 60Hz ! 1614: 25175000, // 640 x 480 @ 60Hz ! 1615: 31500000, // 640 x 480 @ 72Hz ! 1616: 40000000, // 800 x 600 @ 60Hz ! 1617: 40000000, // 800 x 600 @ 60Hz ! 1618: 40000000, // 800 x 600 @ 60Hz ! 1619: 40000000, // 800 x 600 @ 60Hz ! 1620: 50000000, // 800 x 600 @ 72Hz ! 1621: 65000000, // 1024 x 768 @ 60Hz ! 1622: 65000000, // 1024 x 768 @ 60Hz ! 1623: 65000000, // 1024 x 768 @ 60Hz ! 1624: 65000000, // 1024 x 768 @ 60Hz ! 1625: 77000000, // 1024 x 768 @ 72Hz ! 1626: 55000000, // 1280 X 1024 @ 60Hz ! 1627: 55000000, // 1280 X 1024 @ 60Hz ! 1628: 55000000, // 1280 X 1024 @ 60Hz ! 1629: 55000000, // 1280 X 1024 @ 60Hz ! 1630: 64000000 // 1280 X 1024 @ 72Hz ! 1631: }; ! 1632: ! 1633: #endif ! 1634: ! 1635: // ! 1636: // Video mode table - Lists the information about each individual mode ! 1637: // ! 1638: ! 1639: // ! 1640: // BUGBUG ! 1641: // Need to create mode table values for 43Hz and 56Hz for all ! 1642: // resolutions. ! 1643: // ! 1644: ! 1645: S3_VIDEO_MODES S3Modes[] = { ! 1646: { ! 1647: FALSE, // Is this mode currently supported ! 1648: 0x00100000, // Required Video memory for this mode ! 1649: 0x0201, // Int 10 mode number ! 1650: NULL, NULL, NULL, // CRTC tables for NON-int10 modes. ! 1651: { ! 1652: sizeof(VIDEO_MODE_INFORMATION), // Size of the mode informtion structure ! 1653: 0, // Mode index used in setting the mode ! 1654: 640, // X Resolution, in pixels ! 1655: 480, // Y Resolution, in pixels ! 1656: 1024, // Screen stride, in bytes (distance ! 1657: // between the start point of two ! 1658: // consecutive scan lines, in bytes) ! 1659: 1, // Number of video memory planes ! 1660: 8, // Number of bits per plane ! 1661: 1, // Screen Frequency, in Hertz ! 1662: 330, // Horizontal size of screen in millimeters ! 1663: 240, // Vertical size of screen in millimeters ! 1664: 6, // Number Red pixels in DAC ! 1665: 6, // Number Green pixels in DAC ! 1666: 6, // Number Blue pixels in DAC ! 1667: 0x00000000, // Mask for Red Pixels in non-palette modes ! 1668: 0x00000000, // Mask for Green Pixels in non-palette modes ! 1669: 0x00000000, // Mask for Blue Pixels in non-palette modes ! 1670: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1671: VIDEO_MODE_MANAGED_PALETTE, // Mode description flags. ! 1672: 1024, // Video Memory Bitmap Width ! 1673: 1024 // Video Memory Bitmap Height ! 1674: } ! 1675: }, ! 1676: ! 1677: { ! 1678: FALSE, ! 1679: 0x00100000, ! 1680: 0x0201, ! 1681: NULL, NULL, NULL, ! 1682: { ! 1683: sizeof(VIDEO_MODE_INFORMATION), ! 1684: 0, ! 1685: 640, ! 1686: 480, ! 1687: 1024, ! 1688: 1, ! 1689: 8, ! 1690: 43, ! 1691: 330, ! 1692: 240, ! 1693: 6, ! 1694: 6, ! 1695: 6, ! 1696: 0x00000000, ! 1697: 0x00000000, ! 1698: 0x00000000, ! 1699: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1700: VIDEO_MODE_MANAGED_PALETTE, ! 1701: 1024, ! 1702: 1024 ! 1703: } ! 1704: }, ! 1705: ! 1706: { ! 1707: FALSE, ! 1708: 0x00100000, ! 1709: 0x0201, ! 1710: NULL, NULL, NULL, ! 1711: { ! 1712: sizeof(VIDEO_MODE_INFORMATION), ! 1713: 0, ! 1714: 640, ! 1715: 480, ! 1716: 1024, ! 1717: 1, ! 1718: 8, ! 1719: 56, ! 1720: 330, ! 1721: 240, ! 1722: 6, ! 1723: 6, ! 1724: 6, ! 1725: 0x00000000, ! 1726: 0x00000000, ! 1727: 0x00000000, ! 1728: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1729: VIDEO_MODE_MANAGED_PALETTE, ! 1730: 1024, ! 1731: 1024 ! 1732: } ! 1733: }, ! 1734: ! 1735: { ! 1736: FALSE, ! 1737: 0x00100000, ! 1738: 0x0201, ! 1739: #ifndef i386 ! 1740: crtc911_640x480x60Hz, crtc801_640x480x60Hz, crtc928_640x480x60Hz, ! 1741: #else ! 1742: NULL, NULL, NULL, ! 1743: #endif ! 1744: { ! 1745: sizeof(VIDEO_MODE_INFORMATION), ! 1746: 0, ! 1747: 640, ! 1748: 480, ! 1749: 1024, ! 1750: 1, ! 1751: 8, ! 1752: 60, ! 1753: 330, ! 1754: 240, ! 1755: 6, ! 1756: 6, ! 1757: 6, ! 1758: 0x00000000, ! 1759: 0x00000000, ! 1760: 0x00000000, ! 1761: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1762: VIDEO_MODE_MANAGED_PALETTE, ! 1763: 1024, ! 1764: 1024 ! 1765: } ! 1766: }, ! 1767: ! 1768: { ! 1769: FALSE, ! 1770: 0x00100000, ! 1771: 0x0201, ! 1772: #ifndef i386 ! 1773: crtc911_640x480x70Hz, crtc801_640x480x70Hz, crtc928_640x480x70Hz, ! 1774: #else ! 1775: NULL, NULL, NULL, ! 1776: #endif ! 1777: { ! 1778: sizeof(VIDEO_MODE_INFORMATION), ! 1779: 0, ! 1780: 640, ! 1781: 480, ! 1782: 1024, ! 1783: 1, ! 1784: 8, ! 1785: 72, ! 1786: 330, ! 1787: 240, ! 1788: 6, ! 1789: 6, ! 1790: 6, ! 1791: 0x00000000, ! 1792: 0x00000000, ! 1793: 0x00000000, ! 1794: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1795: VIDEO_MODE_MANAGED_PALETTE, ! 1796: 1024, ! 1797: 1024 ! 1798: } ! 1799: }, ! 1800: ! 1801: { ! 1802: FALSE, ! 1803: 0x00100000, ! 1804: 0x0203, ! 1805: NULL, NULL, NULL, ! 1806: { ! 1807: sizeof(VIDEO_MODE_INFORMATION), ! 1808: 0, ! 1809: 800, ! 1810: 600, ! 1811: 1024, ! 1812: 1, ! 1813: 8, ! 1814: 1, ! 1815: 330, ! 1816: 240, ! 1817: 6, ! 1818: 6, ! 1819: 6, ! 1820: 0x00000000, ! 1821: 0x00000000, ! 1822: 0x00000000, ! 1823: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1824: VIDEO_MODE_MANAGED_PALETTE, ! 1825: 1024, ! 1826: 1024 ! 1827: } ! 1828: }, ! 1829: ! 1830: { ! 1831: FALSE, ! 1832: 0x00100000, ! 1833: 0x0203, ! 1834: NULL, NULL, NULL, ! 1835: { ! 1836: sizeof(VIDEO_MODE_INFORMATION), ! 1837: 0, ! 1838: 800, ! 1839: 600, ! 1840: 1024, ! 1841: 1, ! 1842: 8, ! 1843: 43, ! 1844: 330, ! 1845: 240, ! 1846: 6, ! 1847: 6, ! 1848: 6, ! 1849: 0x00000000, ! 1850: 0x00000000, ! 1851: 0x00000000, ! 1852: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1853: VIDEO_MODE_MANAGED_PALETTE, ! 1854: 1024, ! 1855: 1024 ! 1856: } ! 1857: }, ! 1858: ! 1859: { ! 1860: FALSE, ! 1861: 0x00100000, ! 1862: 0x0203, ! 1863: NULL, NULL, NULL, ! 1864: { ! 1865: sizeof(VIDEO_MODE_INFORMATION), ! 1866: 0, ! 1867: 800, ! 1868: 600, ! 1869: 1024, ! 1870: 1, ! 1871: 8, ! 1872: 56, ! 1873: 330, ! 1874: 240, ! 1875: 6, ! 1876: 6, ! 1877: 6, ! 1878: 0x00000000, ! 1879: 0x00000000, ! 1880: 0x00000000, ! 1881: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1882: VIDEO_MODE_MANAGED_PALETTE, ! 1883: 1024, ! 1884: 1024 ! 1885: } ! 1886: }, ! 1887: ! 1888: { ! 1889: FALSE, ! 1890: 0x00100000, ! 1891: 0x0203, ! 1892: #ifndef i386 ! 1893: crtc911_800x600x60Hz, crtc801_800x600x60Hz, crtc928_800x600x60Hz, ! 1894: #else ! 1895: NULL, NULL, NULL, ! 1896: #endif ! 1897: { ! 1898: sizeof(VIDEO_MODE_INFORMATION), ! 1899: 0, ! 1900: 800, ! 1901: 600, ! 1902: 1024, ! 1903: 1, ! 1904: 8, ! 1905: 60, ! 1906: 330, ! 1907: 240, ! 1908: 6, ! 1909: 6, ! 1910: 6, ! 1911: 0x00000000, ! 1912: 0x00000000, ! 1913: 0x00000000, ! 1914: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1915: VIDEO_MODE_MANAGED_PALETTE, ! 1916: 1024, ! 1917: 1024 ! 1918: } ! 1919: }, ! 1920: ! 1921: { ! 1922: FALSE, ! 1923: 0x00100000, ! 1924: 0x0203, ! 1925: #ifndef i386 ! 1926: crtc911_800x600x70Hz, crtc801_800x600x70Hz, crtc928_800x600x70Hz, ! 1927: #else ! 1928: NULL, NULL, NULL, ! 1929: #endif ! 1930: { ! 1931: sizeof(VIDEO_MODE_INFORMATION), ! 1932: 0, ! 1933: 800, ! 1934: 600, ! 1935: 1024, ! 1936: 1, ! 1937: 8, ! 1938: 72, ! 1939: 330, ! 1940: 240, ! 1941: 6, ! 1942: 6, ! 1943: 6, ! 1944: 0x00000000, ! 1945: 0x00000000, ! 1946: 0x00000000, ! 1947: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1948: VIDEO_MODE_MANAGED_PALETTE, ! 1949: 1024, ! 1950: 1024 ! 1951: } ! 1952: }, ! 1953: ! 1954: { ! 1955: FALSE, ! 1956: 0x00100000, ! 1957: 0x0205, ! 1958: NULL, NULL, NULL, ! 1959: { ! 1960: sizeof(VIDEO_MODE_INFORMATION), ! 1961: 0, ! 1962: 1024, ! 1963: 768, ! 1964: 1024, ! 1965: 1, ! 1966: 8, ! 1967: 1, ! 1968: 330, ! 1969: 240, ! 1970: 6, ! 1971: 6, ! 1972: 6, ! 1973: 0x00000000, ! 1974: 0x00000000, ! 1975: 0x00000000, ! 1976: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 1977: VIDEO_MODE_MANAGED_PALETTE, ! 1978: 1024, ! 1979: 1024 ! 1980: } ! 1981: }, ! 1982: ! 1983: { ! 1984: FALSE, ! 1985: 0x00100000, ! 1986: 0x0205, ! 1987: NULL, NULL, NULL, ! 1988: { ! 1989: sizeof(VIDEO_MODE_INFORMATION), ! 1990: 0, ! 1991: 1024, ! 1992: 768, ! 1993: 1024, ! 1994: 1, ! 1995: 8, ! 1996: 43, ! 1997: 330, ! 1998: 240, ! 1999: 6, ! 2000: 6, ! 2001: 6, ! 2002: 0x00000000, ! 2003: 0x00000000, ! 2004: 0x00000000, ! 2005: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2006: VIDEO_MODE_MANAGED_PALETTE, ! 2007: 1024, ! 2008: 1024 ! 2009: } ! 2010: }, ! 2011: ! 2012: { ! 2013: FALSE, ! 2014: 0x00100000, ! 2015: 0x0205, ! 2016: NULL, NULL, NULL, ! 2017: { ! 2018: sizeof(VIDEO_MODE_INFORMATION), ! 2019: 0, ! 2020: 1024, ! 2021: 768, ! 2022: 1024, ! 2023: 1, ! 2024: 8, ! 2025: 56, ! 2026: 330, ! 2027: 240, ! 2028: 6, ! 2029: 6, ! 2030: 6, ! 2031: 0x00000000, ! 2032: 0x00000000, ! 2033: 0x00000000, ! 2034: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2035: VIDEO_MODE_MANAGED_PALETTE, ! 2036: 1024, ! 2037: 1024 ! 2038: } ! 2039: }, ! 2040: ! 2041: { ! 2042: FALSE, ! 2043: 0x00100000, ! 2044: 0x0205, ! 2045: #ifndef i386 ! 2046: crtc911_1024x768x60Hz, crtc801_1024x768x60Hz, crtc928_1024x768x60Hz, ! 2047: #else ! 2048: NULL, NULL, NULL, ! 2049: #endif ! 2050: { ! 2051: sizeof(VIDEO_MODE_INFORMATION), ! 2052: 0, ! 2053: 1024, ! 2054: 768, ! 2055: 1024, ! 2056: 1, ! 2057: 8, ! 2058: 60, ! 2059: 330, ! 2060: 240, ! 2061: 6, ! 2062: 6, ! 2063: 6, ! 2064: 0x00000000, ! 2065: 0x00000000, ! 2066: 0x00000000, ! 2067: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2068: VIDEO_MODE_MANAGED_PALETTE, ! 2069: 1024, ! 2070: 1024 ! 2071: } ! 2072: }, ! 2073: ! 2074: { ! 2075: FALSE, ! 2076: 0x00100000, ! 2077: 0x0205, ! 2078: #ifndef i386 ! 2079: crtc911_1024x768x70Hz, crtc801_1024x768x70Hz, crtc928_1024x768x70Hz, ! 2080: #else ! 2081: NULL, NULL, NULL, ! 2082: #endif ! 2083: { ! 2084: sizeof(VIDEO_MODE_INFORMATION), ! 2085: 0, ! 2086: 1024, ! 2087: 768, ! 2088: 1024, ! 2089: 1, ! 2090: 8, ! 2091: 72, ! 2092: 330, ! 2093: 240, ! 2094: 6, ! 2095: 6, ! 2096: 6, ! 2097: 0x00000000, ! 2098: 0x00000000, ! 2099: 0x00000000, ! 2100: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2101: VIDEO_MODE_MANAGED_PALETTE, ! 2102: 1024, ! 2103: 1024 ! 2104: } ! 2105: }, ! 2106: ! 2107: { ! 2108: FALSE, ! 2109: 0x00300000, ! 2110: 0x0107, ! 2111: NULL, NULL, NULL, ! 2112: { ! 2113: sizeof(VIDEO_MODE_INFORMATION), ! 2114: 0, ! 2115: 1280, ! 2116: 1024, ! 2117: 2048, ! 2118: 1, ! 2119: 8, ! 2120: 1, ! 2121: 330, ! 2122: 240, ! 2123: 6, ! 2124: 6, ! 2125: 6, ! 2126: 0x00000000, ! 2127: 0x00000000, ! 2128: 0x00000000, ! 2129: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2130: VIDEO_MODE_MANAGED_PALETTE, ! 2131: 2048, ! 2132: 1536 ! 2133: } ! 2134: }, ! 2135: ! 2136: { ! 2137: FALSE, ! 2138: 0x00300000, ! 2139: 0x0107, ! 2140: NULL, NULL, NULL, ! 2141: { ! 2142: sizeof(VIDEO_MODE_INFORMATION), ! 2143: 0, ! 2144: 1280, ! 2145: 1024, ! 2146: 2048, ! 2147: 1, ! 2148: 8, ! 2149: 43, ! 2150: 330, ! 2151: 240, ! 2152: 6, ! 2153: 6, ! 2154: 6, ! 2155: 0x00000000, ! 2156: 0x00000000, ! 2157: 0x00000000, ! 2158: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2159: VIDEO_MODE_MANAGED_PALETTE, ! 2160: 2048, ! 2161: 1536 ! 2162: } ! 2163: }, ! 2164: ! 2165: { ! 2166: FALSE, ! 2167: 0x00300000, ! 2168: 0x0107, ! 2169: NULL, NULL, NULL, ! 2170: { ! 2171: sizeof(VIDEO_MODE_INFORMATION), ! 2172: 0, ! 2173: 1280, ! 2174: 1024, ! 2175: 2048, ! 2176: 1, ! 2177: 8, ! 2178: 56, ! 2179: 330, ! 2180: 240, ! 2181: 6, ! 2182: 6, ! 2183: 6, ! 2184: 0x00000000, ! 2185: 0x00000000, ! 2186: 0x00000000, ! 2187: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2188: VIDEO_MODE_MANAGED_PALETTE, ! 2189: 2048, ! 2190: 1536 ! 2191: } ! 2192: }, ! 2193: ! 2194: { ! 2195: FALSE, ! 2196: 0x00300000, ! 2197: 0x0107, ! 2198: #ifndef i386 ! 2199: NULL, NULL, crtc928_1280x1024x60Hz, ! 2200: #else ! 2201: NULL, NULL, NULL, ! 2202: #endif ! 2203: { ! 2204: sizeof(VIDEO_MODE_INFORMATION), ! 2205: 0, ! 2206: 1280, ! 2207: 1024, ! 2208: 2048, ! 2209: 1, ! 2210: 8, ! 2211: 60, ! 2212: 330, ! 2213: 240, ! 2214: 6, ! 2215: 6, ! 2216: 6, ! 2217: 0x00000000, ! 2218: 0x00000000, ! 2219: 0x00000000, ! 2220: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2221: VIDEO_MODE_MANAGED_PALETTE, ! 2222: 2048, ! 2223: 1536 ! 2224: } ! 2225: }, ! 2226: ! 2227: { ! 2228: FALSE, ! 2229: 0x00300000, ! 2230: 0x0107, ! 2231: #ifndef i386 ! 2232: NULL, NULL, crtc928_1280x1024x70Hz, ! 2233: #else ! 2234: NULL, NULL, NULL, ! 2235: #endif ! 2236: { ! 2237: sizeof(VIDEO_MODE_INFORMATION), ! 2238: 0, ! 2239: 1280, ! 2240: 1024, ! 2241: 2048, ! 2242: 1, ! 2243: 8, ! 2244: 72, ! 2245: 330, ! 2246: 240, ! 2247: 6, ! 2248: 6, ! 2249: 6, ! 2250: 0x00000000, ! 2251: 0x00000000, ! 2252: 0x00000000, ! 2253: VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN | ! 2254: VIDEO_MODE_MANAGED_PALETTE, ! 2255: 2048, ! 2256: 1536 ! 2257: } ! 2258: } ! 2259: }; ! 2260: ! 2261: ! 2262: ULONG NumS3VideoModes = sizeof(S3Modes) / sizeof(S3_VIDEO_MODES);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.