home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 April (Special)
/
Chip-Special_1997-04_cd.bin
/
spea
/
mirage
/
w3mip26
/
w3mip26a.exe
/
rar
/
V7I6T38.SDD
/
V7I6T38.SDD
Wrap
Text File
|
1995-09-07
|
46KB
|
1,494 lines
//
// Copyright (c) 1995 SPEA Software AG All Rights Reserved
//
//# @(#)v7i6t38.sdd 3.00 95/06/02 SPEA (BIOS 5.03)
//
// v7i6t38.sdd - SVPMI File for V7-MIRAGE P-64 2MB
//
// 1600x1200x8 62.1 / 49 kHz / Hz
// 1280x1024x8 47.7 / 44 kHz / Hz
// 1280x1024x4 47.7 / 44 kHz / Hz
// 1152x864x8 55.4 / 60 kHz / Hz
// 1024x768x16 35.3 / 43 kHz / Hz
// 1024x768x8 35.2 / 43 kHz / Hz
// 1024x768x4 35.2 / 43 kHz / Hz
// 800x600x32 38.2 / 61 kHz / Hz
// 800x600x16 38.2 / 61 kHz / Hz
// 800x600x8 38.2 / 61 kHz / Hz
// 800x600x4 38.2 / 61 kHz / Hz
// 640x480x32 38.1 / 73 kHz / Hz
// 640x480x16 37.9 / 73 kHz / Hz
// 640x480x8 38.1 / 73 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 38 kHz Multiscan);
[ADAPTER]
V7-MIRAGE P-64 2MB (bis 38 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 = 0xc0; r1 = 0x9f; r2 = 0xa0; r3 = 0x83; r4 = 0xa4;
r5 = 0x19; r6 = 0x18; r7 = 0xb2; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x85; r18 = 0xff; r19 = 0xa0;
r20 = 0x00; r21 = 0x00; r22 = 0x18; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xb9);
outb(0x3d4,0x3c);outb(0x3d5,0x60);
outb(0x3d4,0x42);outb(0x3d5,0x69);
outb(0x3d4,0x54);outb(0x3d5,0xd0);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0xff);
outb(0x3d4,0x67);outb(0x3d5,0x11);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 2013, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x20);
outb(0x3c4,0x13); outb(0x3c5,0x13);
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 = 0x2013;
//# DacMode = 0x5;
//# Cr42 = 0x2e;
// ***********************************
// 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 = 0xc0; r1 = 0x9f; r2 = 0x9f; r3 = 0x83; r4 = 0xa6;
r5 = 0x1b; r6 = 0x18; r7 = 0xb2; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x01; r17 = 0x85; r18 = 0xff; r19 = 0x80;
r20 = 0x00; r21 = 0x00; r22 = 0x18; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xb9);
outb(0x3d4,0x3c);outb(0x3d5,0x60);
outb(0x3d4,0x42);outb(0x3d5,0x69);
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,0x11);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 2013, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x20);
outb(0x3c4,0x13); outb(0x3c5,0x13);
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 = 0x2013;
//# DacMode = 0x5;
//# Cr42 = 0x2e;
// ***********************************
// 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 = 0x38; r1 = 0xff; r2 = 0x00; r3 = 0x00; r4 = 0x03;
r5 = 0x0f; r6 = 0x97; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x80; r17 = 0x84; r18 = 0x7f; r19 = 0x00;
r20 = 0x00; r21 = 0x80; r22 = 0x00; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x31);
outb(0x3d4,0x3c);outb(0x3d5,0x9c);
outb(0x3d4,0x42);outb(0x3d5,0x20);
outb(0x3d4,0x54);outb(0x3d5,0xa0);
outb(0x3d4,0x5d);outb(0x3d5,0x75);
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: 4230, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
outb(0x3c4,0x13); outb(0x3c5,0x30);
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 = 0x4230;
//# DacMode = 0x2;
//# Cr42 = 0x27;
// ***********************************
// 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 = 0x9a; r1 = 0x7f; r2 = 0x7f; r3 = 0x9d; r4 = 0x81;
r5 = 0x17; r6 = 0x97; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x80; r17 = 0x84; r18 = 0x7f; r19 = 0x80;
r20 = 0x00; r21 = 0x80; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x93);
outb(0x3d4,0x3c);outb(0x3d5,0x4d);
outb(0x3d4,0x42);outb(0x3d5,0x20);
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: 4230, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
outb(0x3c4,0x13); outb(0x3c5,0x30);
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 = 0x4230;
//# DacMode = 0x0;
//# Cr42 = 0x27;
// ***********************************
// 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 = 0x9a; r1 = 0x7f; r2 = 0x7f; r3 = 0x9d; r4 = 0x81;
r5 = 0x17; r6 = 0x97; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x80; r17 = 0x84; r18 = 0x7f; r19 = 0x80;
r20 = 0x00; r21 = 0x80; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x93);
outb(0x3d4,0x3c);outb(0x3d5,0x4d);
outb(0x3d4,0x42);outb(0x3d5,0x20);
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: 4230, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
outb(0x3c4,0x13); outb(0x3c5,0x30);
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 = 0x4230;
//# DacMode = 0x0;
//# Cr42 = 0x27;
// ***********************************
// 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 = 0x9a; r1 = 0x7f; r2 = 0x7f; r3 = 0x9d; r4 = 0x83;
r5 = 0x19; r6 = 0x97; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x80; r17 = 0x84; r18 = 0x7f; r19 = 0x80;
r20 = 0x00; r21 = 0x80; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x93);
outb(0x3d4,0x3c);outb(0x3d5,0x4d);
outb(0x3d4,0x42);outb(0x3d5,0x20);
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: 4230, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
outb(0x3c4,0x13); outb(0x3c5,0x30);
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 = 0x4230;
//# DacMode = 0x0;
//# Cr42 = 0x27;
// ***********************************
// 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 = 0x80; r4 = 0x69;
r5 = 0x19; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8c; 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,0x04);
outb(0x3d4,0x54);outb(0x3d5,0x38);
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: 422b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
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 = 0x422b;
//# DacMode = 0x4;
//# Cr42 = 0x2;
// ***********************************
// 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 = 0x03; r1 = 0xc7; r2 = 0xc8; r3 = 0x06; r4 = 0xd3;
r5 = 0x13; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0xc8;
r20 = 0x00; r21 = 0x57; r22 = 0x00; r23 = 0xa3; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xfc);
outb(0x3d4,0x3c);outb(0x3d5,0x81);
outb(0x3d4,0x42);outb(0x3d5,0x04);
outb(0x3d4,0x54);outb(0x3d5,0xc0);
outb(0x3d4,0x5d);outb(0x3d5,0x01);
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: 422b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
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 = 0x422b;
//# DacMode = 0x2;
//# Cr42 = 0x2;
// ***********************************
// 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 = 0x7f; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x69;
r5 = 0x19; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0x80;
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,0x04);
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: 422b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
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 = 0x422b;
//# DacMode = 0x0;
//# Cr42 = 0x2;
// ***********************************
// 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 = 0x7f; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x69;
r5 = 0x19; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0x64;
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,0x04);
outb(0x3d4,0x54);outb(0x3d5,0xf8);
outb(0x3d4,0x5d);outb(0x3d5,0x08);
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: 422b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
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 = 0x422b;
//# DacMode = 0x0;
//# Cr42 = 0x2;
// ***********************************
// 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 = 0x7f; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x6b;
r5 = 0x1b; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0x80;
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,0x04);
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: 422b, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x42);
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 = 0x422b;
//# DacMode = 0x0;
//# Cr42 = 0x2;
// ***********************************
// 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 = 0x63; r1 = 0x4f; r2 = 0x50; r3 = 0x00; r4 = 0x53;
r5 = 0x18; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0x40;
r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5c);
outb(0x3d4,0x3c);outb(0x3d5,0x31);
outb(0x3d4,0x42);outb(0x3d5,0x04);
outb(0x3d4,0x54);outb(0x3d5,0x58);
outb(0x3d4,0x5d);outb(0x3d5,0x00);
outb(0x3d4,0x5e);outb(0x3d5,0x00);
outb(0x3d4,0x60);outb(0x3d5,0x19);
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: 6133, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x33);
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 = 0x6133;
//# 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 = 0xcc; r1 = 0x9f; r2 = 0xa0; r3 = 0x0f; r4 = 0xa7;
r5 = 0x11; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0xa0;
r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xc5);
outb(0x3d4,0x3c);outb(0x3d5,0x66);
outb(0x3d4,0x42);outb(0x3d5,0x04);
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,0x50);
// TRIO64 internal clock synthesis
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
// M/N value: 6133, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x33);
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 = 0x6133;
//# 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 = 0x63; r1 = 0x4f; r2 = 0x4f; r3 = 0x00; r4 = 0x53;
r5 = 0x18; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0x80;
r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5c);
outb(0x3d4,0x3c);outb(0x3d5,0x31);
outb(0x3d4,0x42);outb(0x3d5,0x04);
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: 6133, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x33);
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 = 0x6133;
//# 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 = 0x63; r1 = 0x4f; r2 = 0x4f; r3 = 0x00; r4 = 0x53;
r5 = 0x18; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0x50;
r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x5c);
outb(0x3d4,0x3c);outb(0x3d5,0x31);
outb(0x3d4,0x42);outb(0x3d5,0x04);
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: 6133, DCLK
outb(0x3c4,0x12); outb(0x3c5,0x61);
outb(0x3c4,0x13); outb(0x3c5,0x33);
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 = 0x6133;
//# 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;