We (see here for more information about us) spent weeks searching the depths of the Internet ftp sites for a library that would allow the programmer full access to the abilities of Super VGA. We wanted the colors VGA could provide and better resolution than EGA could provide. Professionally developed libraries with this ability were definitely out of our price range. After our searches continuously returned nothing, we decided to fill the apparent void in the shareware market.
Our searches did give two useful packages: John Bridges' VGAKIT and Finn Thoegersen's VGADOC. We began with these two works and developed a graphics library intended to allow the programmer access to the huge world of high resolution programming. On the surface the task appeared quite simple. However, it quickly became obvious that the routines in this library would be required to affect extremely large amounts of data. Operations must be quick to be successful. Therefore, every effort was made to create the fastest code possible - even at the expense of size. For this reason we opted to write code with the 32 bit instructions of the 80386 and better processors. It is our opinion that anyone with a hi-res card in a lesser machine may have some priorities out of order. All routines are written in assembly and use absolutely no floating point values. Anytime a real number was required, fixed point notation was used. In addition we attempted to write the routines such that any reasonable argument passed can be interpreted intelligently by the library.
With the numerous Super VGA cards available and no well established standard we chose John Bridges' identification and bank switching routines as a beginning. These two routines have undergone some modification, but not enough to justify copyrighting this portion of the library's code by Zephyr Software. We have no intentions of releasing our changes to these routines into the public domain. From that point onward all code is original. In some instances common algorithms were researched and original code written according to that algorithm.
This Super VGA library gives the programmer transparent access to twenty plus different Super VGA cards. These cards include Acer, Acumos, Ahead, ATI Technologies, Avance, Chips and Technologies, Cirrus Logic, Everex, Genoa, MXIC, NCR, Oak Technologies, Paradise/Western Digital, Primus, Realtek, Trident, Tseng Labs, S3, UMC, Video 7 and the VESA standard. Please see the WHICHVGA function for the specific chipsets. The programmer only needs to verify that the end user's card has been identified, but not which card was recognized. After proper identification, all functions react in exactly the same fashion. The library contains functions to draw all of the major primitives. In addition there are functions that modify the screen palette, write text on the screen with a choice of fonts and modify the reaction of the primitives. Identification routines include not only the video card, but also the amount of video memory, type of processor and installed pointing devices. Advanced functions provide full mouse support (when used with a Microsoft compatible driver) and joystick support. Finally, support for two dimensional and three dimensional coordinate systems is provided including rotation, translation, scaling and projection.