home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 April (Special)
/
Chip-Special_1997-04_cd.bin
/
spea
/
mirage
/
w3mip26
/
w3mip26a.exe
/
rar
/
V7I6T68.SDD
/
V7I6T68.SDD
Wrap
Text File
|
1995-09-07
|
46KB
|
1,494 lines
//
// Copyright (c) 1995 SPEA Software AG All Rights Reserved
//
//# @(#)v7i6t68.sdd 3.00 95/06/02 SPEA (BIOS 5.03)
//
// v7i6t68.sdd - SVPMI File for V7-MIRAGE P-64 2MB
//
// 1600x1200x8 62.1 / 49 kHz / Hz
// 1280x1024x8 63.8 / 60 kHz / Hz
// 1280x1024x4 63.8 / 60 kHz / Hz
// 1152x864x8 55.4 / 60 kHz / Hz
// 1024x768x16 60.5 / 75 kHz / Hz
// 1024x768x8 60.3 / 75 kHz / Hz
// 1024x768x4 60.3 / 75 kHz / Hz
// 800x600x32 46.9 / 75 kHz / Hz
// 800x600x16 46.8 / 75 kHz / Hz
// 800x600x8 46.9 / 75 kHz / Hz
// 800x600x4 46.9 / 75 kHz / Hz
// 640x480x32 37.7 / 75 kHz / Hz
// 640x480x16 37.3 / 75 kHz / Hz
// 640x480x8 37.7 / 75 kHz / Hz
// 640x400x32 31.4 / 70 kHz / Hz
// 640x400x8 31.4 / 70 kHz / Hz
[VERSION]
1.0;
[ACTIVE_ADAPTER]
V7-MIRAGE P-64 2MB (bis 68 kHz Multiscan);
[ADAPTER]
V7-MIRAGE P-64 2MB (bis 68 kHz Multiscan);
[ADAPTER_INFO]
BoardType = VGA;
SaveSize = 100;
PaletteSize = 768;
//# MemorySize = 2048;
// ***********************************
// 0x007C
// ***********************************
[MODE]
0x007C;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1600;
XResolution = 1600;
YResolution = 1200;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x01; r1 = 0xc7; r2 = 0xc8; r3 = 0x81; r4 = 0xd3;
r5 = 0x13; r6 = 0x74; r7 = 0xe0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x00; r18 = 0x57; r19 = 0xc8;
r20 = 0x00; r21 = 0x58; r22 = 0x00; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xfa);
outb(0x3d4,0x3c);outb(0x3d5,0x80);
outb(0x3d4,0x42);outb(0x3d5,0x20);
outb(0x3d4,0x54);outb(0x3d5,0x00);
outb(0x3d4,0x5d);outb(0x3d5,0x01);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x10);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 246b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x24);
outb(0x3c4,0x13); outb(0x3c5,0x6b);
outb(0x3c4,0x18); outb(0x3c5,0xc0);
outb(0x3c4,0x15); outb(0x3c5,0x12);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x246b;
//# DacMode = 0x5;
//# Cr42 = 0x29;
// ***********************************
// 0x006F
// ***********************************
[MODE]
0x006F;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1280;
XResolution = 1280;
YResolution = 1024;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xd7; r1 = 0x9f; r2 = 0xa0; r3 = 0x1a; r4 = 0xa5;
r5 = 0x1d; r6 = 0x1e; r7 = 0x52; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x03; r17 = 0x86; r18 = 0xff; r19 = 0xa0;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xd0);
outb(0x3d4,0x3c);outb(0x3d5,0x6b);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0x70);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x55);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x10);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 212d, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x21);
outb(0x3c4,0x13); outb(0x3c5,0x2d);
outb(0x3c4,0x18); outb(0x3c5,0xc0);
outb(0x3c4,0x15); outb(0x3c5,0x12);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x212d;
//# DacMode = 0x5;
//# Cr42 = 0xc;
// ***********************************
// 0x004F
// ***********************************
[MODE]
0x004F;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 1280;
YResolution = 1024;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 4;
NumberOfColors = 16;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xd7; r1 = 0x9f; r2 = 0x9f; r3 = 0x1a; r4 = 0xa7;
r5 = 0x1f; r6 = 0x1e; r7 = 0x52; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x03; r17 = 0x86; r18 = 0xff; r19 = 0x80;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xd0);
outb(0x3d4,0x3c);outb(0x3d5,0x6b);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x55);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x10);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 212d, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x21);
outb(0x3c4,0x13); outb(0x3c5,0x2d);
outb(0x3c4,0x18); outb(0x3c5,0xc0);
outb(0x3c4,0x15); outb(0x3c5,0x12);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x212d;
//# DacMode = 0x5;
//# Cr42 = 0xc;
// ***********************************
// 0x004E
// ***********************************
[MODE]
0x004E;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1152;
XResolution = 1152;
YResolution = 864;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xb1; r1 = 0x8f; r2 = 0x90; r3 = 0x14; r4 = 0x93;
r5 = 0x9f; r6 = 0x9a; r7 = 0xff; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x70; r17 = 0x83; r18 = 0x5f; r19 = 0x90;
r20 = 0x60; r21 = 0x6f; r22 = 0x8d; r23 = 0xeb; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xaa);
outb(0x3d4,0x3c);outb(0x3d5,0x58);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0xb0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 222b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x22);
outb(0x3c4,0x13); outb(0x3c5,0x2b);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x222b;
//# DacMode = 0x0;
//# Cr42 = 0xa;
// ***********************************
// 0x0077
// ***********************************
[MODE]
0x0077;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 2048;
XResolution = 1024;
YResolution = 768;
XCharSize = 8;
YCharSize = 16;
Colormodel = 2;
BitsPerPixel = 16;
NumberOfColors = 65536;
BitsRGB = 6;
RedSize = 5;
RedPosition = 11;
GreenSize = 6;
GreenPosition = 5;
BlueSize = 5;
BluePosition = 0;
ReservedSize = 0;
ReservedPosition = 0;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x48; r1 = 0xff; r2 = 0x00; r3 = 0x08; r4 = 0x05;
r5 = 0x1d; r6 = 0x1f; r7 = 0xfd; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x84; r18 = 0xff; r19 = 0x00;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xeb; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x41);
outb(0x3d4,0x3c);outb(0x3d5,0xa4);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0x28);
outb(0x3d4,0x5d);outb(0x3d5,0x5d);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x50);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 222b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x22);
outb(0x3c4,0x13); outb(0x3c5,0x2b);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x222b;
//# DacMode = 0x2;
//# Cr42 = 0xa;
// ***********************************
// 0x004D
// ***********************************
[MODE]
0x004D;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 1024;
YResolution = 768;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xa2; r1 = 0x7f; r2 = 0x7f; r3 = 0x83; r4 = 0x82;
r5 = 0x8e; r6 = 0x1f; r7 = 0xfd; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x84; r18 = 0xff; r19 = 0x80;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xeb; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x9b);
outb(0x3d4,0x3c);outb(0x3d5,0x51);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0xc0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 222b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x22);
outb(0x3c4,0x13); outb(0x3c5,0x2b);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x222b;
//# DacMode = 0x0;
//# Cr42 = 0xa;
// ***********************************
// 0x006D
// ***********************************
[MODE]
0x006D;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 1024;
YResolution = 768;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xa2; r1 = 0x7f; r2 = 0x7f; r3 = 0x83; r4 = 0x82;
r5 = 0x8e; r6 = 0x1f; r7 = 0xfd; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x84; r18 = 0xff; r19 = 0x80;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xeb; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x9b);
outb(0x3d4,0x3c);outb(0x3d5,0x51);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0xc0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x01);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 222b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x22);
outb(0x3c4,0x13); outb(0x3c5,0x2b);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x222b;
//# DacMode = 0x0;
//# Cr42 = 0xa;
// ***********************************
// 0x004C
// ***********************************
[MODE]
0x004C;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 1024;
YResolution = 768;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 4;
NumberOfColors = 16;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xa2; r1 = 0x7f; r2 = 0x7f; r3 = 0x83; r4 = 0x84;
r5 = 0x90; r6 = 0x1f; r7 = 0xfd; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x84; r18 = 0xff; r19 = 0x80;
r20 = 0x00; r21 = 0x00; r22 = 0x00; r23 = 0xeb; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x9b);
outb(0x3d4,0x3c);outb(0x3d5,0x51);
outb(0x3d4,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0xc0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 222b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x22);
outb(0x3c4,0x13); outb(0x3c5,0x2b);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x222b;
//# DacMode = 0x0;
//# Cr42 = 0xa;
// ***********************************
// 0x0075
// ***********************************
[MODE]
0x0075;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 3200;
XResolution = 800;
YResolution = 600;
XCharSize = 8;
YCharSize = 8;
Colormodel = 2;
BitsPerPixel = 32;
NumberOfColors = 16777216;
BitsRGB = 6;
RedSize = 8;
RedPosition = 16;
GreenSize = 8;
GreenPosition = 8;
BlueSize = 8;
BluePosition = 0;
ReservedSize = 8;
ReservedPosition = 24;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x7f; r1 = 0x63; r2 = 0x64; r3 = 0x00; r4 = 0x66;
r5 = 0x10; r6 = 0x6f; r7 = 0xe0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8b; r18 = 0x57; r19 = 0x90;
r20 = 0x00; r21 = 0x57; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x78);
outb(0x3d4,0x3c);outb(0x3d5,0x3f);
outb(0x3d4,0x42);outb(0x3d5,0x4d);
outb(0x3d4,0x54);outb(0x3d5,0x18);
outb(0x3d4,0x5d);outb(0x3d5,0x08);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0xd0);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 4451, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x44);
outb(0x3c4,0x13); outb(0x3c5,0x51);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x4451;
//# DacMode = 0x4;
//# Cr42 = 0x10;
// ***********************************
// 0x0074
// ***********************************
[MODE]
0x0074;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1600;
XResolution = 800;
YResolution = 600;
XCharSize = 8;
YCharSize = 8;
Colormodel = 2;
BitsPerPixel = 16;
NumberOfColors = 65536;
BitsRGB = 6;
RedSize = 5;
RedPosition = 11;
GreenSize = 6;
GreenPosition = 5;
BlueSize = 5;
BluePosition = 0;
ReservedSize = 0;
ReservedPosition = 0;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xff; r1 = 0xc7; r2 = 0xc8; r3 = 0x02; r4 = 0xd4;
r5 = 0x12; r6 = 0x7e; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x5f; r17 = 0x89; r18 = 0x57; r19 = 0xc8;
r20 = 0x00; r21 = 0x57; r22 = 0x7e; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xfd);
outb(0x3d4,0x3c);outb(0x3d5,0x82);
outb(0x3d4,0x42);outb(0x3d5,0x4d);
outb(0x3d4,0x54);outb(0x3d5,0x38);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x50);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 4574, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x45);
outb(0x3c4,0x13); outb(0x3c5,0x74);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x4574;
//# DacMode = 0x2;
//# Cr42 = 0x10;
// ***********************************
// 0x004B
// ***********************************
[MODE]
0x004B;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 800;
YResolution = 600;
XCharSize = 8;
YCharSize = 8;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x88; r1 = 0x63; r2 = 0x64; r3 = 0x8b; r4 = 0x6d;
r5 = 0x01; r6 = 0x7e; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x5f; r17 = 0x89; r18 = 0x57; r19 = 0x80;
r20 = 0x00; r21 = 0x57; r22 = 0x7e; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x83);
outb(0x3d4,0x3c);outb(0x3d5,0x3f);
outb(0x3d4,0x42);outb(0x3d5,0x4d);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 4359, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x43);
outb(0x3c4,0x13); outb(0x3c5,0x59);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x4359;
//# DacMode = 0x0;
//# Cr42 = 0x10;
// ***********************************
// 0x006B
// ***********************************
[MODE]
0x006B;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 800;
XResolution = 800;
YResolution = 600;
XCharSize = 8;
YCharSize = 8;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x88; r1 = 0x63; r2 = 0x64; r3 = 0x8b; r4 = 0x6d;
r5 = 0x01; r6 = 0x7e; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x5f; r17 = 0x89; r18 = 0x57; r19 = 0x64;
r20 = 0x00; r21 = 0x57; r22 = 0x7e; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x83);
outb(0x3d4,0x3c);outb(0x3d5,0x3f);
outb(0x3d4,0x42);outb(0x3d5,0x4d);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 4359, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x43);
outb(0x3c4,0x13); outb(0x3c5,0x59);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x4359;
//# DacMode = 0x0;
//# Cr42 = 0x10;
// ***********************************
// 0x004A
// ***********************************
[MODE]
0x004A;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 800;
YResolution = 600;
XCharSize = 8;
YCharSize = 8;
Colormodel = 1;
BitsPerPixel = 4;
NumberOfColors = 16;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x88; r1 = 0x63; r2 = 0x64; r3 = 0x8b; r4 = 0x6d;
r5 = 0x01; r6 = 0x7e; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x5f; r17 = 0x89; r18 = 0x57; r19 = 0x80;
r20 = 0x00; r21 = 0x57; r22 = 0x7e; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x83);
outb(0x3d4,0x3c);outb(0x3d5,0x3f);
outb(0x3d4,0x42);outb(0x3d5,0x4d);
outb(0x3d4,0x54);outb(0x3d5,0x60);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 4359, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x43);
outb(0x3c4,0x13); outb(0x3c5,0x59);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0x2f);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x4359;
//# DacMode = 0x0;
//# Cr42 = 0x10;
// ***********************************
// 0x0072
// ***********************************
[MODE]
0x0072;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 2560;
XResolution = 640;
YResolution = 480;
XCharSize = 8;
YCharSize = 16;
Colormodel = 2;
BitsPerPixel = 32;
NumberOfColors = 16777216;
BitsRGB = 6;
RedSize = 8;
RedPosition = 16;
GreenSize = 8;
GreenPosition = 8;
BlueSize = 8;
BluePosition = 0;
ReservedSize = 8;
ReservedPosition = 24;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x5f; r1 = 0x4f; r2 = 0x50; r3 = 0x82; r4 = 0x55;
r5 = 0x98; r6 = 0x0b; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xea; r17 = 0x8c; r18 = 0xdf; r19 = 0x40;
r20 = 0x60; r21 = 0xdf; r22 = 0x0b; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5d);
outb(0x3d4,0x3c);outb(0x3d5,0x32);
outb(0x3d4,0x42);outb(0x3d5,0x49);
outb(0x3d4,0x54);outb(0x3d5,0x38);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0xd0);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 497f, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x49);
outb(0x3c4,0x13); outb(0x3c5,0x7f);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x497f;
//# DacMode = 0x4;
//# Cr42 = 0xb;
// ***********************************
// 0x0071
// ***********************************
[MODE]
0x0071;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1280;
XResolution = 640;
YResolution = 480;
XCharSize = 8;
YCharSize = 16;
Colormodel = 2;
BitsPerPixel = 16;
NumberOfColors = 65536;
BitsRGB = 6;
RedSize = 5;
RedPosition = 11;
GreenSize = 6;
GreenPosition = 5;
BlueSize = 5;
BluePosition = 0;
ReservedSize = 0;
ReservedPosition = 0;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0xc3; r1 = 0x9f; r2 = 0xa0; r3 = 0x86; r4 = 0xad;
r5 = 0x1c; r6 = 0x0b; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xea; r17 = 0x8c; r18 = 0xdf; r19 = 0xa0;
r20 = 0x60; r21 = 0xdf; r22 = 0x0b; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xbe);
outb(0x3d4,0x3c);outb(0x3d5,0x67);
outb(0x3d4,0x42);outb(0x3d5,0x49);
outb(0x3d4,0x54);outb(0x3d5,0xc0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x50);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 497f, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x49);
outb(0x3c4,0x13); outb(0x3c5,0x7f);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x497f;
//# DacMode = 0x2;
//# Cr42 = 0xb;
// ***********************************
// 0x0049
// ***********************************
[MODE]
0x0049;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 1024;
XResolution = 640;
YResolution = 480;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x5f; r1 = 0x4f; r2 = 0x50; r3 = 0x82; r4 = 0x55;
r5 = 0x98; r6 = 0x0b; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xea; r17 = 0x8c; r18 = 0xdf; r19 = 0x80;
r20 = 0x60; r21 = 0xdf; r22 = 0x0b; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5d);
outb(0x3d4,0x3c);outb(0x3d5,0x32);
outb(0x3d4,0x42);outb(0x3d5,0x49);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 497f, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x49);
outb(0x3c4,0x13); outb(0x3c5,0x7f);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x497f;
//# DacMode = 0x0;
//# Cr42 = 0xb;
// ***********************************
// 0x0069
// ***********************************
[MODE]
0x0069;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 640;
XResolution = 640;
YResolution = 480;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x5f; r1 = 0x4f; r2 = 0x50; r3 = 0x82; r4 = 0x55;
r5 = 0x98; r6 = 0x0b; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xea; r17 = 0x8c; r18 = 0xdf; r19 = 0x50;
r20 = 0x60; r21 = 0xdf; r22 = 0x0b; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5d);
outb(0x3d4,0x3c);outb(0x3d5,0x32);
outb(0x3d4,0x42);outb(0x3d5,0x49);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 497f, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x49);
outb(0x3c4,0x13); outb(0x3c5,0x7f);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x497f;
//# DacMode = 0x0;
//# Cr42 = 0xb;
// ***********************************
// 0x0052
// ***********************************
[MODE]
0x0052;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 2560;
XResolution = 640;
YResolution = 400;
XCharSize = 8;
YCharSize = 16;
Colormodel = 2;
BitsPerPixel = 32;
NumberOfColors = 16777216;
BitsRGB = 6;
RedSize = 8;
RedPosition = 16;
GreenSize = 8;
GreenPosition = 8;
BlueSize = 8;
BluePosition = 0;
ReservedSize = 8;
ReservedPosition = 24;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x6;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x5f; r1 = 0x4f; r2 = 0x51; r3 = 0x82; r4 = 0x54;
r5 = 0x80; r6 = 0xbf; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x9c; r17 = 0x8e; r18 = 0x8f; r19 = 0x40;
r20 = 0x40; r21 = 0x96; r22 = 0xb9; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x58);
outb(0x3d4,0x3c);outb(0x3d5,0x2f);
outb(0x3d4,0x42);outb(0x3d5,0x04);
outb(0x3d4,0x54);outb(0x3d5,0x08);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0xd0);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 6128, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x28);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x6128;
//# DacMode = 0x4;
//# Cr42 = 0x0;
// ***********************************
// 0x0068
// ***********************************
[MODE]
0x0068;
[MODEINFO]
ModeAttributes = 0x1b;
WinAAttributes = 7;
WinBAttributes = 0;
WinAGranularity = 64;
WinBGranularity = 64;
WinASize = 64;
WinBSize = 64;
WinABase = 0xa0000;
WinBBase = 0xa0000;
BytesPerScanline = 640;
XResolution = 640;
YResolution = 400;
XCharSize = 8;
YCharSize = 16;
Colormodel = 1;
BitsPerPixel = 8;
NumberOfColors = 256;
BitsRGB = 6;
NumberOfBanks = 1;
BankSize = 0;
MemoryModel = 0x4;
NumberOfImagePages = 0;
[SETMODE]
outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
r0 = 0x5f; r1 = 0x4f; r2 = 0x50; r3 = 0x82; r4 = 0x54;
r5 = 0x80; r6 = 0xbf; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x9c; r17 = 0x8e; r18 = 0x8f; r19 = 0x50;
r20 = 0x40; r21 = 0x96; r22 = 0xb9; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x58);
outb(0x3d4,0x3c);outb(0x3d5,0x2f);
outb(0x3d4,0x42);outb(0x3d5,0x00);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x00);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 6128, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x28);
outb(0x3c4,0x18); outb(0x3c5,0x40);
outb(0x3c4,0x15); outb(0x3c5,0x02);
// Bit 2&3 set enable loading of DCLK parameters
outb(0x3c2,0xef);
outb(0x3c4,0x08); outb(0x3c5,0x00);
//# [SPEA]
//# SerialWord = 0x6128;
//# DacMode = 0x0;
//# Cr42 = 0x0;