home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-14 | 53.5 KB | 1,545 lines |
- //
- // Copyright (c) 1995 SPEA Software AG All Rights Reserved
- //
- //# @(#)figlv115.sdd 3.00 95/06/08 SPEA (BIOS 1.01)
- //
- // figlv115.sdd - SVPMI File for SPEA FIRE GL
- //
- // 1600x1200x16 104.9/ 82 kHz / Hz
- // 1600x1200x8 104.9/ 82 kHz / Hz
- // 1280x1024x32 79.1 / 75 kHz / Hz
- // 1280x1024x16 105.7/100 kHz / Hz
- // 1280x1024x8 105.7/100 kHz / Hz
- // 1152x864x8 109.7/120 kHz / Hz
- // 1024x768x32 96.4 /120 kHz / Hz
- // 1024x768x16 113.4/140 kHz / Hz
- // 1024x768x8 113.4/140 kHz / Hz
- // 800x600x32 101.6/160 kHz / Hz
- // 800x600x16 101.6/160 kHz / Hz
- // 800x600x8 101.6/160 kHz / Hz
- // 640x480x32 84.0 /160 kHz / Hz
- // 640x480x16 84.0 /160 kHz / Hz
- // 640x480x8 84.0 /160 kHz / Hz
- // 640x400x8 31.4 / 70 kHz / Hz
-
- [VERSION]
- 1.0;
-
- [ACTIVE_ADAPTER]
- SPEA FIRE GL (bis 115 kHz Multiscan);
-
- [ADAPTER]
- SPEA FIRE GL (bis 115 kHz Multiscan);
-
- [ADAPTER_INFO]
- BoardType = VGA;
- SaveSize = 100;
- PaletteSize = 768;
- //# MemorySize = 4096;
-
- // ***********************************
- // 0x007E
- // ***********************************
- [MODE]
- 0x007E;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 3200;
- XResolution = 1600;
- YResolution = 1200;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- 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 = 0x7e; r1 = 0x64; r2 = 0x62; r3 = 0x01; r4 = 0x67;
- r5 = 0x11; r6 = 0xe8; r7 = 0x00; r8 = 0x00; r9 = 0x00;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xc0; r17 = 0x8c; r18 = 0xaf; r19 = 0x90;
- r20 = 0x00; r21 = 0xaf; r22 = 0x00; r23 = 0xa3; r24 = 0xaf;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x77);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x57);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x14);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: a8 11 b0, DCLK = 219.93 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xa8);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x11);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xa811b0;
- //# DacMode = 0x5;
- //# Cr42 = 0x52;
-
- // ***********************************
- // 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 = 0x7e; r1 = 0x64; r2 = 0x62; r3 = 0x01; r4 = 0x67;
- r5 = 0x11; r6 = 0xe8; r7 = 0x00; r8 = 0x00; r9 = 0x00;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xc0; r17 = 0x8c; r18 = 0xaf; r19 = 0xc8;
- r20 = 0x00; r21 = 0xaf; r22 = 0x00; r23 = 0xa3; r24 = 0xaf;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x77);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x57);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x12);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: a8 11 b0, DCLK = 219.93 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xa8);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x11);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xa8110;
- //# DacMode = 0x2;
- //# Cr42 = 0x52;
-
- // ***********************************
- // 0x007B
- // ***********************************
- [MODE]
- 0x007B;
- [MODEINFO]
- ModeAttributes = 0x1a;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 5120;
- XResolution = 1280;
- YResolution = 1024;
- 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 = 0x65; r1 = 0x4f; r2 = 0x50; r3 = 0x88; r4 = 0x52;
- r5 = 0x99; r6 = 0x22; r7 = 0x4a; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0x80;
- r20 = 0x00; r21 = 0xff; r22 = 0x22; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x5E);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x51);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x01);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ea 26 b0, DCLK = 134.47 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xea);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x26);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xF9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xea26b0;
- //# DacMode = 0x7;
- //# Cr42 = 0x4e;
-
- // ***********************************
- // 0x007A
- // ***********************************
- [MODE]
- 0x007A;
- [MODEINFO]
- ModeAttributes = 0x1a;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 2560;
- XResolution = 1280;
- YResolution = 1024;
- 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 = 0x65; r1 = 0x4f; r2 = 0x50; r3 = 0x88; r4 = 0x52;
- r5 = 0x99; r6 = 0x22; r7 = 0x4a; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0x40;
- r20 = 0x00; r21 = 0xff; r22 = 0x22; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x5E);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x51);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ea 1d f0, DCLK = 179.29 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xea);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x1d);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x70);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xea1df0;
- //# DacMode = 0x5;
- //# Cr42 = 0x4e;
-
- // ***********************************
- // 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 = 0x65; r1 = 0x4f; r2 = 0x50; r3 = 0x88; r4 = 0x52;
- r5 = 0x99; r6 = 0x22; r7 = 0x4a; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0xa0;
- r20 = 0x00; r21 = 0xff; r22 = 0x22; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x5E);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x51);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ea 1d b0, DCLK = 179.29 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xea);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x1d);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xea1db0;
- //# DacMode = 0x2;
- //# Cr42 = 0x4e;
-
- // ***********************************
- // 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 = 0x56; r1 = 0x47; r2 = 0x48; r3 = 0x19; r4 = 0x4c;
- r5 = 0x13; r6 = 0x94; r7 = 0xff; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x65; r17 = 0x88; r18 = 0x5f; r19 = 0x90;
- r20 = 0x00; r21 = 0x5f; r22 = 0x94; r23 = 0xeb; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x4e);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 21 b0, DCLK = 159.37 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x21);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa21b0;
- //# DacMode = 0x2;
- //# Cr42 = 0x8c;
-
- // ***********************************
- // 0x0078
- // ***********************************
- [MODE]
- 0x0078;
- [MODEINFO]
- ModeAttributes = 0x1a;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 4096;
- XResolution = 1024;
- YResolution = 768;
- 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 = 0x51; r1 = 0x3f; r2 = 0x40; r3 = 0x14; r4 = 0x43;
- r5 = 0x0a; r6 = 0x21; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0x00;
- r20 = 0x00; r21 = 0xff; r22 = 0x21; r23 = 0xeb; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ee 2b b0, DCLK = 132.63 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xee);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x2b);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xee2bb0;
- //# DacMode = 0x7;
- //# Cr42 = 0x49;
-
- // ***********************************
- // 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 = 0x51; r1 = 0x3f; r2 = 0x40; r3 = 0x14; r4 = 0x43;
- r5 = 0x0a; r6 = 0x21; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0x00;
- r20 = 0x00; r21 = 0xff; r22 = 0x21; r23 = 0xeb; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 22 b0, DCLK = 154.39 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x22);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- //outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa22b0;
- //# DacMode = 0x5;
- //# Cr42 = 0x89;
-
- // ***********************************
- // 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 = 0x51; r1 = 0x3f; r2 = 0x40; r3 = 0x14; r4 = 0x43;
- r5 = 0x0a; r6 = 0x21; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x00; r17 = 0x83; r18 = 0xff; r19 = 0x80;
- r20 = 0x00; r21 = 0xff; r22 = 0x21; r23 = 0xeb; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 22 b0, DCLK = 154.39 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x22);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa22b0;
- //# DacMode = 0x2;
- //# Cr42 = 0x89;
-
- // ***********************************
- // 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 = 0x41; r1 = 0x32; r2 = 0x30; r3 = 0x04; r4 = 0x37;
- r5 = 0x00; 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 = 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,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x07);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: bf 3f b0, DCLK = 114.55 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xbf);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3f);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xbf3fb0;
- //# DacMode = 0x7;
- //# Cr42 = 0x84;
-
- // ***********************************
- // 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 = 0x41; r1 = 0x32; r2 = 0x30; r3 = 0x04; r4 = 0x37;
- r5 = 0x00; 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 = 0x00; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x03);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: bf 3f b0, DCLK = 114.55 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xbf);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3f);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xbf3fb0;
- //# DacMode = 0x5;
- //# Cr42 = 0xc4;
-
- // ***********************************
- // 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 = 0x41; r1 = 0x33; r2 = 0x30; r3 = 0x04; r4 = 0x37;
- r5 = 0x00; 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 = 0x00; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x01);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: bf 3f b0, DCLK = 114.55 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xbf);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3f);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xbf3fb0;
- //# DacMode = 0x2;
- //# Cr42 = 0xc4;
-
- // ***********************************
- // 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 = 0x2d; r1 = 0x27; r2 = 0x28; r3 = 0x10; r4 = 0x2b;
- r5 = 0x8f; 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,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 26 b1, DCLK = 67.23 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x26);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa26b1;
- //# DacMode = 0x7;
- //# Cr42 = 0x82;
-
- // ***********************************
- // 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 = 0x2d; r1 = 0x27; r2 = 0x28; r3 = 0x10; r4 = 0x2b;
- r5 = 0x8f; 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,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 26 b1, DCLK = 67.23 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x26);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x28);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa26b1;
- //# DacMode = 0x5;
- //# Cr42 = 0xc2;
-
- // ***********************************
- // 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 = 0x2d; r1 = 0x27; r2 = 0x28; r3 = 0x10; r4 = 0x2b;
- r5 = 0x8f; 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,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: aa 26 b1, DCLK = 67.23 MHz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xaa);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x26);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x29);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xaa26b1;
- //# DacMode = 0x2;
- //# Cr42 = 0xc2;
-
- // ***********************************
- // 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 = 0x2d; r1 = 0x27; r2 = 0x28; r3 = 0x01; r4 = 0x2a;
- r5 = 0x10; 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,0x26);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fd 3a b3, DCLK = 25056815 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfd);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x33);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf3);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb3);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x3b);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xfd3ab3;
- //# DacMode = 0x2;
- //# Cr42 = 0x80;
-
-