1svgalib.et4000(7)             Svgalib User Manual            svgalib.et4000(7)
2
3
4

NAME

6       svgalib.et4000, libvga.et4000 - Information for Tseng ET4000 users
7
8

TABLE OF CONTENTS

10       NOTE:  The ET4000 register layout changed stepping from svgalib 0.98 to
11       0.99. See 8. Problems below first
12
13
14       1. Basics of ET4000 cards
15       2. How to configure svgalib(7)
16       3. Creating card dependent register values
17       4. Defining new modes
18       5. Redefining standard modes
19       6. Available examples
20       7. ET4000/W32 support
21       8. Problems
22       9. Using dynamic loading with other cards
23
24

1. BASICS OF ET4000 CARDS

26       Basicly all ET4000 cards are equal, some are even more equal ...
27
28       The Chipset is well documented (by Tseng Labs and eg. the  vgadoc2.zip)
29       and  all graphics functions can be used the same way on different cards
30       (including the ET4000/W32 based ones). There are three important points
31       to be kept in mind:
32
33
34       a.)    amount of available, the organisation and timing of video memory
35
36       b.)    type and capabilities of the DAC
37
38       c.)    available oscillator frequencies
39
40       svgalib(7)  will  check the available video memory during startup. This
41       should work on all DRAM cards. If there  are  any  problems  concerning
42       VRAM equipped cards, please tell us about.
43
44       By  now  we found is no reliable way to detect the memory organisation/
45       timing and the DAC type/capabilities. Most modern card use a  frequency
46       synthizier and provide the following pixel frequencies (in MHz):
47
48              50.350 56.644 65.0 72.0 80.0 89.8 63.0 75.0
49
50       Checking  older  ET4000 cards we found a wide spread range of available
51       frequencies. Since the video timing is based on  the  pixel  frequency,
52       the required register values are card dependent.
53
54

2. HOW TO CONFIGURE SVGALIB

56       svgalib(7)  has  a somewhat 'standard' registers set that may work with
57       modern ET4000 cards. If svgalib(7) fails on your machine or you have  a
58       HiColor dac, you need to configure your svgalib(7).
59
60       The svgalib(7) may use hard linked or dynamical linked register values.
61       If you use hard linked values, the binary will be smaller and start  up
62       faster but might fail on other machines.
63
64       Compiling  the  svgalib(7) with DYNAMIC defined (see Makefile.cfg) will
65       set  up  dynamic   register   loading.   Otherwise   the   value   from
66       svgalib/et4000.regs will be hard linked.
67
68       The  dynamic  configuration  will  be  read from /etc/vga/libvga.et4000
69       which is an ASCII file (see Makefile.cfg for exact naming). If you have
70       a   working  et4000.regs  for  your  system  just  copy  this  file  to
71       /etc/vga/libvga.et4000   or   link   /etc/vga/libvga.et4000   to   your
72       svgalib/et4000.regs file.
73
74       The actual scanner/parser will handle the following entries:
75
76
77       #define DAC_TYPE <integer>
78              Overwrite the DAC detection
79
80       #define <MODE1> <MODE2>
81              Enable MODE1 using MODE2 registers, eg. 64K modes like 32K modes
82
83       #define <MODE> DISABLE_MODE
84              do not use MODE (eg. from vgadrv)
85
86       char <MODE><strg>[..] = {<integer>, <integer>, ... };
87              register definition
88
89       with
90
91       <MODE>    ::= 'g'<decimal>x<decimal>x<color><ignored>
92       <integer> ::= <decimal>|<hex>
93       <hex>     ::= '0x'<hexdigit>{<hexdigit>}
94       <decimal> ::= ['+'|'-']<digit>{<digit>}
95       <hexdigit>::= <digit>|'a..f'|'A..F'
96       <digit>   ::= '0..9'
97       <color>   ::= '2'|'16'|'256'|'32k'|'32K'|'64k'|'64K'|'16M'
98       <strg>    ::= <empty>|[(<alpha>|'_'){<digit>|<alpha>|'_'}]
99       <alpha>   ::= 'a..z'|'A..Z'
100
101       C  style  comments will be skipped. See the et4000/ subdirectory of the
102       svgalib distribution for examples.
103
104

3. CREATING CARD DEPENDENT REGISTER VALUES

106       You may create a et4000.regs on your own with the  tseng3.exe  program.
107       This  DOS  program  and its source is included in the svgalib distribu‐
108       tion.
109
110       Just boot MS-DOS and start
111
112       tseng3 et4000.reg
113
114       The tseng3.exe will measure the video timing for each  available  mode.
115       Check  the et4000.regs file against your monitor documentation and dis‐
116       able all non conformant modes, eg.
117
118       #define g1024x768x256_regs DISABLE_MODE
119       /*
120       static unsigned char g1024x768x256_regs[71] = {
121       ...
122       };
123       */
124
125       will disable the 1024x768x256 mode. You mustn't disable the 640x480x256
126       mode!
127
128       Your  et4000.regs must define the following symbols (register values or
129       #define ... DISABLE_MODE) for hard linking:
130
131       g320x200x32K_regs,        g640x400x256_regs,         g640x480x256_regs,
132       g640x480x32K_regs,         g640x480x16M_regs,         g800x600x16_regs,
133       g800x600x256_regs,        g800x600x32K_regs,         g1024x768x16_regs,
134       g1024x768x256_regs, and g1280x1024x16_regs.
135
136       and all 64K modes handled like 32K modes by the driver:
137
138       #define g320x200x64K_regs g320x200x32K_regs
139       #define g640x480x64K_regs g640x480x32K_regs
140       #define g800x600x64K_regs g800x600x32K_regs
141
142       You may omit every unusable mode in /usr/lib/libvga.et4000.
143
144

4. DEFINING NEW MODES

146       All  standard  svgalib(7)  modes  may be selected by the mode constants
147       defined in #include<vga.h> (eg.   G320x200x16).   You  may  define  new
148       modes on your own. Just use dynamic register loading and add the regis‐
149       ter definition of the new mode. Your program may determine the  related
150       modenumber by checking the vga_getmodeinfo(1..vga_lastmodenumber()).
151
152       Most  ET4000  cards  provide  640x350  and  640x400 graphics modes. The
153       tseng3.exe generates the  related  register  sets.  You  may  also  use
154       dumpreg(1) from an X window to grab you favourite X graphics mode.  The
155       X mode normaly isn't usable directly. See cardex.w32 for an example and
156       et4000.c  for  a  brief description of et4000 registers (both files are
157       included in the svgalib distribution).
158
159

5. REDEFINING STANDARD MODES

161       Using dynamic register loading you may redefine any standard  VGA  mode
162       except  of  TEXT  and 640x480x16. Just add the ET4000 specific register
163       set to /etc/vga/et4000.regs.
164
165

6. AVAILABLE EXAMPLES

167       In the et4000/ subdir of teh svgalib distribution you'll find some sam‐
168       ple register sets:
169
170
171       cardex.w32
172              Cardex ET4000/W32 card, Music TrueColor DAC
173
174       speedstar+
175              SpeedSTAR PLUS card, Normal DAC
176
177       orchid.pdII
178              Orchid Prodesigner II
179

7. ET4000/W32 SUPPORT

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

8. PROBLEMS

187       As mentioned before, the DAC detection isn't very reliable.  vgatest(6)
188       should print equal screens in 256 color  and  HiColor/TrueColor  modes.
189       You  may have to edit your libvga.et4000 register file by hand to setup
190       the correct DAC.
191
192       The tseng3.exe may fail due to incompatible mode numbering.  You  might
193       use a VESA driver (eg. tlivesa.com from VPIC 6.0) or edit and recompile
194       the tseng3.exe.
195
196       Newer ET4000 chipsets (eg. W32 and W32i) allow up to 32 clock  frequen‐
197       cies.  Two  additional  register  values were added just before the old
198       extened register value. The new registers are  CRTC/30h  and  CRTC/31h.
199       The  old  register  set  had  71 values, the new growed to 73.  You may
200       update your old register set by hand:
201
202
203       -      run the dumpreg program, remember the first two values from last
204              data line.
205
206       -      edit your libvga:
207              for each mode
208                     change the number of register values from 71 to 73
209                     add  the  values from dumreg output at front of last data
210                     line
211
212       -      run .BR vgatest (6) to check the new register set
213
214

9. USING DYNAMIC LOADING WITH OTHER CARDS

216       The dynamical register loading may be used  in  other  drivers.   Since
217       hard  linked register values work fine for Cirrus and Trident cards, we
218       didn't include this feature.
219
220
221

FILES

223       /etc/vga/libvga.config
224       /etc/vga/libvga.et4000
225
226

SEE ALSO

228       svgalib(7), libvga.config(5).
229
230

AUTHOR

232       This documentation for the ET4000 registers  was  provided  by  Hartmut
233       Schirmer.  However, it was slightly reformatted by Michael Weller <eow‐
234       mob@exp-math.uni-essen.de>.
235
236
237
238Svgalib (>= 1.2.11)              31 July 1997                svgalib.et4000(7)
Impressum