1svgalib.et4000(7) Svgalib User Manual svgalib.et4000(7)
2
3
4
6 svgalib.et4000, libvga.et4000 - Information for Tseng ET4000 users
7
8
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
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
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
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
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
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
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
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
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
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
223 /etc/vga/libvga.config
224 /etc/vga/libvga.et4000
225
226
228 svgalib(7), libvga.config(5).
229
230
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)