home *** CD-ROM | disk | FTP | other *** search
- 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
-