[STBModes] Version=1.00 Product=POWERGRAPH32 Bus=PCI Modes=35 [Modes] ; HRes, VRes, Bpp, HScan, VScan, Mem, Pitch, Flags, Cntr1, Cntr2, Work Mode.1 = 640, 480, 4, 31.5, 60.0, 1M, 320, 0, 0300h, 1111h, 640_4_60 Mode.2 = 640, 480, 4, 37.9, 72.0, 1M, 320, 0, 0A00h, 1111h, 640_4_72 Mode.3 = 640, 480, 4, 37.5, 75.0, 1M, 320, 0, 0700h, 1111h, 640_4_75 Mode.4 = 640, 480, 8, 31.5, 60.0, 1M, 640, 0, 0300h, 1111h, 640_8_60 Mode.5 = 640, 480, 8, 37.9, 72.0, 1M, 640, 0, 0A00h, 1111h, 640_8_72 Mode.6 = 640, 480, 8, 37.5, 75.0, 1M, 640, 0, 0700h, 1111h, 640_8_75 Mode.7 = 640, 480, 16, 31.5, 60.0, 1M, 1280, 0, 1111h, 1111h, 640_16_60 Mode.8 = 640, 480, 16, 37.9, 72.0, 1M, 1280, 0, 1111h, 1111h, 640_16_72 Mode.9 = 640, 480, 16, 37.5, 75.0, 1M, 1280, 0, 1111h, 1111h, 640_16_75 Mode.10 = 640, 480, 24, 31.5, 60.0, 1M, 1920, 0, 1111h, 1111h, 640_24_60 Mode.11 = 640, 480, 32, 31.5, 60.0, 2M, 2560, 0, 1111h, 1111h, 640_32_60 Mode.12 = 800, 600, 4, 35.2, 56.0, 1M, 1024, 0, 0601h, 1111h, 800_4_56 Mode.13 = 800, 600, 4, 37.9, 60.0, 1M, 1024, 0, 0000h, 1111h, 800_4_60 Mode.14 = 800, 600, 4, 48.0, 72.0, 1M, 1024, 0, 0000h, 1111h, 800_4_72 Mode.15 = 800, 600, 4, 46.9, 75.0, 1M, 1024, 0, 0800h, 1111h, 800_4_75 Mode.16 = 800, 600, 8, 35.2, 56.0, 1M, 800, 0, 0601h, 1111h, 800_8_56 Mode.17 = 800, 600, 8, 37.9, 60.0, 1M, 800, 0, 0000h, 1111h, 800_8_60 Mode.18 = 800, 600, 8, 48.0, 72.0, 1M, 800, 0, 0000h, 1111h, 800_8_72 Mode.19 = 800, 600, 8, 46.9, 75.0, 1M, 800, 0, 0800h, 1111h, 800_8_75 Mode.20 = 800, 600, 16, 37.9, 60.0, 1M, 1600, 0, 1111h, 1111h, 800_16_60 Mode.21 = 800, 600, 16, 48.0, 72.0, 1M, 1600, 0, 1111h, 1111h, 800_16_72 Mode.22 = 800, 600, 16, 46.9, 75.0, 1M, 1600, 0, 1111h, 1111h, 800_16_75 Mode.23 = 1024, 768, 4, 35.5, 88.0, 1M, 1024, 2, 0301h, 1111h, 1024_4_88i Mode.24 = 1024, 768, 4, 48.4, 60.0, 1M, 1024, 0, 0000h, 1111h, 1024_4_60 Mode.25 = 1024, 768, 4, 56.5, 70.0, 1M, 1024, 0, 0000h, 1111h, 1024_4_70 Mode.26 = 1024, 768, 4, 60.0, 75.0, 1M, 1024, 0, 0300h, 1111h, 1024_4_75 Mode.27 = 1024, 768, 8, 35.5, 88.0, 1M, 1024, 2, 0301h, 1111h, 1024_8_88i Mode.28 = 1024, 768, 8, 48.4, 60.0, 1M, 1024, 0, 0000h, 1111h, 1024_8_60 Mode.29 = 1024, 768, 8, 56.5, 70.0, 1M, 1024, 0, 0000h, 1111h, 1024_8_70 Mode.30 = 1024, 768, 8, 60.0, 75.0, 1M, 1024, 0, 0300h, 1111h, 1024_8_75 Mode.31 = 1024, 768, 16, 35.5, 88.0, 2M, 2048, 2, 1111h, 1111h, 1024_16_88i Mode.32 = 1280, 1024, 4, 48.0, 88.0, 1M, 1024, 2, 1111h, 1111h, 1280_4_88i Mode.33 = 1280, 1024, 4, 64.0, 60.0, 1M, 1024, 0, 1111h, 1111h, 1280_4_60 Mode.34 = 1280, 1024, 8, 48.0, 88.0, 2M, 1280, 2, 0000h, 1111h, 1280_8_88i Mode.35 = 1280, 1024, 8, 64.0, 60.0, 2M, 1280, 0, 0000h, 1111h, 1280_8_60 [640_4_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_60 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,Set4Bpp Exec.6=Call,PerformFixups4 [640_4_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_72 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,Set4Bpp Exec.6=Call,PerformFixups4 [640_4_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_75 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,Set4Bpp Exec.6=Call,PerformFixups4 [640_8_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_60 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_8_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_72 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_8_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_75 Exec.3=Call,SetMode_101h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_16_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_60 Exec.3=Call,SetMode_111h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_16_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_72 Exec.3=Call,SetMode_111h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_16_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_75 Exec.3=Call,SetMode_111h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_24_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_60 Exec.3=Call,SetMode_212h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [640_32_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon640_60 Exec.3=Call,SetMode_112h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_4_56] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_56 Exec.3=Call,SetMode_202h Exec.4=Call,RestoreMonType [800_4_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_60 Exec.3=Call,SetMode_202h Exec.4=Call,RestoreMonType [800_4_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_72 Exec.3=Call,SetMode_202h Exec.4=Call,RestoreMonType [800_4_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_75 Exec.3=Call,SetMode_202h Exec.4=Call,RestoreMonType [800_8_56] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_56 Exec.3=Call,SetMode_103h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_8_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_60 Exec.3=Call,SetMode_103h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_8_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_72 Exec.3=Call,SetMode_103h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_8_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_75 Exec.3=Call,SetMode_103h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_16_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_60 Exec.3=Call,SetMode_114h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_16_72] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_72 Exec.3=Call,SetMode_114h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [800_16_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon800_75 Exec.3=Call,SetMode_114h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1024_4_88i] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_88i Exec.3=Call,SetMode_204h Exec.4=Call,RestoreMonType [1024_4_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_60 Exec.3=Call,SetMode_204h Exec.4=Call,RestoreMonType [1024_4_70] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_70 Exec.3=Call,SetMode_204h Exec.4=Call,RestoreMonType [1024_4_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_75 Exec.3=Call,SetMode_204h Exec.4=Call,RestoreMonType [1024_8_88i] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_88i Exec.3=Call,SetMode_205h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1024_8_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_60 Exec.3=Call,SetMode_205h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1024_8_70] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_70 Exec.3=Call,SetMode_205h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1024_8_75] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_75 Exec.3=Call,SetMode_205h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1024_16_88i] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1024_88i Exec.3=Call,SetMode_117h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1280_4_88i] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1280_88i Exec.3=Call,SetMode_107h Exec.4=Call,Set4Bpp Exec.5=Call,RestoreMonType Exec.6=Call,PerformFixups4 [1280_4_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1280_60 Exec.3=Call,SetMode_107h Exec.4=Call,Set4Bpp Exec.5=Call,RestoreMonType Exec.6=Call,PerformFixups4 [1280_8_88i] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1280_88i Exec.3=Call,SetMode_107h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [1280_8_60] Exec.1=Call,SaveMonType Exec.2=Call,SetMon1280_60 Exec.3=Call,SetMode_107h Exec.4=Call,RestoreMonType Exec.5=Call,PerformFixups [SaveMonType] Exec.1=Call,UnlockS3 Exec.2=Code,BAh,D4h,03h,B0h,52h,EEh,42h,ECh,8Ah,D8h,BAh,D4h,03h,B0h,41h,EEh Exec.3=Code,42h,ECh,8Ah,F8h,53h [RestoreMonType] Exec.1=Call,UnlockS3 Exec.2=Code,5Bh,BAh,D4h,03h,B0h,52h,EEh,42h,8Ah,C3h,EEh,BAh,D4h,03h,B0h,41h Exec.3=Code,EEh,42h,8Ah,C7h,EEh [SetMon640_60] Exec.1=RMW8I,3D4h,52h,00h,70h [SetMon640_72] Exec.1=RMW8I,3D4h,52h,10h,70h [SetMon640_75] Exec.1=RMW8I,3D4h,52h,20h,70h [SetMon800_56] Exec.1=RMW8I,3D4h,41h,00h,03h Exec.2=RMW8I,3D4h,52h,00h,80h [SetMon800_60] Exec.1=RMW8I,3D4h,41h,00h,03h Exec.2=RMW8I,3D4h,52h,80h,80h [SetMon800_72] Exec.1=RMW8I,3D4h,41h,01h,03h Exec.2=RMW8I,3D4h,52h,00h,80h [SetMon800_75] Exec.1=RMW8I,3D4h,41h,01h,03h Exec.2=RMW8I,3D4h,52h,80h,80h [SetMon1024_88i] Exec.1=RMW8I,3D4h,41h,00h,1Ch [SetMon1024_60] Exec.1=RMW8I,3D4h,41h,08h,1Ch [SetMon1024_70] Exec.1=RMW8I,3D4h,41h,0Ch,1Ch [SetMon1024_75] Exec.1=RMW8I,3D4h,41h,10h,1Ch [SetMon1280_88i] Exec.1=RMW8I,3D4h,41h,00h,E0h [SetMon1280_60] Exec.1=RMW8I,3D4h,41h,80h,E0h [SetMode_101h] ; 640_8 Exec.1=Int,10h,4F02h,8101h [SetMode_103h] ; 800_8 Exec.1=Int,10h,4F02h,8103h [SetMode_107h] ; 1280_8 Exec.1=Int,10h,4F02h,8107h [SetMode_110h] ; 640_15 Exec.1=Int,10h,4F02h,8110h [SetMode_111h] ; 640_16 Exec.1=Int,10h,4F02h,8111h [SetMode_112h] ; 640_32 Exec.1=Int,10h,4F02h,8112h [SetMode_113h] ; 800_15 Exec.1=Int,10h,4F02h,8113h [SetMode_114h] ; 800_16 Exec.1=Int,10h,4F02h,8114h [SetMode_116h] ; 1024_15 Exec.1=Int,10h,4F02h,8116h [SetMode_117h] ; 1024_16 Exec.1=Int,10h,4F02h,8117h [SetMode_202h] ; 800_4 Exec.1=Int,10h,4F02h,8202h [SetMode_204h] ; 1024_4 Exec.1=Int,10h,4F02h,8204h [SetMode_205h] ; 1024_8 Exec.1=Int,10h,4F02h,8205h [SetMode_208h] ; 1280_4 Exec.1=Int,10h,4F02h,8208h [SetMode_212h] ; 640_24 Exec.1=Int,10h,4F02h,8212h [PerformFixups] ; Enable enh mode. ; Disable 4 bpp enh mode, linear addr, and mmio. Exec.1=RMW16,4AE8h,0001h,0035h [UnlockS3] Exec.1=RMW8I,3D4h,38h,48h,48h Exec.2=RMW8I,3D4h,39h,A0h,A0h [EnableExtRegs] ; Enable S3 enhanced mode registers (4ae8h, etc.) ; (Set bit 1 in CR 40) Exec.1=RMW8I,3D4h,40h,01h,01h [ResetAttrToggle] ; reset attribute controller index/data flip-flop by reading 3dah ; ; push dx ; push ax ; mov dx, 3da ; in al, dx ; pop ax ; pop dx ; Exec.1=Code,52h,50h,BAh,DAh,03h,ECh,58h,5Ah [Set4Bpp] ; Change drawing engine from 8bpp mode to 4bpp mode ; The 4 bit modes must have a pitch of 1024 ; ; Unlock S3 registers Exec.1=Call,UnlockS3 ; ; Enable Extended S3 registers Exec.2=Call,EnableExtRegs ; ; Set CR 3A (Misc. reg. 1) to 4 bpp enhanced mode rather than ; 256 color enh. mode Exec.3=RMW8I,3D4h,3Ah,00h,10h ; ; Set CR 31h to two page screen mode ; forces pitch to 1024 bytes (required to make 4 bit modes work) Exec.4=RMW8I,3D4h,31h,02h,02h ; ; Reset Attribute index/data flip-flop Exec.5=Call,ResetAttrToggle ; ; Select Attribute register 10h, and disable 256 color mode ; ; push dx ; push ax ; mov dx, 3c0h ; mov al, 10h ; out dx, al select attr. register 10, turn off palette ; inc dx ; in al, dx read reg. 10 ; dec dx ; and al, bfh ; out dx, al disable 256 color mode ; pop ax ; pop dx Exec.6=Code,52h,50h,BAh,C0h,03h,B0h,10h,EEh,42h,ECh,4Ah,24h,BFh,EEh,58h,5Ah ; ; Reset Attribute index/data flip-flop Exec.7=Call,ResetAttrToggle ; ; Re-enable the palette Exec.8=Out8,3C0h,20h ; ; set video shift registers into 4 bit graphics mode Exec.9=RMW8I,3CEh,05h,00h,60h [PerformFixups4] ; Enable 4 bpp enh mode and enh mode. ; Disable linear addr and mmio. Exec.1=RMW16,4AE8h,0005h,0035h