A few comments about the mach32 driver.

This is an intermediate pre-ALPHA release of the Mach32-driver.
Pre means that I did not implement the accelerated functions
for mach32 yet. I'm doing that while you are reading this message.
However I don't think I'll need long for this.. compared to
the rest of the driver I think they are fairly trivial.

Anyway the driver should allow you to use any of the graph-modes
your mach32 card supports. Note that there is no support for
<8bpp modes and that I won't ever implement that coz I don't see
any reason for doing so. All standard VGA-modes are of course 
supported.. (by using of the standard VGA driver routines).

If you configured your mach32 for an memory aperture and it is
at least as big as the memory of your card (that is, not an 1MB
memory aperture for a 2MB card) support for linear frame buffer
access of svgalib is given.

Note that at least my VRAM card seems to peculiar about logical
linewidths. From my experience a multiple of 64 pels is needed.
Your mileage may vary. Use the config file options to adjust it
and tell me if your card needs a different value. (and what
for a card it exactly is, s.t. I may autoconfig the driver
correctly).

If some svgalib application has problems, note that you can
force the logical linewidth to the default value from the
configfile. Probably this will lead to glitches in some 800x600
resolutions. You can inhibit these resolutions from the configfile
as well. Apropos glitches, I found no guidelines at what clockrates
to use due to memory restrictions. I adjusted the driver, s.t.
I get a stable pic in all resolutions. However sometimes the screen
is disturbed by heavy video mem accesses. If you don't like that
reduces the used clocks with the maxclk16 or maxclk24 command, resp.
This may of course lead to none of the predefined modes being used.
Then you can try to define your own mode via the define command.

There is no 320x200 mode in the eeprom of the mach32 at all, however
I defined one in the default config file for you. This is the best
thing I could get up on my card/screen. Note that it will probably
have big borders on your screen, and black lines in between the lines.
This is because of the lack of low clocks <16 on the mach32 and the
lack of a line doubling mode as a VGA has. The mach32 is not intended
for such low resolutions. If you find a better mode or have an idea
please let me know.

Ah yes, and apropos EEPROM, I figured out how to read out the mach32
EEPROM. (Not from the docs but from disassembling the BIOS routine
the docs mention and redoing it (much better and compacter of course)
in C). The driver will use everything it finds there. Use the mach32
install tools to setup your card monitor combo correctly. The
monitor setting from the config file (or default of 35Khz or something)
will be obeyed by the driver anyway (for safety)!. As you probably
know already accessing the EEPROM causes some screen flickering. If
this annoys you (or even worse your monitor) have a look at the
mach32eeprom command. This allows you to give a filename where
the eeprom contents are once saved and then just read out.
Don't even think about changing the contents of the file. (There is
an easy faked checksum in it) Anyway the driver ensures (hopefully)
that no damage can be caused.

I heard about a bug in some ATI chipsets returning wrong mem configs.
Note that you can enforce correct identification from the config file.
Have a look at mach32.h for correct values.

A final word: I have an ATI ULTRA PRO/2Mb/EISA with a Type 2 DAC.
My monitor is an EIZO F550i-M. Everything I tried worked on it like
a charm. However I couldn't try it with other machines and esp.
other DAC's. Fortunately the Type 2 DAC is the worst to code. So I
will probably have gotten the other DAC's right. But please be warned:

I did my very best to code the driver to support the other DAC's by
just reading the docs. BUT I CAN'T DEFINITELY GIVE ANY GUARANTUE FOR
IT TO WORK OR EVEN NOT DAMAGING YOU HARDWARE. SO PLEASE BE CAREFUL!

Note that you will have to set the environment variable SVGALIB_MACH32
to ILLTRYIT if your dac is not type 2. (Will of course change if no
one with DAC!=2 has serious problems). Since I have Dactype 2, if you
have a different dac, Patches to make it work instead of just complaining
are probably much more helpful to support your card.

Thank you for your audience and wishes you will enjoy this driver,

Michael Weller

eowmob@exp-math.uni-essen.de

