home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 April (Special)
/
Chip-Special_1997-04_cd.bin
/
spea
/
mirage
/
w3m32326
/
w3m32326.exe
/
rar
/
V7I3T37.SDD
/
V7I3T37.SDD
Wrap
Text File
|
1995-02-01
|
30KB
|
947 lines
//
// Copyright (c) 1995 SPEA Software AG All Rights Reserved
//
//# @(#)v7i3t37.sdd 3.00 95/02/01 SPEA (BIOS 1.01)
//
// v7i3t37.sdd - SVPMI File for V7-MIRAGE P-32
//
// 1280x1024x4 47.7 / 44 kHz / Hz
// 1152x864x8 55.4 / 60 kHz / Hz
// 1024x768x8 35.2 / 43 kHz / Hz
// 1024x768x4 35.2 / 43 kHz / Hz
// 800x600x16 38.2 / 61 kHz / Hz
// 800x600x8 35.4 / 56 kHz / Hz
// 800x600x4 35.4 / 56 kHz / Hz
// 640x480x16 31.5 / 60 kHz / Hz
// 640x480x8 31.4 / 60 kHz / Hz
// 640x400x8 31.4 / 70 kHz / Hz
[VERSION]
1.0;
[ACTIVE_ADAPTER]
V7-MIRAGE P-32 (37 kHz Multiscan);
[ADAPTER]
V7-MIRAGE P-32 (37 kHz Multiscan);
[ADAPTER_INFO]
BoardType = VGA;
SaveSize = 100;
PaletteSize = 768;
//# MemorySize = 1024;
// ***********************************
// 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,0x42);outb(0x3d5,0x69);
outb(0x3d4,0x54);outb(0x3d5,0x10);
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
// M/N value: 2013, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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,0x42);outb(0x3d5,0x92);
outb(0x3d4,0x54);outb(0x3d5,0x28);
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
// M/N value: 222b, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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;
// ***********************************
// 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,0x42);outb(0x3d5,0x20);
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
// M/N value: 4230, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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,0x42);outb(0x3d5,0x20);
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
// M/N value: 4230, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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,0x42);outb(0x3d5,0x20);
outb(0x3d4,0x54);outb(0x3d5,0x20);
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
// M/N value: 4230, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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;
// ***********************************
// 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,0x42);outb(0x3d5,0x04);
outb(0x3d4,0x54);outb(0x3d5,0x28);
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
// M/N value: 422b, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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 = 0x7b; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x67;
r5 = 0x10; r6 = 0x6f; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8a; 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,0x74);
outb(0x3d4,0x42);outb(0x3d5,0x00);
outb(0x3d4,0x54);outb(0x3d5,0xe0);
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
// M/N value: 4863, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
outb(0x3c4,0x12); outb(0x3c5,0x48);
outb(0x3c4,0x13); outb(0x3c5,0x63);
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 = 0x4863;
//# DacMode = 0x0;
//# Cr42 = 0x46;
// ***********************************
// 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 = 0x7b; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x67;
r5 = 0x10; r6 = 0x6f; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8a; 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,0x74);
outb(0x3d4,0x42);outb(0x3d5,0x00);
outb(0x3d4,0x54);outb(0x3d5,0xe0);
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
// M/N value: 4863, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
outb(0x3c4,0x12); outb(0x3c5,0x48);
outb(0x3c4,0x13); outb(0x3c5,0x63);
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 = 0x4863;
//# DacMode = 0x0;
//# Cr42 = 0x46;
// ***********************************
// 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 = 0x7b; r1 = 0x63; r2 = 0x63; r3 = 0x80; r4 = 0x69;
r5 = 0x12; r6 = 0x6f; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0x58; r17 = 0x8a; 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,0x74);
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
// M/N value: 4863, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
outb(0x3c4,0x12); outb(0x3c5,0x48);
outb(0x3c4,0x13); outb(0x3c5,0x63);
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 = 0x4863;
//# DacMode = 0x0;
//# Cr42 = 0x46;
// ***********************************
// 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 = 0xc2; r1 = 0x9f; r2 = 0xa0; r3 = 0x84; r4 = 0xa3;
r5 = 0x1b; r6 = 0x0c; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
r15 = 0x00; r16 = 0xe9; r17 = 0x8b; r18 = 0xdf; r19 = 0xa0;
r20 = 0x60; r21 = 0xe7; r22 = 0x04; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0xbb);
outb(0x3d4,0x42);outb(0x3d5,0x00);
outb(0x3d4,0x54);outb(0x3d5,0x70);
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
// M/N value: 6128, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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 = 0x2;
//# Cr42 = 0x0;
// ***********************************
// 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 = 0x02; r4 = 0x53;
r5 = 0x9f; 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 = 0xe7; r22 = 0x04; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x58);
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
// M/N value: 6128, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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 = 0x40;
// ***********************************
// 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 = 0x02; r4 = 0x53;
r5 = 0x9f; 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 = 0xe7; r22 = 0x04; r23 = 0xab; r24 = 0xff;
boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
outb(0x3d4,0x3b);outb(0x3d5,0x58);
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
// M/N value: 6128, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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 = 0x40;
// ***********************************
// 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,0x42);outb(0x3d5,0x00);
outb(0x3d4,0x54);outb(0x3d5,0x50);
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
// M/N value: 6128, DCLK
outb(0x3c4,0x08); outb(0x3c5,0x06);
outb(0x3c4,0x15); outb(0x3c5,0x00);
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 = 0x40;