OAK Technologies. OTI. OTI037C has 256K or 512K. OTI-067 has 256K or 512K. OTI-077 allows 1MB and up to 1024x768 in 256 colors. OTI-087 allows 2MB OAK-037, 067 and 077: 3DEh (R/W): Index register bit 0-4 Index to the OAK extended registers at 3DF. 5-7 (R) Chip version. 0=OAK=037C, 2=OAK-067, 5=OAK-077, 7=OAK-057 Note: Has anyone seen an 057 ???? 3DEh index 9h (R/W): 3DEh index 0Ah (R/W): 3DEh index 0Ch (R/W): CRT Control bit 3 I/O write test ? 3DEh index 0Dh (R/W): Misc bit 2-3 Should be set to enable access to memory above 256k 4 For 16 color modes should be set to enable access for memory above 256K 5 Clock Select bit 2. Bits 0-1 are in 3C2h/3CCh 6 1MB if set 7 512K if set, 256 else. 3DEh index 0Eh (R/W): Backwards Compatability bit 7 VGA mode if set 3DEh index 11h (R/W): Segment bit 0-3 Read Bank no 4-7 Write Bank no Note: This register apparently write only in Oak-037C. 3DEh index 12h (R/W): Config 3DEh index 14h (R/W): Overflow bit 0 Bit 10 of the VTotal Register (3d4h index 6) 1 Bit 10 of the Vertical Display End Register (3d4h index 12h) 2 Bit 10 of the Vertical Retrace Start Register (3d4h index 10h). 3 Bit 16 of the Display Start Address 7 Set if Interlace is enabled. 3DEh index 15h (R/W): Hsync/2 bit 0-7 How far into the scanline the odd frame should start in interlaced modes. Usually half the VTotal value. 3DEh index 16h (R/W): Overflow 2 (77 only) bit 3 Bit 17 of the Display Start address Note: For 256color modes the Display Start Address is in units of 8 bytes, rather than 4 bytes. Bank Switching: Two banks exist in reg 3DEh index 11h. OAK-087: 3DEh index 0: bit 1 Set for OTI-083, Clear for OTI-087 3DEh index 2 (R/W): bit 1-2 Video Memory. 0=256k, 1=512k, 2=1M, 3=2M 3DEh index 3 (R/W): bit 5 ?? (Causes vertical stripes) 7 ?? 3DEh index 4 (R/W): bit 2 Set if using Zero Wait States for the VESA Local BUS interface. 3DEh index 6 (R/W): bit 0 Clock select ?? 2 Clock select ?? 3 Output to RS2 on the DAC. ?? If set causes 3C6h-3C9h to access the extended registers on the DAC 4 ?? (Display reset ??) 3DEh index 9 (R/W): bit 0 Set if 24bit DAC available ? 3DEh index Bh: bit 6 Clear if VESA monitor timings (Jumper ) 7 Clear if non-interlaced monitor timings 3DEh index Dh (R/W): bit 4 Should be set in 16color modes 5 Clock Select ?? 3DEh index 10h (R/W): 3DEh index 14h (R/W): bit 0 ?? (Makes the display "shake") 2 ?? 3 Bit 16 of the Display Start Address. Note index 17h 7 Set if the display is interlaced 3DEh index 17h (R/W): bit 0-2 Display Start Address bit 16-18 3DEh index 18h (R/W): bit 2 Clock Select?? 3DEh index 21h (R/W): bit 0-1 Clock select ?? 2 Clear in mode 13h, set in all other 256color modes 3DEh index 23h (R/W): Write Bank Register bit 0-4 Read Bank in 64k units. 3DEh index 24h (R/W): Read Bank Register bit 0-4 Write Bank in 64k units. Indices 2-6, 9-Bh, Dh, 11h, 13h-15h, 17h-19h, 20-25h, 30h-36h are used by the OTI-087. ID Oak VGA: if testinx2($3DE,$D,$38) then begin { We have an OAK } if testreg2($3DE,$23,$1F) then if (rdinx($3DE,0) and 2)=0 then _OAK_087 else _OAK_083 else case inp($3DE) div 32 of 0:_OAK_037C 2:_OAK_067 5:_OAK_077 7:_OAK_057 end; end; Modes: (OTI 067/077/087) 4Eh T 80 60 16 (8x8) Not all 067's 4Fh T 132 60 16 (8x8) 50h T 132 25 16 (8x14) 51h T 132 43 16 (8x8) 52h G 800 600 16 PL4 53h G 640 480 256 P8 54h G 800 600 256 P8 55h G 1024 768 4 ?? 56h G 1024 768 16 PL4 57h G 768 1024 4 ?? 58h G 1280 1024 16 PL4 59h G 1024 768 256 P8 OTI-077/87 only 5Ah G 640 480 64k P16 OTI-077 w/Sierra 5Bh G 640 400 32k P15 OTI-077 w/Sierra 5Ch G 640 480 32k P15 OTI-077 w/Sierra 5Dh G 800 600 32k P15 5Eh G 1280 1024 256 P8 5Fh G 640 480 16m P24 60h G 800 600 64k P16 61h G 640 400 256 P8 Note that the OAK-087 BIOS version 1.01B does not set the DAC mode of the HiColor modes correctly. (OTI037C "UNIQUE" VGA) 50h T 132 25 16 (8x14) 51h T 132 43 16 (8x8) 52h G 800 600 16 PL4 (OTI037C with NEL Electronics BIOS) 50h G 640 480 16 PL4 51h T 80 30 (16x9) 52h G 1024 480 16 PL4 53h T 80 25 (16x8) 54h T 132 43 (8x8) 55h T 132 25 (14x8) 56h T 132 43 (8x9) 57h T 132 25 (14x9) 58h T 80 43 (8x8) 59h T 80 43 (8x9) 5Ah T 80 60 (8x8) 5Bh G 800 600 16 PL4 5Ch T 100 37 (16x8) 5Dh T 100 75 (8x8) 5Eh G 800 600 16 PL4 6Ah G 800 600 16 PL4 6Bh T 100 37 (16x8) ----------10FF----------------------------------- INT 10 - VIDEO - OAK VGA BIOS v1.02+ - SET EMULATION AH = FFh AL = Emulation 43h CGA emulation 45h EGA emulation 4Dh Hercules emulation 56h VGA emulation ES:DI -> signature string "Calamity" Switches to the desired emulation