Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
svgalib.et4000(7)	       Svgalib User Manual	       svgalib.et4000(7)

NAME
     svgalib.et4000, libvga.et4000 - Information for Tseng ET4000 users

TABLE OF CONTENTS
     NOTE:  The  ET4000  register  layout  changed stepping from svgalib 0.98 to
     0.99. See 8. Problems below first

     1. Basics of ET4000 cards
     2. How to configure svgalib(7)
     3. Creating card dependent register values
     4. Defining new modes
     5. Redefining standard modes
     6. Available examples
     7. ET4000/W32 support
     8. Problems
     9. Using dynamic loading with other cards

1. BASICS OF ET4000 CARDS
     Basically all ET4000 cards are equal, some are even more equal ...

     The Chipset is well documented (by Tseng Labs and eg. the vgadoc2.zip)  and
     all graphics functions can be used the same way on different cards (includ-
     ing the ET4000/W32 based ones). There are three important points to be kept
     in mind:

     a.)    amount of available, the organisation and timing of video memory

     b.)    type and capabilities of the DAC

     c.)    available oscillator frequencies

     svgalib(7)  will  check  the  available  video  memory during startup. This
     should work on all DRAM cards. If there are any  problems	concerning  VRAM
     equipped cards, please tell us about.

     By  now we found is no reliable way to detect the memory organisation/ tim-
     ing and the DAC type/capabilities. Most modern card use a frequency synthe-
     sizer and provide the following pixel frequencies (in MHz):

	    50.350 56.644 65.0 72.0 80.0 89.8 63.0 75.0

     Checking older ET4000 cards we found a wide spread range of available  fre-
     quencies.	Since  the video timing is based on the pixel frequency, the re-
     quired register values are card dependent.

2. HOW TO CONFIGURE SVGALIB
     svgalib(7) has a somewhat 'standard' registers set that may work with  mod-
     ern ET4000 cards. If svgalib(7) fails on your machine or you have a HiColor
     dac, you need to configure your svgalib(7).

     The svgalib(7) may use hard linked or dynamical linked register values.  If
     you  use hard linked values, the binary will be smaller and start up faster
     but might fail on other machines.

     Compiling the svgalib(7) with DYNAMIC defined (see Makefile.cfg)  will  set
     up  dynamic  register loading. Otherwise the value from svgalib/et4000.regs
     will be hard linked.

     The dynamic configuration will be read from /etc/vga/libvga.et4000 which is
     an ASCII file (see Makefile.cfg for exact naming). If you	have  a  working
     et4000.regs  for  your system just copy this file to /etc/vga/libvga.et4000
     or link /etc/vga/libvga.et4000 to your svgalib/et4000.regs file.

     The actual scanner/parser will handle the following entries:

     #define DAC_TYPE <integer>
	    Overwrite the DAC detection

     #define <MODE1> <MODE2>
	    Enable MODE1 using MODE2 registers, eg. 64K modes like 32K modes

     #define <MODE> DISABLE_MODE
	    do not use MODE (eg. from vgadrv)

     char <MODE><strg>[..] = {<integer>, <integer>, ... };
	    register definition

     with

     <MODE>    ::= 'g'<decimal>x<decimal>x<color><ignored>
     <integer> ::= <decimal>|<hex>
     <hex>     ::= '0x'<hexdigit>{<hexdigit>}
     <decimal> ::= ['+'|'-']<digit>{<digit>}
     <hexdigit>::= <digit>|'a..f'|'A..F'
     <digit>   ::= '0..9'
     <color>   ::= '2'|'16'|'256'|'32k'|'32K'|'64k'|'64K'|'16M'
     <strg>    ::= <empty>|[(<alpha>|'_'){<digit>|<alpha>|'_'}]
     <alpha>   ::= 'a..z'|'A..Z'

     C style comments will be skipped. See the et4000/ subdirectory of	the  sv-
     galib distribution for examples.

3. CREATING CARD DEPENDENT REGISTER VALUES
     You  may create a et4000.regs on your own with the tseng3.exe program. This
     DOS program and its source is included in the svgalib distribution.

     Just boot MS-DOS and start

     tseng3 et4000.reg

     The tseng3.exe will measure the  video  timing  for  each	available  mode.
     Check  the  et4000.regs file against your monitor documentation and disable
     all non conformant modes, eg.

     #define g1024x768x256_regs DISABLE_MODE
     /*
     static unsigned char g1024x768x256_regs[71] = {
     ...
     };
     */

     will disable the 1024x768x256 mode. You  mustn't  disable	the  640x480x256
     mode!

     Your et4000.regs must define the following symbols (register values or #de-
     fine ... DISABLE_MODE) for hard linking:

     g320x200x32K_regs, g640x400x256_regs, g640x480x256_regs, g640x480x32K_regs,
     g640x480x16M_regs,  g800x600x16_regs, g800x600x256_regs, g800x600x32K_regs,
     g1024x768x16_regs, g1024x768x256_regs, and g1280x1024x16_regs.

     and all 64K modes handled like 32K modes by the driver:

     #define g320x200x64K_regs g320x200x32K_regs
     #define g640x480x64K_regs g640x480x32K_regs
     #define g800x600x64K_regs g800x600x32K_regs

     You may omit every unusable mode in /usr/lib/libvga.et4000.

4. DEFINING NEW MODES
     All standard svgalib(7) modes may be selected by the mode constants defined
     in #include<vga.h> (eg.  G320x200x16).  You may define new  modes	on  your
     own.  Just  use dynamic register loading and add the register definition of
     the new mode. Your program may determine the related modenumber by checking
     the vga_getmodeinfo(1..vga_lastmodenumber()).

     Most  ET4000  cards  provide  640x350  and  640x400  graphics  modes.   The
     tseng3.exe generates the related register sets. You may also use dumpreg(1)
     from  an  X  window to grab you favourite X graphics mode.  The X mode nor-
     mally isn't usable directly. See cardex.w32 for an example and et4000.c for
     a brief description of et4000 registers (both files are included in the sv-
     galib distribution).

5. REDEFINING STANDARD MODES
     Using dynamic register loading you may redefine any standard VGA  mode  ex-
     cept  of  TEXT and 640x480x16. Just add the ET4000 specific register set to
     /etc/vga/et4000.regs.

6. AVAILABLE EXAMPLES
     In the et4000/ subdir of the svgalib distribution you'll find  some  sample
     register sets:

     cardex.w32
	    Cardex ET4000/W32 card, Music TrueColor DAC

     speedstar+
	    SpeedSTAR PLUS card, Normal DAC

     orchid.pdII
	    Orchid Prodesigner II

7. ET4000/W32 SUPPORT
     The  actual  driver  seems  to  be ET4000/W32 compatible. Tell us about any
     problems  (and  solutions).  If  you've  got  any	information  about   the
     ET4000/W32 blitter, we would be pleased to receive it.

8. PROBLEMS
     As  mentioned  before,  the  DAC detection isn't very reliable.  vgatest(6)
     should print equal screens in 256 color and HiColor/TrueColor  modes.   You
     may have to edit your libvga.et4000 register file by hand to setup the cor-
     rect DAC.

     The tseng3.exe may fail due to incompatible mode numbering. You might use a
     VESA  driver  (eg.  tlivesa.com  from  VPIC  6.0) or edit and recompile the
     tseng3.exe.

     Newer ET4000 chipsets (eg. W32 and W32i) allow up to 32 clock  frequencies.
     Two additional register values were added just before the old extended reg-
     ister value. The new registers are CRTC/30h and CRTC/31h.	The old register
     set had 71 values, the new has grown to 73.  You may update your old regis-
     ter set by hand:

     -	    run  the  dumpreg  program,  remember the first two values from last
	    data line.

     -	    edit your libvga:
	    for each mode
		   change the number of register values from 71 to 73
		   add the values from dumpreg output at front of last data line

     -	    run .BR vgatest (6) to check the new register set

9. USING DYNAMIC LOADING WITH OTHER CARDS
     The dynamical register loading may be used in other  drivers.   Since  hard
     linked  register  values  work fine for Cirrus and Trident cards, we didn't
     include this feature.

FILES
     /etc/vga/libvga.config
     /etc/vga/libvga.et4000

SEE ALSO
     svgalib(7), libvga.config(5).

AUTHOR
     This documentation  for  the  ET4000  registers  was  provided  by  Hartmut
     Schirmer.	 However,  it  was  slightly reformatted by Michael Weller <eow-
     mob@exp-math.uni-essen.de>.

Svgalib (>= 1.2.11)		  31 July 1997		       svgalib.et4000(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libvga.et4000&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help