*******************E-mail:r.muller@student.utwente.nl***********************

Readme.txt for UniRefresh v1.41                                August 5 2000


1.  Introduction
2.  Installation
3.  How does it work?
4.  The menu
5.  System requirements
6.  Miscellaneous
7.  What to expect in future versions
8.  Known problems/limitations
9.  Acknowledgements
10. Contacting the author



1.   Introduction.
     
     UniRefresh is a freeware universal dos refresh rate utility.
     It is easy to use, the only data needed are the specifications of
     the monitor.
     It consists of two parts:
     a setup program (setup.exe) and a TSR (Terminate Stay Resident)
     program (unirfrsh.com).
     The setup program calculates the timings for the refresh rates
     and saves these timings in a file.
     The TSR (resident part only 208 bytes) reads the refresh rate
     data needed for setting a video mode from the file that was
     created by the setup program.
     
2.   Installation.
     
     *   Unzip the archive in any directory and run setup.exe to
         configure UniRefresh.
     *   From the menu choose "Configure monitor".
     *   Fill in the specifications of your monitor. (according to the
         manual)
     *   From the main menu choose "Automatic configuration".
     *   Select "View/set refresh rates" to see what refresh rates are
         calculated for the video modes.
     *   Save the configuration before returning to dos.
     
     Ready. Now you can start using UniRefresh by typing "unirfrsh" at
     the command prompt.
     If you want the TSR to unload, type in "unirfrsh" once again.
     
     Notes:
     Four frequencies need to be configured, minimum/maximum
     vertical/horizontal frequency. Look in the manual of the monitor
     and fill in these four frequencies. If you "overclock" your
     monitor it can be seriously damaged, so fill in the values
     according to the manual.
     UniRefresh needs a multi scanning monitor. Do not use UniRefresh
     if the attached monitor is not multi scanning.
     If you don't know one or both maximum frequencies don't use
     UniRefresh.
     If you don't know the minimum horizontal frequency, I suggest
     filling in 30 kHz.
     If you don't know the minimum vertical frequency, I suggest
     filling in 60 Hz.
     
3.   How does it work?
     
     UniRefresh uses a TSR to intercept the setting of a VESA video
     mode. If the requested video mode is a VESA video mode and if the
     refresh rate needs to be changed, the TSR reads the timing data
     from the data file and uses this to do a VESA VBE 3.0 set mode
     call with refresh rate information. UniRefresh also sets refresh
     rates for 3dfx cards (Banshee and newer) when using dos Glide.
     
4.   The Menu.
     
     View/set        Select a video mode in the left window. On the
     refresh rates   right side, you see the calculated frequencies
                     and some other information. If "t" is pressed the
                     (banked) video mode is tested with the calculated
                     timings and a simple test screen will be
                     displayed so you can adjust the screen with the
                     monitor's adjustments. At this time, it is not
                     possible to test linear video modes (and will not
                     be in the near future). The test screen isn't
                     available with a 4bpp (4 bits per pixel, 16
                     colors) video mode. (this will change in a future
                     version.)
                     Press enter to change the refresh rate for the
                     selected video mode.
                     Press del to delete the timings for the selected
                     video mode.
                     
                     MaxPixelClock: maximum pixelclock (pixels per
                     second) the video adapter returned for this video
                     mode. This isn't a very interesting value.
                     
                     MaxVFreqCard: maximum vertical frequency
                     calculated according to MaxPixelClock. This is
                     the maximum refresh rate the video board can
                     deliver for the selected video mode.
                     
                     MaxVFreqMonitor: maximum refresh rate the
                     attached monitor can handle at this resolution.
		
                     MinVFreq: minimum refresh rate available.
                     
                     Available: is the video mode available as
                     returned by the VBE.
                     
                     Support: if yes UniRefresh changes the refresh
                     rate of this video mode. If a correct refresh rate
                     has been calculated, Support will be yes.
                     
                     ErrorCalc: Yes if an error occurred while
                     calculating the refresh rate. This means that the
                     attached monitor can't handle this resolution or
                     the video adapter doesn't have a clock with fine
                     granularity. I think all modern video adapters
                     have clocks with a very fine granularity. Course
                     granularity shouldn't be a problem but the
                     algorithm used to cope with the clock granularity
                     is very simple. (this might change in a future
                     version).
                     
                     Vertical frequency: the frequency at which the
                     complete screen is repainted (the refresh rate).
                     
                     Horizontal frequency: lines per second
                      (There are about 5% more lines on a screen than
                     are displayed.)
                     
                     PixelClock: pixels per second
                     (There are about 30% more pixels per line than
                     are displayed.)
                     
     Auto            This will calculate the refresh rate for all
     configuration   modes automatically.
                     
     Configure       Don't mess around with these values, look in the
     monitor         manual of the monitor.
                     See the Installation part above for more details.
                     
     General         Only one option is available at the moment
     Options         (Ignore double scan bit). The 3dfx Banshee and Voodoo3
                     erroneously report that double scanning is not
                     available. This is causing problems with low res modes.
                     When enabling this option, UniRefresh ignores the
                     double scan bit and assumes double scanning is
                     available when necessary.
                     
     View VBE        Information which is returned by the VESA VBE
     information     (VESA bios extension).
                     
     Save            This saves the data to a file (timings.dat). The
     configuration   TSR retrieves all the data needed to set the
                     correct refresh rate from this file.
                     
     Quit setup      Quit the setup program and return to DOS.
                     
5.   System requirements
     
     *   Video adapter with VESA VBE 3.0 support
     *   MS-DOS v3.3 or higher
     *   80386 or better
     *   Multi scanning monitor
     
6.   Miscellaneous
     
     If a runtime error occurs the type and location of the error will
     be logged in a file named "debug.log".
     
     Before the setup program or the TSR load, things like the
     information returned by the VBE and the integrity of the data
     file are checked. If you change the video adapter (to another
     type), both programs will detect a change in hardware. This will
     prevent the TSR to load. You then have to run the setup program
     to reconfigure UniRefresh.
     If you need to load a driver for VBE 3.0 support you have to do
     this before loading the TSR. Otherwise, the TSR will not detect
     VBE 3.0. If you have a video adapter with VBE 3.0 support in BIOS
     and you start to use a software driver for VBE support (like
     SciTech Display Doctor/Univbe) the TSR will detect a change in
     hardware.
     
     UniRefresh uses an implementation of the VESA GTF (general timing
     formula) to calculate the monitor timings. Because I couldn't
     find the official VESA GTF specifications, I downloaded the
     SciTech MGL graphics library. This library contains an
     implementation of VESA GTF. The timing formula used in UniRefresh
     is based upon the VESA GTF implementation in the MGL library. 
     More information about the MGL library can be found at the
     homepage of SciTech Software http://www.scitechsoft.com.
     SciTech Software is also known from the universal VBE driver
     SciTech Display Doctor (formerly known as univbe). SDD realizes
     software VBE 3.0 support for a large amount of video cards. So if
     you can't use UniRefresh because your video adapter doesn't
     support VBE 3.0 take a look at the SciTech homepage.
     
7.   What to expect in future versions
     
     *   VESA DDC support (I think Ralph Brown's interrupts list
         contains enough information to implement this in the future, more
         information about it would be appreciated anyhow)
     *   Integration of the resident part in the setup program, so
         only one program is needed.

8.   Known problems/limitations

     There are no other problems known then are listed here. So, if you have
     a problem with this software, please let me know.

     *   Windows really messes up things when you switch to the desktop and
         back to dos again with alt-tab. The setup program contains a 
         workaround for most of these problems, only 4bpp modes are still
         messed up (the mode is correctly restored, but the registers are
         overwritten with values for a different resolution)
         The TSR also contains a workaround for alt-tab problems. 4bpp modes
         and modes with mode numbers greater than 17fh are still messed up. 
         (windows removes bit 7 of the mode number, so 1f6h becomes 176h)
     *   V3 and Banshee report that double scanning is not supported for any
         mode. Because of this, the refresh rates for low resolution modes
         need to be very high to reach the minimum horizontal frequency.
         3dfx is aware of this problem. (Enable "ignore double scan bit" in 
         the "General options" menu to solve this problem)
     *   Only the top half of the screen is shown with low resolutions and 
         refresh rate control on V3 and Banshee. This is a bug in the BIOS
         of these chips. 3dfx is aware of this problem. (Enable "ignore 
         double scan bit" in the "General options" menu to solve this 
         problem)
     *   Refresh rate control doesn't work with 800x600x4bpp modes on V3 and 
         Banshee. This is a bug in the BIOS of these chips. 3dfx is aware of 
         this problem.
     *   The TSR locks one file handle. This will probably cause no problems,
         if it does, increase the maximum number of file handles available. 
         ('files=xx' in config.sys)       

9.   Acknowledgements

     Mondain for his numerous emails concerning almost every aspect of 
     UniRefresh.

     Wendell Martin Jr with his Voodoo3 for helping me to correct some
     problems with the V3.

     Brian Gregory for helping me to solve various problems with the Banshee.

     Kevin White for helping me sorting out some problems with the 3dfx
     cards. 

     Thanks to all those who gave feedback.
     
10.  Contacting the author
     
     If you have questions/comments, find a bug, have problems with
     UniRefresh or if you just (dis)like UniRefresh sent me an email.
     If you have found a bug don't forget to attach "debug.log" (if
     that file exists in the UniRefresh directory)
     If you have problems/found a bug please give detailed information
     like:
     *   The information returned by the VBE (accessible via the main
         menu)
     *   Type of video card/CPU/operating system
     *   Type of software VBE driver if present
     *   Program with which the problem/bug occurred
     
     
     
     Rob Muller
     Email: r.muller@student.utwente.nl
     WWW  : http://unirefresh.demonews.com
     
     
     
     

DISCLAIMER

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS"
AND WITHOUT ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO
RESPONSIBILITIES FOR POSSIBLE DAMAGES OR EVEN FUNCTIONALITY CAN
BE TAKEN. THE USER MUST ASSUME THE ENTIRE RISK OF USING THIS
PROGRAM. ALL TRADEMARKS ARE PROPERTY OF THEIR RESPECTIVE OWNERS.
