home *** CD-ROM | disk | FTP | other *** search
- Tseng Super VGA
-
- ET3000-AX 512k 8/16 bit Main chip
- -BX 512k 8 bit
- -Bp 256k 8 bit Basic chip
- ET4000 1M 8/16 bit
- ET4000/W32 4MB Accelerator.
- ET4000/W32i 4MB Accelerator. Can interleave DRAM
- ET4000/W32p 4MB Accelerator, PCI support
-
-
-
- Registers:
-
- 102h: Microchannel Setup Control
- bit 0 Disable Card if set
-
- 3BFh (R/W): Hercules Compatibility Mode
- bit 1 Enable second page (B800h-BFFFh)
-
- 3C0h index 16h: ATC Miscellaneous
- bit 4,5 High resolution timings.
- 0: Normal powerup mode, 2: Hiresolution 256color mode
- 3: 15/16 bit HiColor mode
- 7 Ignore EGA internal palette
-
- 3C3h (R/W): Microchannel Video Subsystem Enable Register:
- bit 0 Enable Microchannel VGA if set
-
- 3C4h index 6 (R/W): Zoom Control (ET3000 Only)
- bit 0-2 Yzoom factor 0=1:1
- 4-6 Xzoom factor 0=1:1
- 7 Hardware zoom enabled if set
-
- 3C4h index 6 (R/W): TS State Control (not ET3000)
- bit 1-2 Font Width Select: 0: 9, 1: 8, 2: 10, 3: 11, 4: 12, 7: 16
- Only valid if 3d4h index 34h bit 3 set.
-
- 3C4h index 7 (R/W): TS Auxiliary Mode
- bit 0 (ET3000 Only) Switch Normal Window if set (Text/Graph)
- (not ET3000) Selects MCLK/4 as video clock if set (bit 6 must be set)
- 1 (ET3000 Only) Switch Zoom Window if set (Text/Graph)
- (not ET3000) Selects SCLK=MCLK
- 2 (ET3000 Only) Switch Split Window if set (Text/Graph)
- (not ET3000) Always 1
- 4 (ET3000 Only) If set 8 simultaneous fonts are enabled,
- using bit 3,4,6 of each attribute byte
- to select the font.
- 3,5 ROM Bios Enable/Disable:
- 0 0 C000-C3FF Enabled
- 0 1 ROM disabled
- 1 0 C000-C5FF,C680-C7FF Enabled
- 1 1 C000-C7FF Enabled
- 6 MCLK/2 if set (ET4000: bit 0 must be 0)
- 7 VGA compatible if set EGA else.
-
- 3CBh (R/W): PEL Address/Data Wd (3000/4000 ?)
-
- 3CBh (R/W): Extended bank register (W32 only)
- bit 0-1 Write bank bit 4-5. The lower 4 bits are in 3CDh bit 0-3.
- 4-5 Read bank bit 4-5. The lower 4 bits are in 3CDh bit 4-7.
-
- 3CDh (R/W): Segment Select
- bit 0-2 (ET3000) 64k Write bank nbr
- 3-5 (ET3000) 64k Read bank nbr
- 6-7 (ET3000) Segment Configuration.
- 0 128K segments
- 1 64K segments
- 2 1M linear memory
- 0-3 (ET4000) 64k Write bank nbr (0..15)
- 4-7 (ET4000) 64k Read bank nbr (0..15)
-
- 3CEh index Dh (R/W): Microsequencer Mode
-
- 3CEh index Eh (R/W): Microsequencer Reset
-
- 3d4h index 1Bh (R/W): X Zoom Start Address (ET3000 Only)
- bit 0-7 Offset of Zoom window start in character clocks
- (8 pixels) from left edge
-
- 3d4h index 1Ch (R/W): X Zoom End (ET3000 Only)
- bit 0-7 Offset of Zoom window end in char clocks from left edge
-
- 3d4h index 1Dh (R/W): Y Zoom Start Address (ET3000 Only)
- bit 0-7 Start line of zoom window bit 0-7
-
- 3d4h index 1Eh (R/W): Y Zoom End Address (ET3000 Only)
- bit 0-7 (ET3000 Only) End line of zoom window bit 0-7
-
- 3d4h index 1Fh (R/W): Y Zoom Start and End High (ET3000 Only)
- bit 0-2 End line of zoom window bit 8-10
- 3-5 Start line of zoom window bit 8-10
-
- 3d4h index 20h (R/W): Zoom Start Address Low (ET3000 Only)
- bit 0-7 Zoom Start Address bit 0-7. Address of Zoom data
-
- 3d4h index 21h (R/W): Zoom Start Address Middle (ET3000 Only)
- bit 0-7 Zoom Start Address bit 8-15
-
- 3d4h index 23h (R/W): Extended start ET3000 (ET3000 Only)
- bit 0 Cursor start address bit 16
- 1 Display start address bit 16
- 2 Zoom start address bit 16
-
- 3d4h index 24h (R/W): Compatibility Control (ET3000 only)
- bit 0 Enable Clock Translate
- 1 Clock Select bit 2. Bits 0-1 are in 3C2h/3CCh.
- 2 Enable tri-state for all output pins
- 3 Enable input A8 of 1MB DRAMs
- 4 Reserved
- 5 Enable external ROM CRTC translation
- 6 Enable Double Scan and Underline Attribute
- 7 CGA/MDA/Hercules
-
- 3d4h index 25h (R/W): Overflow High ET3000 (ET3000 Only)
- bit 0 Vertical Blank Start bit 10
- 1 Vertical Total Start bit 10
- 2 Vertical Display End bit 10
- 3 Vertical Sync Start bit 10
- 4 Line Compare bit 10
- 5-6 Reserved
- 7 Vertical Interlace if set
-
- 3d4h index 30h (R/W):
- bit 0-4 Exists on W32, but ET4000 ??
-
- 3d4h index 32h (R/W): RAS/CAS Video Config (not ET3000)
- bit 0-4 Controls the Trsp, Tcsw, Tcsp timings
- 5 Recharge time (Trcd)? <=50ns if clear
- 7 (W32i/p) Set if using interleaved memory.
- Ram timing, System clock and Ram type. Sample values:
- 00h VRAM 80nsec
- 09h VRAM 100nsec
- 00h VRAM 28MHz
- 08h VRAM 36MHz
- 70h DRAM 40MHz
-
- 3d4h index 33h (R/W): Extended start ET4000 (not ET3000)
- bit 0-1 (4000) Display Start Address bits 16-17
- 2-3 (4000) Cursor start address bits 16-17
- Can be used to ID ET4000
- 0-3 (W32x) Display Start Address bits 16-19
-
- 3d4h index 34h (R/W): Compatibility Control Register
- bit 0 Enable CS0 (alternate clock timing)
- 1 Clock Select bit 2. Bit 0-1 in 3C2h bits 2-3.
- 2 Tristate ET4000 bus and color outputs
- 3 Video Subsystem Enable Register at 46E8h if set, at 3C3h if clear.
- 4 Enable Translation ROM for reading CRTC and MISCOUT
- 5 Enable Translation ROM for writing CRTC and MISCOUT
- 6 Enable double scan in AT&T compatibility mode
- 7 Enable 6845 compatibility
-
- 3d4h index 35h (R/W): Overflow High ET4000 (not ET3000)
- bit 0 Vertical Blank Start Bit 10
- 1 Vertical Total Bit 10
- 2 Vertical Display End Bit 10
- 3 Vertical Sync Start Bit 10
- 4 Line Compare Bit 10
- 5 Gen-Lock Enabled if set (External sync)
- 6 Read/Modify/Write Enabled if set. Currently not implemented.
- 7 Vertical interlace if set
-
- 3d4h index 36h (R/W): Video System Configuration 1 (not ET3000)
- bit 0-2 Refresh count (-1)
- 3 16 bit wide fonts if set, else 8 bit wide
- 4 Linear addressing if set
- Video Memory is mapped as a 1 Meg block above 1MB.
- 5 Enable Tseng Addressing Mode
- 6 16 bit data path (video memory) if set
- 7 16 bit data (I/O operations) if set
-
- 3d4h index 37h (R/W): Video System Configuration 2 (not ET3000)
- bit 0-1 (4000) Bus width (VGA chip to video memory):
- 1 = 8 bit, 2 = 16 bit, 3 = 32 bit.
- 0 (W32x) Bus Width 0: 16bit, 1: 32bit
- 2 Bus Read Latch control (0: Delay one clock before latching)
- 3 (4000) Size of RAM chips. 0: 64Kx, 1: 256Kx
- (W32x) Size of RAM chips. 0: 1Mx, 1: 256Kx
- RAM size is (Chip size 64k/256k/1M) * (Bus Width 1/2/4 bytes)
- For W32i/p multiply with 2 if interleaved.
- 4 Disable Block Readahead (One source says: 16 bit ROM access if set)
- 5 Memory bandwidth (0 better than 1) ???
- 6 Enable test mode (One source says: Block read ahead (BRA) if clear)
- 7 VRAM installed if set DRAM if clear.
-
- 3d4h index 3Fh (R/W): (not ET3000)
- bit 7 This bit seems to be bit 8 of the CRTC offset register (3d4h index
- 13h).
-
- 3d8h (R/W): Display Mode Control
-
- 217Ah index E0h W(R/W): Cursor X-position (W32 only)
- bit 0-15 The X position of the HardWare Cursor
-
- 217Ah index E2h (R/W): (W32 only)
- bit 0-7 The pixel number (from the right) within the cursor bitmap of the
- first used pixel.
-
- 217Ah index E4h W(R/W): Cursor Y-position (W32 only)
- bit 0-15 The Y position of the HardWare cursor
-
- 217Ah index E6h (R/W): (W32 only)
- bit 0-7 The pixel number (from the top) within the cursor bitmap of the
- first used pixel.
-
- 217Ah index E8 3(R/W): Cursor Map Address (W32 only)
- bit 0-23 The address in Video Memory of the start of the Cursor BitMap.
- In bytes in planar modes, and in DWORDs in packed modes.
-
- 217Ah index EBh (R/W): (W32 only)
- bit 0-7 Width of the Cursor Map: 2=16 bytes per line, 4=32 bytes
-
- 217Ah index ECh (R/?): (W32 only)
- bit 0-3 Mask revision ??
- 4-7 Chip version. 0: W32, 3: W32i, 2,4: W32p ?
-
- 217Ah index EDh (R/W): (W32 only)
-
- 217Ah index EEh (R/W): (W32 only)
- bit 0-7 1: Cursor data is loaded from every byte in the Cursor Map.
- 2: Cursor data is only loaded from even bytes in the Cursor Map
-
- 217Ah index EFh (R/W): (W32 only)
-
- 217Ah index F7h (R/W): (W32 only)
- bit 7 Set to enable the HardWare Cursor.
-
- 46E8h (R): Video Subsystem Enable Register
- bit 3 Enable VGA if set
-
-
- 3C4h index 05 used.
-
-
- Bank Switching:
-
- 64k banks are selected by the Segment Select Register at 3CDh.
- Both a Read and a Write segment can be selected.
-
- Hardware Zoom (ET3000 Only).
-
- The ET3000 can zoom a part of display memory in a window.
- The display memory position and window position are selected
- by 3d4h index 1Bh to 21h.
-
-
- Identify Tseng Chipset:
-
- outp($3BF,3);
- outp($3D8,$A0); {Enable ET4000 extensions}
- if tstrg($3CD,$3F) then
- if testinx2(base,$33,$F) then
- if tstrg($3CB,$33) then
- case rdinx($217A,$EC) shr 4 of
- 0:Tseng ET4000W32
- 3:Tseng ET4000W32i
- 2:Tseng ET4000W32p {Not quite sure yet}
- end
- else Tseng 4000
- else Tseng 3000;
-
- Memory: (Tseng BIOS version 3.00 and up)
- 0:488h BYTE Bit 4 High bit of the 1024x768 mode flag
- 0: 87Hz interlaced, 1: 60Hz, 2: 72Hz, 3: 70Hz
- 5 High bit of 800x600 mode flag
- 0: 60Hz, 1: 56Hz, 2: 72Hz
- 6 If set 640x480 is 72Hz, else 60Hz
- 0:489h BYTE Bit 5 Low bit of the 1024x768 mode flag
- 6 Low bit of the 800x600 flag
-
-
-
- Video Modes:
- 8 T 132 25 2 (STB only)
- Ah T 132 44 2
- 18h T 132 44 4 (8x8) B000
- 19h T 132 25 4 (9x14) B000
- 1Ah T 132 28 4 (9x13) B000
- 22h T 132 44 16 (8x8)
- 23h T 132 25 16 (8x14)
- 24h T 132 28 16 (8x13)
- 25h G 640 480 16 planar
- 26h T 80 60 16 (8x8)
- 27h G 720 512 16 PL4 (Tseng recommended, few boards)
- 29h G 800 600 16 PL4
- 2Ah T 100 40 16 PL4
- 2Dh G 640 350 256 P8
- 2Eh G 640 480 256 P8
- 2Fh G 640 400 256 P8 (ET4000 Only)
- 2Fh G 720 512 256 P8 (Tseng recommended, few boards)
- 30h G 800 600 256 P8
- 36h G 960 720 16 PL4 (STB only)
- 37h G 1024 768 16 PL4
- 38h G 1024 768 256 P8 (ET4000 Only)
- 3Dh G 1280 1024 16 PL4 (newer ET4000s)
- 3Eh G 1280 960 16 PL4 (Definicon)
- 6Ah G 800 600 16 PL4 Newer ET4000s
-
- BIOS extensions (Tseng 4000 Sierra HiColor DAC):
-
- ----------1010E0-----------------------------
- INT 10 - VIDEO - SpeedStar 24 - SET TrueColor GRAPHICS MODE
- AX = 10E0h
- BL = 2Eh
- Return: AX = 0010h if successful
- other on error
- Enters 24bit 640x480 mode if SS24 DAC present.
- Video memory is NOT cleared.
- Each line uses 2048 bytes with only 640x3=1920 bytes actually used.
- So that a line can never cross a 64K border.
- ----------1010F0-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
- AX = 10F0h
- BL = video mode (see also AH=00h)
- 32768-color modes:
- 13h = 320x200
- 2Dh = 640x350
- 2Eh = 640x480
- 2Fh = 640x400
- 30h = 800x600
- 16M color modes:
- 3Eh = 640x480 (Genoa 7900)
- BX = 2DFFh = 640x350 (MEGAVGA/2)
- 2EFFh = 640x480 (MEGAVGA/2)
- 2FFFh = 640x400 (MEGAVGA/2)
- Return: AX = 0010h if successful
- other on error
- ----------1010F1-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
- AX = 10F1h
- Return: AX = 0010h if successful, errorcode if not
- BL = type of digital/analog converter
- 00h normal VGA DAC
- 01h Sierra SC11481/6/8 HiColor DAC
-
- (Diamond SpeedStar 24:)
- 02h New SS24 DAC (16M colors) (actually)
-
- (Tseng generic BIOS rev 8.00 or later:)
- 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
- 03h ATT20c490/1/2 15/16/24 bit HiColor DAC
- 04h AcuMos ADAC1 (15/16/24 bit)
- 05h Sierra SC15025/26 (15/16/24 bit DAC)
- 06h Cirrus Internal 15/16/24 bit DAC (from CL-GD54xx series).
- 07h Diamond SS2410. (15/24 bit).
- 08h Music MU9c4910 (15/16/24 bit DAC).
- 09h Unknown Type 9 ??
- ----------1010F2-----------------------------
- INT 10 - VIDEO - Tseng ET-4000 BIOS - GET/SET HiColor MODE
- AX = 10F2h
- BL = 00h Get current HiColor mode
- 01h Set 15bit HiColor mode
- 02h Set 16bit HiColor mode
- Return: AX = 0010h if successful, errorcode if not
- BL = Current HiColor mode:
- 00h Not in HiColor mode or not a HiColor DAC
- 01h 15-bit RGB mode
- 02h 16-bit RGB mode
- 03h 24-bit RGB mode
- Note: Set HiColor mode (BL=1 or 2) only works if already in some HiColor mode.
- ----------101D-------------------------------
- INT 10 - VIDEO - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
- AH = 1Dh
- AL = Video Mode
- ES = Caller's segment
- Note: The caller's segment contains a table at offset 5Ch or 100h
- Offset Size Description
- 00h 9 BYTEs ID string 'ey5CENTER'
- 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
- 0Eh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
- 13h 5 BYTEs sync parameters for 1024x768 modes 37h, 38h
- ----------101DAA-----------------------------
- INT 10 - VIDEO - Diamond SpeedSTAR - CHECK FOR SPEEDSTAR
- AX = 1DAAh
- BX = FDECh
- Return: BX = DECFh if found
- AL = AH = DACtype:
- 00h Standard VGA DAC
- 01h Highcolor DAC with command bit 3 not writable
- (Sierra "Mark 1" - SC11481/6/8)
- 02h SS2410 DAC
- 05h Highcolor DAC with command bit 3 writable (Sierra
- "Mark 2/3" - SC11482/3/4/5/7/9)
- SI:DI -> BIOS version & Copyright string
-
-
-
-
- Notes:
- The sequence:
-
- port[$3BF]:=3;
- port[$3D8]:=$A0;
-
- is apparently needed to enable the extensions in the Tseng 3000/4000.
- Most BIOSes do this by default, but some such as the Sigma VGA Legend
- requires this sequence.
- Let me know if you encounter any other examples.
-