home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April (Special) / Chip-Special_1997-04_cd.bin / spea / mirage / w3mtv26 / w3mtv26a.exe / rar / V7I6I49.SDD / V7I6I49.SDD
Text File  |  1996-01-29  |  32KB  |  1,020 lines

  1. // 
  2. //  Copyright (c) 1995 SPEA Software AG All Rights Reserved
  3. // 
  4. //# @(#)v7i6i49.sdd  3.00   95/09/12 SPEA   (BIOS 1.05)
  5. // 
  6. //  v7i6i49.sdd  -  SVPMI File for V7-MIRAGE VIDEO 2MB
  7. // 
  8. //  1600x1200x8  62.1 / 49  kHz / Hz
  9. //  1280x1024x8  47.7 / 44  kHz / Hz
  10. //  1152x864x8   55.4 / 60  kHz / Hz
  11. //  1024x768x16  48.4 / 60  kHz / Hz
  12. //  1024x768x8   48.4 / 60  kHz / Hz
  13. //  800x600x32   48.2 / 72  kHz / Hz
  14. //  800x600x16   48.1 / 72  kHz / Hz
  15. //  800x600x8    48.2 / 72  kHz / Hz
  16. //  640x480x32   37.7 / 75  kHz / Hz
  17. //  640x480x16   37.3 / 75  kHz / Hz
  18. //  640x480x8    37.7 / 75  kHz / Hz
  19. //  640x400x32   31.4 / 70  kHz / Hz
  20. //  640x400x8    31.4 / 70  kHz / Hz
  21.  
  22. [VERSION]
  23.  1.0;
  24.  
  25. [ACTIVE_ADAPTER]
  26.  V7-MIRAGE VIDEO 2MB (bis 49 kHz Multiscan);
  27.  
  28. [ADAPTER]
  29.  V7-MIRAGE VIDEO 2MB (bis 49 kHz Multiscan);
  30.  
  31. [ADAPTER_INFO]
  32.  BoardType = VGA;
  33.  SaveSize = 100;
  34.  PaletteSize = 768;
  35.  //# MemorySize = 2048;
  36.  
  37. // ***********************************
  38. // 0x007C
  39. // ***********************************
  40. [MODE]
  41.  0x007C;
  42. [MODEINFO]
  43.     ModeAttributes      = 0x1b;
  44.     WinAAttributes      = 7;
  45.     WinBAttributes      = 0;
  46.     WinAGranularity     = 64;
  47.     WinBGranularity     = 64;
  48.     WinASize            = 64;
  49.     WinBSize            = 64;
  50.     WinABase            = 0xa0000;
  51.     WinBBase            = 0xa0000;
  52.     BytesPerScanline    = 1600;
  53.     XResolution         = 1600;
  54.     YResolution         = 1200;
  55.     XCharSize           = 8;
  56.     YCharSize           = 16;
  57.     Colormodel          = 1;
  58.     BitsPerPixel        = 8;
  59.     NumberOfColors      = 256;
  60.     BitsRGB             = 6;
  61.     NumberOfBanks       = 1;
  62.     BankSize            = 0;
  63.     MemoryModel         = 0x4;
  64.     NumberOfImagePages  = 0;
  65.  
  66. [SETMODE]
  67.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  68.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  69.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  70.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  71.  
  72.  r0  = 0x01; r1  = 0xc7; r2  = 0xc8; r3  = 0x81; r4  = 0xd3;
  73.  r5  = 0x13; r6  = 0x74; r7  = 0xe0; r8  = 0x00; r9  = 0x60;
  74.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  75.  r15 = 0x00; r16 = 0x58; r17 = 0x00; r18 = 0x57; r19 = 0xc8;
  76.  r20 = 0x00; r21 = 0x58; r22 = 0x00; r23 = 0xa3; r24 = 0xff;
  77.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  78.  
  79.  outb(0x3d4,0x3b);outb(0x3d5,0xfa);
  80.  outb(0x3d4,0x42);outb(0x3d5,0x20);
  81.  outb(0x3d4,0x54);outb(0x3d5,0x00);
  82.  outb(0x3d4,0x5d);outb(0x3d5,0x01);
  83.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  84.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  85.  outb(0x3d4,0x67);outb(0x3d5,0x10);
  86.  
  87.  
  88. // TRIO64 internal clock synthesis
  89. // M/N value: 246b, DCLK
  90.  
  91.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  92.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  93.  
  94.  outb(0x3c4,0x12); outb(0x3c5,0x24);
  95.  outb(0x3c4,0x13); outb(0x3c5,0x6b);
  96.  outb(0x3c4,0x18); outb(0x3c5,0xc0);
  97.  outb(0x3c4,0x15); outb(0x3c5,0x12);
  98.  
  99. // Bit 2&3 set enable loading of DCLK parameters
  100.  outb(0x3c2,0x2f);
  101.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  102.  
  103.  
  104. //# [SPEA]
  105.  //# SerialWord = 0x246b;
  106.  //# DacMode = 0x5;
  107.  //# Cr42 = 0x29;
  108.  
  109. // ***********************************
  110. // 0x006F
  111. // ***********************************
  112. [MODE]
  113.  0x006F;
  114. [MODEINFO]
  115.     ModeAttributes      = 0x1b;
  116.     WinAAttributes      = 7;
  117.     WinBAttributes      = 0;
  118.     WinAGranularity     = 64;
  119.     WinBGranularity     = 64;
  120.     WinASize            = 64;
  121.     WinBSize            = 64;
  122.     WinABase            = 0xa0000;
  123.     WinBBase            = 0xa0000;
  124.     BytesPerScanline    = 1280;
  125.     XResolution         = 1280;
  126.     YResolution         = 1024;
  127.     XCharSize           = 8;
  128.     YCharSize           = 16;
  129.     Colormodel          = 1;
  130.     BitsPerPixel        = 8;
  131.     NumberOfColors      = 256;
  132.     BitsRGB             = 6;
  133.     NumberOfBanks       = 1;
  134.     BankSize            = 0;
  135.     MemoryModel         = 0x4;
  136.     NumberOfImagePages  = 0;
  137.  
  138. [SETMODE]
  139.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  140.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  141.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  142.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  143.  
  144.  r0  = 0xc0; r1  = 0x9f; r2  = 0xa0; r3  = 0x82; r4  = 0xa4;
  145.  r5  = 0x19; r6  = 0x18; r7  = 0xb2; r8  = 0x00; r9  = 0x60;
  146.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  147.  r15 = 0x00; r16 = 0x01; r17 = 0x85; r18 = 0xff; r19 = 0xa0;
  148.  r20 = 0x00; r21 = 0x00; r22 = 0x18; r23 = 0xe3; r24 = 0xff;
  149.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  150.  
  151.  outb(0x3d4,0x3b);outb(0x3d5,0xb9);
  152.  outb(0x3d4,0x42);outb(0x3d5,0x20);
  153.  outb(0x3d4,0x54);outb(0x3d5,0xe0);
  154.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  155.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  156.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  157.  outb(0x3d4,0x67);outb(0x3d5,0x11);
  158.  
  159.  
  160. // TRIO64 internal clock synthesis
  161. // M/N value: 2013, DCLK
  162.  
  163.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  164.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  165.  
  166.  outb(0x3c4,0x12); outb(0x3c5,0x20);
  167.  outb(0x3c4,0x13); outb(0x3c5,0x13);
  168.  outb(0x3c4,0x18); outb(0x3c5,0xc0);
  169.  outb(0x3c4,0x15); outb(0x3c5,0x12);
  170.  
  171. // Bit 2&3 set enable loading of DCLK parameters
  172.  outb(0x3c2,0xef);
  173.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  174.  
  175.  
  176. //# [SPEA]
  177.  //# SerialWord = 0x2013;
  178.  //# DacMode = 0x5;
  179.  //# Cr42 = 0x2e;
  180.  
  181. // ***********************************
  182. // 0x004E
  183. // ***********************************
  184. [MODE]
  185.  0x004E;
  186. [MODEINFO]
  187.     ModeAttributes      = 0x1b;
  188.     WinAAttributes      = 7;
  189.     WinBAttributes      = 0;
  190.     WinAGranularity     = 64;
  191.     WinBGranularity     = 64;
  192.     WinASize            = 64;
  193.     WinBSize            = 64;
  194.     WinABase            = 0xa0000;
  195.     WinBBase            = 0xa0000;
  196.     BytesPerScanline    = 1152;
  197.     XResolution         = 1152;
  198.     YResolution         = 864;
  199.     XCharSize           = 8;
  200.     YCharSize           = 16;
  201.     Colormodel          = 1;
  202.     BitsPerPixel        = 8;
  203.     NumberOfColors      = 256;
  204.     BitsRGB             = 6;
  205.     NumberOfBanks       = 1;
  206.     BankSize            = 0;
  207.     MemoryModel         = 0x4;
  208.     NumberOfImagePages  = 0;
  209.  
  210. [SETMODE]
  211.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  212.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  213.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  214.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  215.  
  216.  r0  = 0xb1; r1  = 0x8f; r2  = 0x90; r3  = 0x14; r4  = 0x93;
  217.  r5  = 0x1f; r6  = 0x9a; r7  = 0xff; r8  = 0x00; r9  = 0x60;
  218.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  219.  r15 = 0x00; r16 = 0x70; r17 = 0x83; r18 = 0x5f; r19 = 0x90;
  220.  r20 = 0x60; r21 = 0x6f; r22 = 0x8d; r23 = 0xeb; r24 = 0xff;
  221.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  222.  
  223.  outb(0x3d4,0x3b);outb(0x3d5,0xaa);
  224.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  225.  outb(0x3d4,0x54);outb(0x3d5,0xb0);
  226.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  227.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  228.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  229.  outb(0x3d4,0x67);outb(0x3d5,0x00);
  230.  
  231.  
  232. // TRIO64 internal clock synthesis
  233. // M/N value: 222b, DCLK
  234.  
  235.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  236.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  237.  
  238.  outb(0x3c4,0x12); outb(0x3c5,0x22);
  239.  outb(0x3c4,0x13); outb(0x3c5,0x2b);
  240.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  241.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  242.  
  243. // Bit 2&3 set enable loading of DCLK parameters
  244.  outb(0x3c2,0xef);
  245.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  246.  
  247.  
  248. //# [SPEA]
  249.  //# SerialWord = 0x222b;
  250.  //# DacMode = 0x0;
  251.  //# Cr42 = 0xa;
  252.  
  253. // ***********************************
  254. // 0x0077
  255. // ***********************************
  256. [MODE]
  257.  0x0077;
  258. [MODEINFO]
  259.     ModeAttributes      = 0x1b;
  260.     WinAAttributes      = 7;
  261.     WinBAttributes      = 0;
  262.     WinAGranularity     = 64;
  263.     WinBGranularity     = 64;
  264.     WinASize            = 64;
  265.     WinBSize            = 64;
  266.     WinABase            = 0xa0000;
  267.     WinBBase            = 0xa0000;
  268.     BytesPerScanline    = 2048;
  269.     XResolution         = 1024;
  270.     YResolution         = 768;
  271.     XCharSize           = 8;
  272.     YCharSize           = 16;
  273.     Colormodel          = 2;
  274.     BitsPerPixel        = 16;
  275.     NumberOfColors      = 65536;
  276.     BitsRGB             = 6;
  277.     RedSize             = 5;
  278.     RedPosition         = 11;
  279.     GreenSize           = 6;
  280.     GreenPosition       = 5;
  281.     BlueSize            = 5;
  282.     BluePosition        = 0;
  283.     ReservedSize        = 0;
  284.     ReservedPosition    = 0;
  285.     NumberOfBanks       = 1;
  286.     BankSize            = 0;
  287.     MemoryModel         = 0x6;
  288.     NumberOfImagePages  = 0;
  289.  
  290. [SETMODE]
  291.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  292.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  293.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  294.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  295.  
  296.  r0  = 0x4d; r1  = 0xff; r2  = 0x00; r3  = 0x0d; r4  = 0x07;
  297.  r5  = 0x09; r6  = 0x25; r7  = 0xf5; r8  = 0x00; r9  = 0x60;
  298.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  299.  r15 = 0x00; r16 = 0x02; r17 = 0x88; r18 = 0xff; r19 = 0x00;
  300.  r20 = 0x00; r21 = 0xff; r22 = 0x25; r23 = 0xe3; r24 = 0xff;
  301.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  302.  
  303.  outb(0x3d4,0x3b);outb(0x3d5,0x46);
  304.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  305.  outb(0x3d4,0x54);outb(0x3d5,0x50);
  306.  outb(0x3d4,0x5d);outb(0x3d5,0x7d);
  307.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  308.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  309.  outb(0x3d4,0x67);outb(0x3d5,0x50);
  310.  
  311.  
  312. // TRIO64 internal clock synthesis
  313. // M/N value: 4247, DCLK
  314.  
  315.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  316.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  317.  
  318.  outb(0x3c4,0x12); outb(0x3c5,0x42);
  319.  outb(0x3c4,0x13); outb(0x3c5,0x47);
  320.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  321.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  322.  
  323. // Bit 2&3 set enable loading of DCLK parameters
  324.  outb(0x3c2,0xef);
  325.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  326.  
  327.  
  328. //# [SPEA]
  329.  //# SerialWord = 0x4247;
  330.  //# DacMode = 0x2;
  331.  //# Cr42 = 0xd;
  332.  
  333. // ***********************************
  334. // 0x006D
  335. // ***********************************
  336. [MODE]
  337.  0x006D;
  338. [MODEINFO]
  339.     ModeAttributes      = 0x1b;
  340.     WinAAttributes      = 7;
  341.     WinBAttributes      = 0;
  342.     WinAGranularity     = 64;
  343.     WinBGranularity     = 64;
  344.     WinASize            = 64;
  345.     WinBSize            = 64;
  346.     WinABase            = 0xa0000;
  347.     WinBBase            = 0xa0000;
  348.     BytesPerScanline    = 1024;
  349.     XResolution         = 1024;
  350.     YResolution         = 768;
  351.     XCharSize           = 8;
  352.     YCharSize           = 16;
  353.     Colormodel          = 1;
  354.     BitsPerPixel        = 8;
  355.     NumberOfColors      = 256;
  356.     BitsRGB             = 6;
  357.     NumberOfBanks       = 1;
  358.     BankSize            = 0;
  359.     MemoryModel         = 0x4;
  360.     NumberOfImagePages  = 0;
  361.  
  362. [SETMODE]
  363.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  364.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  365.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  366.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  367.  
  368.  r0  = 0xa4; r1  = 0x7f; r2  = 0x7f; r3  = 0x05; r4  = 0x83;
  369.  r5  = 0x95; r6  = 0x25; r7  = 0xf5; r8  = 0x00; r9  = 0x60;
  370.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  371.  r15 = 0x00; r16 = 0x02; r17 = 0x88; r18 = 0xff; r19 = 0x80;
  372.  r20 = 0x00; r21 = 0xff; r22 = 0x25; r23 = 0xe3; r24 = 0xff;
  373.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  374.  
  375.  outb(0x3d4,0x3b);outb(0x3d5,0x9d);
  376.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  377.  outb(0x3d4,0x54);outb(0x3d5,0xf8);
  378.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  379.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  380.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  381.  outb(0x3d4,0x67);outb(0x3d5,0x00);
  382.  
  383.  
  384. // TRIO64 internal clock synthesis
  385. // M/N value: 4247, DCLK
  386.  
  387.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  388.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  389.  
  390.  outb(0x3c4,0x12); outb(0x3c5,0x42);
  391.  outb(0x3c4,0x13); outb(0x3c5,0x47);
  392.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  393.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  394.  
  395. // Bit 2&3 set enable loading of DCLK parameters
  396.  outb(0x3c2,0xef);
  397.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  398.  
  399.  
  400. //# [SPEA]
  401.  //# SerialWord = 0x4247;
  402.  //# DacMode = 0x0;
  403.  //# Cr42 = 0xd;
  404.  
  405. // ***********************************
  406. // 0x0075
  407. // ***********************************
  408. [MODE]
  409.  0x0075;
  410. [MODEINFO]
  411.     ModeAttributes      = 0x1b;
  412.     WinAAttributes      = 7;
  413.     WinBAttributes      = 0;
  414.     WinAGranularity     = 64;
  415.     WinBGranularity     = 64;
  416.     WinASize            = 64;
  417.     WinBSize            = 64;
  418.     WinABase            = 0xa0000;
  419.     WinBBase            = 0xa0000;
  420.     BytesPerScanline    = 3200;
  421.     XResolution         = 800;
  422.     YResolution         = 600;
  423.     XCharSize           = 8;
  424.     YCharSize           = 8;
  425.     Colormodel          = 2;
  426.     BitsPerPixel        = 32;
  427.     NumberOfColors      = 16777216;
  428.     BitsRGB             = 6;
  429.     RedSize             = 8;
  430.     RedPosition         = 16;
  431.     GreenSize           = 8;
  432.     GreenPosition       = 8;
  433.     BlueSize            = 8;
  434.     BluePosition        = 0;
  435.     ReservedSize        = 8;
  436.     ReservedPosition    = 24;
  437.     NumberOfBanks       = 1;
  438.     BankSize            = 0;
  439.     MemoryModel         = 0x6;
  440.     NumberOfImagePages  = 0;
  441.  
  442. [SETMODE]
  443.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  444.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  445.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  446.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  447.  
  448.  r0  = 0x7d; r1  = 0x63; r2  = 0x64; r3  = 0x80; r4  = 0x6b;
  449.  r5  = 0x1a; r6  = 0x99; r7  = 0xf0; r8  = 0x00; r9  = 0x60;
  450.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  451.  r15 = 0x00; r16 = 0x7c; r17 = 0xa2; r18 = 0x57; r19 = 0x90;
  452.  r20 = 0x00; r21 = 0x57; r22 = 0x99; r23 = 0xe3; r24 = 0xff;
  453.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  454.  
  455.  outb(0x3d4,0x3b);outb(0x3d5,0x76);
  456.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  457.  outb(0x3d4,0x54);outb(0x3d5,0x18);
  458.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  459.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  460.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  461.  outb(0x3d4,0x67);outb(0x3d5,0xd0);
  462.  
  463.  
  464. // TRIO64 internal clock synthesis
  465. // M/N value: 401a, DCLK
  466.  
  467.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  468.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  469.  
  470.  outb(0x3c4,0x12); outb(0x3c5,0x40);
  471.  outb(0x3c4,0x13); outb(0x3c5,0x1a);
  472.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  473.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  474.  
  475. // Bit 2&3 set enable loading of DCLK parameters
  476.  outb(0x3c2,0x2f);
  477.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  478.  
  479.  
  480. //# [SPEA]
  481.  //# SerialWord = 0x401a;
  482.  //# DacMode = 0x4;
  483.  //# Cr42 = 0x4;
  484.  
  485. // ***********************************
  486. // 0x0074
  487. // ***********************************
  488. [MODE]
  489.  0x0074;
  490. [MODEINFO]
  491.     ModeAttributes      = 0x1b;
  492.     WinAAttributes      = 7;
  493.     WinBAttributes      = 0;
  494.     WinAGranularity     = 64;
  495.     WinBGranularity     = 64;
  496.     WinASize            = 64;
  497.     WinBSize            = 64;
  498.     WinABase            = 0xa0000;
  499.     WinBBase            = 0xa0000;
  500.     BytesPerScanline    = 1600;
  501.     XResolution         = 800;
  502.     YResolution         = 600;
  503.     XCharSize           = 8;
  504.     YCharSize           = 8;
  505.     Colormodel          = 2;
  506.     BitsPerPixel        = 16;
  507.     NumberOfColors      = 65536;
  508.     BitsRGB             = 6;
  509.     RedSize             = 5;
  510.     RedPosition         = 11;
  511.     GreenSize           = 6;
  512.     GreenPosition       = 5;
  513.     BlueSize            = 5;
  514.     BluePosition        = 0;
  515.     ReservedSize        = 0;
  516.     ReservedPosition    = 0;
  517.     NumberOfBanks       = 1;
  518.     BankSize            = 0;
  519.     MemoryModel         = 0x6;
  520.     NumberOfImagePages  = 0;
  521.  
  522. [SETMODE]
  523.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  524.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  525.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  526.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  527.  
  528.  r0  = 0x00; r1  = 0xc7; r2  = 0xc8; r3  = 0x01; r4  = 0xd7;
  529.  r5  = 0x15; r6  = 0x99; r7  = 0xf0; r8  = 0x00; r9  = 0x60;
  530.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  531.  r15 = 0x00; r16 = 0x7c; r17 = 0x82; r18 = 0x57; r19 = 0xc8;
  532.  r20 = 0x00; r21 = 0x57; r22 = 0x99; r23 = 0xa3; r24 = 0xff;
  533.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  534.  
  535.  outb(0x3d4,0x3b);outb(0x3d5,0xf9);
  536.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  537.  outb(0x3d4,0x54);outb(0x3d5,0x98);
  538.  outb(0x3d4,0x5d);outb(0x3d5,0x01);
  539.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  540.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  541.  outb(0x3d4,0x67);outb(0x3d5,0x50);
  542.  
  543.  
  544. // TRIO64 internal clock synthesis
  545. // M/N value: 401a, DCLK
  546.  
  547.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  548.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  549.  
  550.  outb(0x3c4,0x12); outb(0x3c5,0x40);
  551.  outb(0x3c4,0x13); outb(0x3c5,0x1a);
  552.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  553.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  554.  
  555. // Bit 2&3 set enable loading of DCLK parameters
  556.  outb(0x3c2,0x2f);
  557.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  558.  
  559.  
  560. //# [SPEA]
  561.  //# SerialWord = 0x401a;
  562.  //# DacMode = 0x2;
  563.  //# Cr42 = 0x4;
  564.  
  565. // ***********************************
  566. // 0x006B
  567. // ***********************************
  568. [MODE]
  569.  0x006B;
  570. [MODEINFO]
  571.     ModeAttributes      = 0x1b;
  572.     WinAAttributes      = 7;
  573.     WinBAttributes      = 0;
  574.     WinAGranularity     = 64;
  575.     WinBGranularity     = 64;
  576.     WinASize            = 64;
  577.     WinBSize            = 64;
  578.     WinABase            = 0xa0000;
  579.     WinBBase            = 0xa0000;
  580.     BytesPerScanline    = 800;
  581.     XResolution         = 800;
  582.     YResolution         = 600;
  583.     XCharSize           = 8;
  584.     YCharSize           = 8;
  585.     Colormodel          = 1;
  586.     BitsPerPixel        = 8;
  587.     NumberOfColors      = 256;
  588.     BitsRGB             = 6;
  589.     NumberOfBanks       = 1;
  590.     BankSize            = 0;
  591.     MemoryModel         = 0x4;
  592.     NumberOfImagePages  = 0;
  593.  
  594. [SETMODE]
  595.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  596.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  597.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  598.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  599.  
  600.  r0  = 0x7d; r1  = 0x63; r2  = 0x63; r3  = 0x80; r4  = 0x6b;
  601.  r5  = 0x1a; r6  = 0x99; r7  = 0xf0; r8  = 0x00; r9  = 0x60;
  602.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  603.  r15 = 0x00; r16 = 0x7c; r17 = 0xa2; r18 = 0x57; r19 = 0x64;
  604.  r20 = 0x00; r21 = 0x57; r22 = 0x99; r23 = 0xe3; r24 = 0xff;
  605.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  606.  
  607.  outb(0x3d4,0x3b);outb(0x3d5,0x76);
  608.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  609.  outb(0x3d4,0x54);outb(0x3d5,0xf8);
  610.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  611.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  612.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  613.  outb(0x3d4,0x67);outb(0x3d5,0x00);
  614.  
  615.  
  616. // TRIO64 internal clock synthesis
  617. // M/N value: 401a, DCLK
  618.  
  619.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  620.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  621.  
  622.  outb(0x3c4,0x12); outb(0x3c5,0x40);
  623.  outb(0x3c4,0x13); outb(0x3c5,0x1a);
  624.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  625.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  626.  
  627. // Bit 2&3 set enable loading of DCLK parameters
  628.  outb(0x3c2,0x2f);
  629.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  630.  
  631.  
  632. //# [SPEA]
  633.  //# SerialWord = 0x401a;
  634.  //# DacMode = 0x0;
  635.  //# Cr42 = 0x4;
  636.  
  637. // ***********************************
  638. // 0x0072
  639. // ***********************************
  640. [MODE]
  641.  0x0072;
  642. [MODEINFO]
  643.     ModeAttributes      = 0x1b;
  644.     WinAAttributes      = 7;
  645.     WinBAttributes      = 0;
  646.     WinAGranularity     = 64;
  647.     WinBGranularity     = 64;
  648.     WinASize            = 64;
  649.     WinBSize            = 64;
  650.     WinABase            = 0xa0000;
  651.     WinBBase            = 0xa0000;
  652.     BytesPerScanline    = 2560;
  653.     XResolution         = 640;
  654.     YResolution         = 480;
  655.     XCharSize           = 8;
  656.     YCharSize           = 16;
  657.     Colormodel          = 2;
  658.     BitsPerPixel        = 32;
  659.     NumberOfColors      = 16777216;
  660.     BitsRGB             = 6;
  661.     RedSize             = 8;
  662.     RedPosition         = 16;
  663.     GreenSize           = 8;
  664.     GreenPosition       = 8;
  665.     BlueSize            = 8;
  666.     BluePosition        = 0;
  667.     ReservedSize        = 8;
  668.     ReservedPosition    = 24;
  669.     NumberOfBanks       = 1;
  670.     BankSize            = 0;
  671.     MemoryModel         = 0x6;
  672.     NumberOfImagePages  = 0;
  673.  
  674. [SETMODE]
  675.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  676.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  677.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  678.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  679.  
  680.  r0  = 0x64; r1  = 0x4f; r2  = 0x50; r3  = 0x00; r4  = 0x52;
  681.  r5  = 0x9a; r6  = 0xf2; r7  = 0x1f; r8  = 0x00; r9  = 0x40;
  682.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  683.  r15 = 0x00; r16 = 0xe0; r17 = 0x83; r18 = 0xdf; r19 = 0x40;
  684.  r20 = 0x60; r21 = 0xdf; r22 = 0x00; r23 = 0xab; r24 = 0xff;
  685.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  686.  
  687.  outb(0x3d4,0x3b);outb(0x3d5,0x5d);
  688.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  689.  outb(0x3d4,0x54);outb(0x3d5,0x58);
  690.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  691.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  692.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  693.  outb(0x3d4,0x67);outb(0x3d5,0xd0);
  694.  
  695.  
  696. // TRIO64 internal clock synthesis
  697. // M/N value: 6133, DCLK
  698.  
  699.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  700.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  701.  
  702.  outb(0x3c4,0x12); outb(0x3c5,0x61);
  703.  outb(0x3c4,0x13); outb(0x3c5,0x33);
  704.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  705.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  706.  
  707. // Bit 2&3 set enable loading of DCLK parameters
  708.  outb(0x3c2,0xef);
  709.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  710.  
  711.  
  712. //# [SPEA]
  713.  //# SerialWord = 0x6133;
  714.  //# DacMode = 0x4;
  715.  //# Cr42 = 0xb;
  716.  
  717. // ***********************************
  718. // 0x0071
  719. // ***********************************
  720. [MODE]
  721.  0x0071;
  722. [MODEINFO]
  723.     ModeAttributes      = 0x1b;
  724.     WinAAttributes      = 7;
  725.     WinBAttributes      = 0;
  726.     WinAGranularity     = 64;
  727.     WinBGranularity     = 64;
  728.     WinASize            = 64;
  729.     WinBSize            = 64;
  730.     WinABase            = 0xa0000;
  731.     WinBBase            = 0xa0000;
  732.     BytesPerScanline    = 1280;
  733.     XResolution         = 640;
  734.     YResolution         = 480;
  735.     XCharSize           = 8;
  736.     YCharSize           = 16;
  737.     Colormodel          = 2;
  738.     BitsPerPixel        = 16;
  739.     NumberOfColors      = 65536;
  740.     BitsRGB             = 6;
  741.     RedSize             = 5;
  742.     RedPosition         = 11;
  743.     GreenSize           = 6;
  744.     GreenPosition       = 5;
  745.     BlueSize            = 5;
  746.     BluePosition        = 0;
  747.     ReservedSize        = 0;
  748.     ReservedPosition    = 0;
  749.     NumberOfBanks       = 1;
  750.     BankSize            = 0;
  751.     MemoryModel         = 0x6;
  752.     NumberOfImagePages  = 0;
  753.  
  754. [SETMODE]
  755.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  756.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  757.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  758.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  759.  
  760.  r0  = 0xcf; r1  = 0x9f; r2  = 0xa0; r3  = 0x11; r4  = 0xa5;
  761.  r5  = 0x15; r6  = 0xf1; r7  = 0x1f; r8  = 0x00; r9  = 0x40;
  762.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  763.  r15 = 0x00; r16 = 0xe0; r17 = 0x83; r18 = 0xdf; r19 = 0xa0;
  764.  r20 = 0x60; r21 = 0xdf; r22 = 0x00; r23 = 0xab; r24 = 0xff;
  765.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  766.  
  767.  outb(0x3d4,0x3b);outb(0x3d5,0xc8);
  768.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  769.  outb(0x3d4,0x54);outb(0x3d5,0xf8);
  770.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  771.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  772.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  773.  outb(0x3d4,0x67);outb(0x3d5,0x50);
  774.  
  775.  
  776. // TRIO64 internal clock synthesis
  777. // M/N value: 6133, DCLK
  778.  
  779.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  780.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  781.  
  782.  outb(0x3c4,0x12); outb(0x3c5,0x61);
  783.  outb(0x3c4,0x13); outb(0x3c5,0x33);
  784.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  785.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  786.  
  787. // Bit 2&3 set enable loading of DCLK parameters
  788.  outb(0x3c2,0xef);
  789.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  790.  
  791.  
  792. //# [SPEA]
  793.  //# SerialWord = 0x6133;
  794.  //# DacMode = 0x2;
  795.  //# Cr42 = 0xb;
  796.  
  797. // ***********************************
  798. // 0x0069
  799. // ***********************************
  800. [MODE]
  801.  0x0069;
  802. [MODEINFO]
  803.     ModeAttributes      = 0x1b;
  804.     WinAAttributes      = 7;
  805.     WinBAttributes      = 0;
  806.     WinAGranularity     = 64;
  807.     WinBGranularity     = 64;
  808.     WinASize            = 64;
  809.     WinBSize            = 64;
  810.     WinABase            = 0xa0000;
  811.     WinBBase            = 0xa0000;
  812.     BytesPerScanline    = 640;
  813.     XResolution         = 640;
  814.     YResolution         = 480;
  815.     XCharSize           = 8;
  816.     YCharSize           = 16;
  817.     Colormodel          = 1;
  818.     BitsPerPixel        = 8;
  819.     NumberOfColors      = 256;
  820.     BitsRGB             = 6;
  821.     NumberOfBanks       = 1;
  822.     BankSize            = 0;
  823.     MemoryModel         = 0x4;
  824.     NumberOfImagePages  = 0;
  825.  
  826. [SETMODE]
  827.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  828.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  829.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  830.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  831.  
  832.  r0  = 0x64; r1  = 0x4f; r2  = 0x4f; r3  = 0x00; r4  = 0x52;
  833.  r5  = 0x9a; r6  = 0xf2; r7  = 0x1f; r8  = 0x00; r9  = 0x40;
  834.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  835.  r15 = 0x00; r16 = 0xe0; r17 = 0x83; r18 = 0xdf; r19 = 0x50;
  836.  r20 = 0x60; r21 = 0xdf; r22 = 0x00; r23 = 0xab; r24 = 0xff;
  837.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  838.  
  839.  outb(0x3d4,0x3b);outb(0x3d5,0x5d);
  840.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  841.  outb(0x3d4,0x54);outb(0x3d5,0xf8);
  842.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  843.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  844.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  845.  outb(0x3d4,0x67);outb(0x3d5,0x00);
  846.  
  847.  
  848. // TRIO64 internal clock synthesis
  849. // M/N value: 6133, DCLK
  850.  
  851.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  852.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  853.  
  854.  outb(0x3c4,0x12); outb(0x3c5,0x61);
  855.  outb(0x3c4,0x13); outb(0x3c5,0x33);
  856.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  857.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  858.  
  859. // Bit 2&3 set enable loading of DCLK parameters
  860.  outb(0x3c2,0xef);
  861.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  862.  
  863.  
  864. //# [SPEA]
  865.  //# SerialWord = 0x6133;
  866.  //# DacMode = 0x0;
  867.  //# Cr42 = 0xb;
  868.  
  869. // ***********************************
  870. // 0x0052
  871. // ***********************************
  872. [MODE]
  873.  0x0052;
  874. [MODEINFO]
  875.     ModeAttributes      = 0x1b;
  876.     WinAAttributes      = 7;
  877.     WinBAttributes      = 0;
  878.     WinAGranularity     = 64;
  879.     WinBGranularity     = 64;
  880.     WinASize            = 64;
  881.     WinBSize            = 64;
  882.     WinABase            = 0xa0000;
  883.     WinBBase            = 0xa0000;
  884.     BytesPerScanline    = 2560;
  885.     XResolution         = 640;
  886.     YResolution         = 400;
  887.     XCharSize           = 8;
  888.     YCharSize           = 16;
  889.     Colormodel          = 2;
  890.     BitsPerPixel        = 32;
  891.     NumberOfColors      = 16777216;
  892.     BitsRGB             = 6;
  893.     RedSize             = 8;
  894.     RedPosition         = 16;
  895.     GreenSize           = 8;
  896.     GreenPosition       = 8;
  897.     BlueSize            = 8;
  898.     BluePosition        = 0;
  899.     ReservedSize        = 8;
  900.     ReservedPosition    = 24;
  901.     NumberOfBanks       = 1;
  902.     BankSize            = 0;
  903.     MemoryModel         = 0x6;
  904.     NumberOfImagePages  = 0;
  905.  
  906. [SETMODE]
  907.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  908.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  909.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  910.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  911.  
  912.  r0  = 0x5f; r1  = 0x4f; r2  = 0x51; r3  = 0x82; r4  = 0x54;
  913.  r5  = 0x80; r6  = 0xbf; r7  = 0x1f; r8  = 0x00; r9  = 0x40;
  914.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  915.  r15 = 0x00; r16 = 0x9c; r17 = 0x8e; r18 = 0x8f; r19 = 0x40;
  916.  r20 = 0x40; r21 = 0x96; r22 = 0xb9; r23 = 0xa3; r24 = 0xff;
  917.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  918.  
  919.  outb(0x3d4,0x3b);outb(0x3d5,0x58);
  920.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  921.  outb(0x3d4,0x54);outb(0x3d5,0x08);
  922.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  923.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  924.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  925.  outb(0x3d4,0x67);outb(0x3d5,0xd0);
  926.  
  927.  
  928. // TRIO64 internal clock synthesis
  929. // M/N value: 6128, DCLK
  930.  
  931.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  932.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  933.  
  934.  outb(0x3c4,0x12); outb(0x3c5,0x61);
  935.  outb(0x3c4,0x13); outb(0x3c5,0x28);
  936.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  937.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  938.  
  939. // Bit 2&3 set enable loading of DCLK parameters
  940.  outb(0x3c2,0xef);
  941.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  942.  
  943.  
  944. //# [SPEA]
  945.  //# SerialWord = 0x6128;
  946.  //# DacMode = 0x4;
  947.  //# Cr42 = 0x0;
  948.  
  949. // ***********************************
  950. // 0x0068
  951. // ***********************************
  952. [MODE]
  953.  0x0068;
  954. [MODEINFO]
  955.     ModeAttributes      = 0x1b;
  956.     WinAAttributes      = 7;
  957.     WinBAttributes      = 0;
  958.     WinAGranularity     = 64;
  959.     WinBGranularity     = 64;
  960.     WinASize            = 64;
  961.     WinBSize            = 64;
  962.     WinABase            = 0xa0000;
  963.     WinBBase            = 0xa0000;
  964.     BytesPerScanline    = 640;
  965.     XResolution         = 640;
  966.     YResolution         = 400;
  967.     XCharSize           = 8;
  968.     YCharSize           = 16;
  969.     Colormodel          = 1;
  970.     BitsPerPixel        = 8;
  971.     NumberOfColors      = 256;
  972.     BitsRGB             = 6;
  973.     NumberOfBanks       = 1;
  974.     BankSize            = 0;
  975.     MemoryModel         = 0x4;
  976.     NumberOfImagePages  = 0;
  977.  
  978. [SETMODE]
  979.  outb(0x3d4,0x38);outb(0x3d5,0x48);      // unlock S3 registers (30..3c);
  980.  outb(0x3d4,0x39);outb(0x3d5,0xa5);      // unlock system + extension (40..5f);
  981.  outb(0x3d4,0x35);outb(0x3d5,0x00);      // unlock timing regs;
  982.  outb(0x3d4,0x11);outb(0x3d5,0x00);      // unlock timing regs;
  983.  
  984.  r0  = 0x5f; r1  = 0x4f; r2  = 0x50; r3  = 0x82; r4  = 0x54;
  985.  r5  = 0x80; r6  = 0xbf; r7  = 0x1f; r8  = 0x00; r9  = 0x40;
  986.  r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
  987.  r15 = 0x00; r16 = 0x9c; r17 = 0x8e; r18 = 0x8f; r19 = 0x50;
  988.  r20 = 0x40; r21 = 0x96; r22 = 0xb9; r23 = 0xa3; r24 = 0xff;
  989.  boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
  990.  
  991.  outb(0x3d4,0x3b);outb(0x3d5,0x58);
  992.  outb(0x3d4,0x42);outb(0x3d5,0x00);
  993.  outb(0x3d4,0x54);outb(0x3d5,0xf8);
  994.  outb(0x3d4,0x5d);outb(0x3d5,0x00);
  995.  outb(0x3d4,0x5e);outb(0x3d5,0x00);
  996.  outb(0x3d4,0x60);outb(0x3d5,0xff);
  997.  outb(0x3d4,0x67);outb(0x3d5,0x00);
  998.  
  999.  
  1000. // TRIO64 internal clock synthesis
  1001. // M/N value: 6128, DCLK
  1002.  
  1003.  outb(0x3c4,0x08); outb(0x3c5,0x06);
  1004.  outb(0x3c4,0x15); outb(0x3c5,0x00);
  1005.  
  1006.  outb(0x3c4,0x12); outb(0x3c5,0x61);
  1007.  outb(0x3c4,0x13); outb(0x3c5,0x28);
  1008.  outb(0x3c4,0x18); outb(0x3c5,0x40);
  1009.  outb(0x3c4,0x15); outb(0x3c5,0x02);
  1010.  
  1011. // Bit 2&3 set enable loading of DCLK parameters
  1012.  outb(0x3c2,0xef);
  1013.  outb(0x3c4,0x08); outb(0x3c5,0x00);
  1014.  
  1015.  
  1016. //# [SPEA]
  1017.  //# SerialWord = 0x6128;
  1018.  //# DacMode = 0x0;
  1019.  //# Cr42 = 0x0;
  1020.