    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/X32 will be released in '92 supporting 24bit colors, 4MB DRAM or VRAM
    and built-in accelerator.


    Registers:

 102h: Microchannel Setup Control
 bit 0  Disable Card if set

 3BFh (R/W): Hercules Compatability register
 
 3C0h index 16h: ATC Miscellaneous
    (Write data to 3C0h, Read from 3C1h  (May not be needed))
 bit 4,5  High resolution timings.

 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  7  (R/W): TS Auxiliary Mode
 bit 0  (ET3000 Only) Switch Normal Window if set (Text/Graph)
     1  (ET3000 Only) Switch Zoom Window if set (Text/Graph)
     2  (ET3000 Only) Switch Split Window if set (Text/Graph)
     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
     7  VGA compatible if set EGA else.

 3CBh (R/W): PEL Address/Data Wd
  
 3CDh (R/W): Segment Select
 bit 0-2  (ET3000) 64k Write bank nr
     3-5  (ET3000) 64k Read bank nr
     6-7  (ET3000) Segment Configuration.
		     0  128K segments
		     1   64K segments
		     2  1M linear memory
     0-3  (ET4000) 64k Write bank nr (0..15)
     4-7  (ET4000) 64k Read bank nr (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
 bit 0  Enable Clock Translate
     1  Additional Master Clock Select
     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 32h (R/W): RAS/CAS Video Config
       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  (ET4000 Only)
 bit 0-1  Display start address bits 16-17
     2-3  Cursor start address bits 16-17
	  Can be used to ID ET4000

 3d4h index 34h (R/W): Compatibility Control Register
 bit 3  if set Video Subsystem Enable Register at 46E8h
		  else at 3C3h.

 3d4h index 35h (R/W): Overflow High ET4000   (ET4000 Only)
 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
 bit 3  16 bit wide fonts if set, else 8 bit wide
     4  (ET4000 Only) Linear addressing if set
	Video Memory is mapped as a 1 Meg block above 1MB.
     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
 bit 0-1  Memory size  0,1=256k, 2=512k, 3=1M   ???
       3  Clear if 64kx4 RAMs                   ???
	  if set RAM size = (bit 0-1)*256k
	    else RAM size = (bit 0-1)* 64k
       4  16 bit ROM access if set
       5  Memory bandwidth (0 better than 1) ???
       7  VRAM installed if set DRAM else.
   bit 6? Block read ahead (BRA)  if clear

 3d4h index 3Fh (R/W):
 bit   7  This bit seems to be bit 8 of the CRTC offset register (3d4h index 13h).

 3d8h (R/W): Display Mode Control

 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 Tseng 4000
				else Tseng 3000;       

 
  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  planar           (Tseng recommended, few boards)
    29h  G   800  600  16  planar
    2Ah  T   100   40  16  planar
    2Dh  G   640  350 256  packed
    2Eh  G   640  480 256  packed
    2Fh  G   640  400 256  packed           (ET4000 Only)
    2Fh  G   720  512 256  packed           (Tseng recommended, few boards)
    30h  G   800  600 256  packed
    36h  G   960  720  16  planar           (STB only)
    37h  G  1024  768  16  planar
    38h  G  1024  768 256  packed           (ET4000 Only)
    3Dh  G  1280 1024  16  planar           (newer ET4000s)
    3Eh  G  1280  960  16  planar           (Definicon)
    3Eh  G   640  480 32k  Sierra 15-bit    (Compaq Qvision)



   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 successfull
	     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
		   3Eh = 640x480 16M colors  (Genoa 7900)
	     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
SeeAlso: AX=10F1h
----------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 SC1148x HiColor DAC

	 (Diamond SpeedStar 24:)
	     02h New SS24 DAC  (16M colors)

	 (MEGAVGA/2 BIOS:)
	     02h Sierra Mark2 (15-bit) or Mark3 (16-bit) DAC  
	     03h ATT20c491 or 492 15/16/24 bit HiColor DAC
	     04h AcuMos ADAC1 (15/16/24 bit)
	   else other HiColor DAC
SeeAlso: AX=10F0h
----------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 successfull, 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.


Notes:
  The sequence: 

      port[$3BF]:=3;
      port[$3D8]:=$A0;

is apparently needed to enable the extensions in the Tseng 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.
