The Universal VESA VBE ---------------------- Copyright (C) 1993 SciTech Software All rights reserved. What is it? ----------- The Universal VESA VBE is a small Terminate and Stay Resident (TSR) program that extends the video BIOS of SuperVGA video cards to make them compatible with the Video Electonics Standards Association (VESA) recommended Video BIOS Extensions (VBE). By having a video card that has a VESA VBE compatible BIOS, or by installing this small TSR, programs that support the VESA VBE 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. Note that this program will not take advantage of any of the acceleration features that your video card may provide. Why use it? ----------- You may already have a VESA VBE TSR for you video card, or you video card may have a VESA VBE 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 VBE programming interface (if any at all). For this reason, some programs that use the advanced features of the new VESA VBE 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 VBE implements the VESA VBE 1.2 programming interface, which supports the following features: . SuperVGA 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!!). . SuperVGA virtual screens. Programs may set up a virtual display resolution of say 1024x1024 pixels, and smoothly scroll a window with less physical resolution around within this buffer. . 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. . Programs that know about the Universal VESA VBE protected mode extensions can use the high performance protected mode programming interface provided by this TSR. . Extremely small size. When the TSR is resident in your computer it only requires about 3k of memory which is smaller than the size of most commerical VESA VBE TSR's. It may also be loaded high to save even more memory. Hardware Requirements --------------------- The Universal VESA VBE will run on any 80x86 based IBM PC compatible running MSDOS. Currently the Universal VESA VBE supports the following SuperVGA cards (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, OTI-087 - Paradise PVGA1A, WD90C00/10/11/20/21/30/31 - NCR 77C20/21/22E - Trident 88/8900 - Video7 V7VGA versions 1-5 - Tseng Labs ET3000, ET4000, ET4000/W32 - AcuMos AVGA2 - S3 86c911/924/801/805/928 - Advance Logic AL2101 SuperVGA - MXIC 86010 SuperVGA - Primus 2000 SuperVGA - RealTek 3106 SuperVGA - Cirrus Logic CL-GD 5420, 5422, 5424, 5426, 5428 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: univbe from the command line. It will determine what type of SuperVGA card you have installed and install itself accordingly. If you wish to remove the TSR from memory after it has been installed, simply type: univbe -u This will remove the program from memory, even if it was not the last TSR to be installed. However if you installed another TSR after this one that has hooked into the Int 10h interface the old TSR will cease to function. You may also use command line options to modify the the installation process used by the program. The following is produced by typing 'univesa -h' at the command line: Options are: -s - Force detection of SuperVGA 'name' -c - Force detection of SuperVGA chipset (numerical id) -m - Force memory size to 'size' -d - Force DAC type (0:VGA, 1:15 bit, 2:16 bit, 3:24 bit) -i - Do not perform SuperVGA detection -q - Quiet mode -g - Regenerate default .ini file -u - Unload the Universal VESA VBE from memory -t - Don't go TSR, just return the detected SuperVGA id -b - Swap the RED and BLUE bytes in 24 bit modes. 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. For some SuperVGA cards, I have not been able to work out a solid method of detecting the amount of video memory on board. If this is the case, the Universal VESA VBE will refuse to install itself and ask that you specify the amount of video memory on your card from the command line. The Universal VESA VBE does not provide support for any of the extended text modes that your video card may provide, but will provide support for any extended text modes supported by an underlying VESA VBE compliant BIOS. Thus if you video card already has a VBE BIOS or you install your favorite VESA VBE TSR for your video card _before_ installing the Universal VESA VBE, the Universal VESA VBE will use a pass-through mechanism to ensure the extended text modes still work correctly. What's the .ini file for? ------------------------- For most installations, the Universal VESA VBE will automatically determine the video modes that you card supports. However on some older video cards some video modes that the Universal VESA VBE thinks are available aren't and so an error will occur if a program tries to set the video mode. The .ini file is used to remove support for those video modes. You can edit the .ini file yourself or you can get the TSR to automatically generate the default .ini file for you. In order to generate the default .ini file for you, you must remove the TSR from memory, delete the old .ini file, re-install the TSR in memory and run the program with the -g option. The default .ini file is now generated. You should then remove the TSR again and re-install it using the values in the new .ini file. A batch file called 'makeini.bat' is provided which will do this for you. The format of the .ini file is simple. All the video modes removed by the program are listed under the section '[remove]' in the .ini file. They are listed as the hexadecimal internal mode numbers used by the TSR (see the next section for a list of the mode numbers used). An example .ini file might be: [remove] 10D Video modes supported by this TSR --------------------------------- The Universal VESA VBE supports the VESA VBE 1.2 programming interface, which defines a number of standard video modes numbers. The new version of the VESA VBE specs will allow the vendor to extend the video numbers used to whatever values they wish, so I have taken the liberty to extend the mode numbers used by the Universal VESA VBE to include modes not originally specified in the VBE 1.2 specs, but supported by a number of popular video cards on the market. Depending on how well your applications have been written, they may or may not be able to use those modes. The following is a list of the internal mode numbers used by the Universal VESA VBE and a description of each video mode: 102 - 800x600 16 color 104 - 1024x768 16 color 106 - 1280x1024 16 color 11C - 640x350 256 color 100 - 640x400 256 color 101 - 640x480 256 color 103 - 800x600 256 color 105 - 1024x768 256 color 107 - 1280x1024 256 color 10D - 320x200 32k color 11D - 640x350 32k color 11E - 640x400 32k color 110 - 640x480 32k color 113 - 800x600 32k color 116 - 1024x768 32k color 119 - 1280x1024 32k color 10E - 320x200 64k color 11F - 640x350 64k color 120 - 640x400 64k color 111 - 640x480 64k color 114 - 800x600 64k color 117 - 1024x768 64k color 11A - 1280x1024 64k color 10F - 320x200 16m color 121 - 640x350 16m color 122 - 640x400 16m color 112 - 640x480 16m color 115 - 800x600 16m color 118 - 1024x768 16m color 11B - 1280x1024 16m color Problems and known bugs ----------------------- 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 Refer to the BUGS file for a list of known problems with the Universal VESA VBE. Can I get the source code? -------------------------- Yes, you can order the full source code for the product from SciTech Software. Refer to the files PRODUCTS.DOC and ORDER.DOC for more information.