
                         The Universal VESA TSR
                         ----------------------

                   Copyright (C) 1993 Kendall Bennett
                           All rights reserved.

What is it?
-----------

The Universal VESA TSR is a small Terminate and Stay Resident (TSR) program
that provides extends the Video BIOS routines of SuperVGA video cards
to make them compatible with the Video Electonics Standards Association
(VESA) recommended extensions.

By having a video card that has a VESA compatible BIOS, or by installing
this small TSR, programs that support the VESA programming interface
will work correctly for your SuperVGA. This helps to solve a lot of
problems with compatability between different SuperVGA cards on the
market.

Why use it?
-----------

You may already have a VESA TSR for you video card, or you video card
may have a VESA compatible BIOS already, so why would you want to use
this program?

The simple answer is that most of the TSR's that exist today, and a lot
of the not-so-new SuperVGA cards that are around implement an older version
of the VESA programming interface (if any at all). For this reason, some
programs that use the advanced features of the new VESA standard will
not work with the TSR or BIOS that you currently have.

So what advanced features does this TSR provide that other's don't? The
Universal VESA TSR implements the VESA Version 1.2 programming interface,
which supports the following features:

    - VESA page flipping. High performance animation programs can
      use your card to full potential using the VESA BIOS to implement
      extended page flipping (imagine, 1024x768x16 double buffered
      animation, or even 800x600x256 and 640x400x32k/64k on a 1Mb video
      card!!).

    - Support for the 32k, 64k and 16 million color video modes. As well
      as supporting the industry standard 16 and 256 color video
      modes.

    - Speed. The bank switching code in this package tends to run faster
      than the routines embedded in the VIDEO BIOS of some video cards.

Hardware Requirements
---------------------

The Universal VESA TSR contains '386 dependant code, so it will only
run on machine that have and 80386 or better CPU. Currently the
Universal VESA TSR supports the following SuperVGA chipsets (note that
not all of these have been fully tested):

    - ATI Technologies 18800, 28800
    - Ahead A & B
    - Chips & Technologies 82c451/452/453
    - Everex
    - Genoa Systems GVGA
    - OAK Technologies OTI-037C, OTI-067, OTI-077
    - Paradise PVGA1A, WD90C00/10/11/30/31
    - NCR 77C20/21/22E
    - Trident 88/8900
    - Video7 V7VGA versions 1-5
    - Tseng Labs ET3000, ET4000
    - AcuMos AVGA2
    - S3 86c911/924/801/805/928
    - Advance Logic AL2101 SuperVGA
    - MXIC 86010 SuperVGA
    - Primus 2000 SuperVGA
    - RealTek 3106 SuperVGA
    - Cirrus CL-GD 5422 SuperVGA

The Universal VESA TSR seems to have problems with QEMM, since QEMM does
something weird with the Video BIOS. In order to fix this problem,
you should use the QEMM 'exclude' options to exclude the Video BIOS
area. Do this by including the following in the QEMM options:

        EXCLUDE=C000-C1FF

How do I install it?
--------------------

You can install the TSR from the command line, or from your autoexec.bat
file. Don't worry about installing it twice, it will automatically detect
if you have already installed it.

To install it simply type:

    univesa

from the command line. It will determine what type of SuperVGA card you
have installed and install itself accordingly.

You may also use command line options to modify the the automatic
video card detection logic. The following is produced by type 'univesa -h'
at the command line:

Options are:
    -v       - Check for VESA BIOS first
    -s<name> - Force detection of SuperVGA 'name'
    -c<x>    - Force detection of SuperVGA chipset (numerical id)
    -m<size> - Force memory size to 'size'
    -d<x>    - Force DAC type (0:VGA, 1:15 bit, 1:16 bit, 3:24 bit)
    -i       - Do not perform SuperVGA detection

It is possible the SuperVGA detection code will hang the machine on old
VGA/SVGA cards. You can optionally force the program to work with any
combination of card, chipset, memory size and DAC, but unless you specify
the -i option, unspecified values will be filled in automatically for you.

Thus you if the detection code did not correctly identify you video card
configuration, you can force the TSR to work with the correct values.

When installed the Universal VESA TSR takes up approximately 9k of memory.
All of the code required to detect the video adapter and available video
modes is removed after the program is installed, saving on the amount
of memory required. You may also load the TSR high.

Can I get the source code?
--------------------------

Yes, the full source code for this library is available, along with a
number of test programs (with source) for programming SuperVGA cards
in a device independant manner in a SuperVGA Test Kit Library. You can
probably download this from Simtel20 or garbo (or one of it's mirrors)
or you can ftp the absolute latest version from:

    godzilla.cgl.rmit.oz.au: kjb/MGL/svgakt??.zip

How can I contact the Author?
-----------------------------

If you have any corrections or updates to the code in this package, or
you have any questions you would like asked, feel free to contact me
through one of the following methods.

NOTE: I am going on vacation from 30th March 1993 until the middle of
      August 1993, so I will _not_ be able to respond to any correspondence
      from people during this period, so please do _not_ send me any email
      until I return.

Internet:   kjb@citri.edu.au

Snail Mail:

Home:       Kendall Bennett
            15 Stevenson Street
            Kew Victoria 3101
            AUSTRALIA

Work:       Kendall Bennett
            RMIT Advanced Computer Graphics Centre
            CITRI Building, 723 Swanston Street
            Carlton Victoria 3053
            AUSTRALIA

