ATI Technologies Super VGA Chip Sets. Board 18810 Dot ROM BIOS Version Chip Clock Chip Label V3 18800 rev 1 no V3M V4 18800 rev 2 no V4M (18800-1) V5 18800 rev 2 yes V5M (18800-1) ? 28800 VGA Wonder+ ATI Prism Elite uses Trident 8800CS chips. 3C0h (R/W): Palette index register bit 4-5 Mode 67h Palette Value Pixel=0 1 2 3 0 Black White Grey Bright White 1 Black Green Red Yellow 2 Black Cyan Red White 3 Black Cyan Magenta White 1CEh index B0h (R/W): ATI Register 0 bit 0 Reserved 3 Enable 8 CRT accesses for each CPU access 6 Hercules 300 line emulation 7 Reserved 1,2,4,5 DRAM timing 1CEh index B1h (R/W): EGA Compatability and Double Scanning Enable bit 0 Force all I/O addresses to be EGA compatible if set 1 Force all registers to be EGA compatible if set 2 General purpose read/write 3-5 Double scanning/3 of 4 scanning enable 1: Enable double scanning in graphics mode 2: Enable 3 of 4 scanning in graphics mode 5: Enable double scanning in text mode 6: Enable 3 of 4 scanning in text mode 6 Divide vertical timing parameters by 2 if set 7 Reserved 1CEh index B2h (R/W): Bank Register bit 0 (rev 1) Enable interlace if set 1-4 (rev 1) Bank no. in 64 chunks 5 (rev 1) Enable internal DIP switch settings (EGA mode) 6 (rev 1) External clock select 7 (rev 1) Reserved 0 (rev 2+) Reserved 1-3 (rev 2+) Write/Single bank no 4 (rev 2+) Reserved 5-7 (rev 2+) Read Bank no 1CEh index B3h (R/W): ATI Register 3 bit 0 EEPROM data input 1 EEPROM clock source 2 Enable EEPROM interface 3 EEPROM chip select 4 (rev 1) Enable PS/2 decoding (rev 2+) Disable memory beyond 256K 5 Enable 16bit operation 6 (rev 2+) Enable 1024x768 16 color planar pixel mode 7 (rev 2+) Enable double scanning for 200 line modes Note: This register should not be modified on revision 1 chips. 1CEh index B4h (R/W): ATI Register 4 bit 0 Enable CGA emulation 1 Enable Hercules emulation 2 Lock CR90-94,CR97 3 Lock vertical timing registers 4 Lock cursor start and end 5 Lock CR80-86 and CR140-144 6 Lock CR0-7 instead of CR117 7 Override locking of CR117 1CEh index B5h (R/W): ATI Register 5 bit 0 Select display enable as blanking signal 1 Invert blanking signal polarity 2 Enable display signal skew 3 Select Map 3 as programmable character generator 4 Enable 8 simultaneous fonts if set Background is then always 0, and bit 4-7 of an attribute selects the font. 5 Disable Cursor Blinking if set 6 Enable CGA Cursor Emulation if set Adds 5 to the cursor start and end registers. 7 Reserved 1CEh index B6h (R/W): ATI Register 6 bit 0 Reserved 1 Enable 640x400 Hercules emulation 2 Reserved 3 Select 4 color high res modes 4 Select 16 color high res modes 5 Enable vertical interrupts 6 Select composite sync for output 7 Disable blanking screen blank in CGA and Hercules emulation 1CEh index B7h (R/W): ATI Register 7 bit 0-7 Reserved 1CEh index B8h (R/W): ATI Register 8 bit 0 Lock Palette registers in Attribute Controller 1 Lock Overscan register in Attributre Controller 2 Lock All VGA registers except CRTC start and end 3 Lock write to 3C2h 4 Lock horizontal sync polarity 5 Lock vertical sync polarity 6-7 Clock divider 1CEh index B9h (R/W): ATI Register 9 bit 0 Clock select 1 Select input to clock chip 2-3 RAM address space 4-5 Wait cycles for 16 bit ROM access 6 Set horizontal total = register value +2 (vs +5) 7 Lock Line Compare register 1CEh index BAh (R/W): ATI Register A bit 0-2 Delay chain timing compensation 3 Disable secondary Red output (for RGB monitors) 4 Enable EGA color simulation for RGB monitors 5 Enable monochrome gray scale circuit 6 reserved 7 Delay chain resolution compensation 1CEh index BBh (R/W): Input Status Register bit 0-3 Monitor Type: 0: EGA 1: PS/2 Analog Monochrome 2: TTL Monochrome 3: PS/2 Color 4: RGB Color 5: MultiSync 7: PS/2 8514 8: Seiko 1430 9: NEC Multisync 2A A: Crystalscan 860/Tatung 1439 B: NEC Multisync 3D C: TVM 3M D: NEC MultiSync XL E: TVM 2A F: TVM 3A 4 reserved 5 512Kbytes if set, 256K else 6-7 Reserved 1CEh index BCh (R/W): ATI Register C bit 0-7 reserved 1CEh index BDh (R/W): ATI Register D bit 0-3 Reserved 4-7 EGA switch settings 1CEh index BEh (R/W): ATI Register E (rev 2+) bit 0 Unlock Vertical Display End register of the CRT Controller 1 Enable interlace mode 2 Select internal EGA DIP switch value 3 Dual bank mode if set, single else 4-5 Reserved 6 Enable 1024x768 16 color mode 7 Enable 1024x768 4 color mode 3C0h (R/W): Palette index register bit 4-5 Mode 67h Palette Value Pixel=0 1 2 3 0 Black White Grey Bright White 1 Black Green Red Yellow 2 Black Cyan Red White 3 Black Cyan Magenta White Note: The ATI chips handles the indexed registers sligtly differently from other VGA chips, as the index register must be written before each read or write of the associated data registyer. Bank Switching Bank switching can use either one single bank register or two seperate read and write bank registers (18800-2 and 28800 Only). Banks map to 64k boundries. Reserved locations: $C000:$10 2 bytes ATI Register (usually $1CE). $C000:$31 9 bytes '761295520' ID's ATI product $C000:$40 2 bytes '31' ID's ATI Super VGA '32' = ATI EGA Wonder 800+ '22' = ATI EGA Wonder $C000:$42 1 byte Bit 0 Can switch between 8 and 16 bit ROM if set 1 Mouseport present if set 2 Non-intelace if set 3 Microchannel if set, PC/AT else 4 Use clock chip if set 7 Use C000:0000 to D000:FFFF with 16 bit ROM if set $C000:$43 1 byte Gate revision. '1' = Version 1, '2' = version 2, '3' = version 2 with VRAM $C000:$4C 1 byte Major Bios version $C000:$4D 1 byte Minor Bios version ID ATI Super VGA Chip Set s[0]:=#9; move(mem[$c000:$31],s[1],9); if s='761295520' then ATI card if memw[$c000:$40]=$3331 then ATI_Super_VGA ID Which ATI Super VGA Chip rp.ah:=12h rp.bx:=5506h rp.al:=55h rp.bp:=FFFFh rp.si:=0h intr($10,rp); if rp.bp=FFFFh then ATI_rev1 else ATI_rev>=2 Video Modes: 23h T 132 25 16 (8x14) 27h T 132 25 2 (8x14) 33h T 132 44 16 (8x8) 37h T 132 44 2 (8x8) 54h G 800 600 16 planar 55h G 1024 768 16 planar 18800 rev 2 or later 58h T 80 33 (8x8) 5Bh T 80 30 (8x16) 61h G 640 400 256 packed 62h G 640 480 256 packed 63h G 800 600 256 packed 64h G 1024 768 256 packed VGA Wonder + 65h G 1024 768 16 packed **** See note 67h G 1024 768 4 planar **** See note 6Ah G 800 600 16 Undocumented ?? ATI enhanced Graphics modes do NOT support INT 10h with AH= 01h..0Eh or 11h or 13h. Mode 65h 1024x768 16 color 4 bits per pixel packed mode Even pixel is in bits 0-3 of the byte, odd in bits 4-7. Mode 67h 1024x768 4 color 2 bits per pixel planar mode Even pixels are in plane 2&3, odd pixels in plane 0&1. Bios extensions: ----------1012--BH55------------------------- INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES AH = 12h BH = 55h BL = subfunction 00h disabled enhanced features 01h enable enhanced features 02h get status Return: AL = status flags bit 3 set if enhanced features enabled bits 7-5 monitor type 000 PS/2 mono 001 PS/2 color 010 multi-sync 011 Taxan 650 25kHz 100 RGB 101 mono 110 EGA 111 Compaq internal 03h disable register trapping (CGA emulation) 04h enable register trapping 05h program mode described by table at ES:BP 06h get mode table AL = video mode BP = FFFFh (Known illegal value). SI = 0000h (Known illegal value). Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h) BP = FFFFh on error Format of ATI VGA Wonder video mode table: Offset Size Description 00h BYTE number of columns 01h BYTE maximum row (number of rows - 1) 02h BYTE scan lines per row 03h WORD video buffer size in bytes 05h 4 BYTEs values for Sequencer registers 1-4 09h BYTE value for Miscellaneous Output register 0Ah 25 BYTEs values for CRTC registers 00h-18h 00h horizontal total size (chars) 01h horizontal displayed (chars) 02h horizontal sync position (chars) 03h horizontal sync width (chars) 04h vertical total size (char rows) 05h vertical total adjust (scan lines) 06h vertical displayed (char rows) 07h vertical sync position (char rows) 08h interlace mode 09h max scan line in row 0Ah cursor start scan line 0Bh cursor end scan line 0Ch screen memory start (high) 0Dh screen memory start (low) 0Eh cursor address (high) 0Fh cursor address (low) 10h light pen (high) 11h light pen (low) 23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h) 37h 9 BYTEs values for Graphics Controller registers 00h-08h