README.TXT for VSA256 Graphics Library Version 4.0 3-24-96 -------------------- FILES IN VSA256.ZIP DISTRIBUTION ----------------- The distribution of the VSA256 Graphics Library Version 4.0 consists of the 13 files listed below. These files are archived in the file VSA256.ZIP. To extract, just type 'PKUNZIP VSA256' in the directory that you want the files extracted to. VSA256MS.LIB VSA256 Graphics Library (Microsoft C compatible). VSA256BC.LIB VSA256 Graphics Library (Borland C Compatible). VSA.H VSA256 Include file required in your program. VSA_FONT.H VSA256 Include file required in your program. VSA_DEMO.C VSA256 Demonstration program (Source Code). VSA_DEMO.EXE VSA256 Demonstration program (Executable). VSA_DEMO.MAK Make File for Microsoft Quick C V2.5 (IDE). VSA_DEMO.PRJ Project file for Borland C/C++ V3.1 (IDE). VSA_DEMO.IDE Project file for Borland C/C++ V4.0 (IDE). VSA256.TXT The VSA256 Users Manual. ORDER.TXT A text file order form for registration and upgrades. README.TXT This Document DRIVERS2.EXE A self extracting archive of VESA BIOS TSRs. -------------- WHAT'S NEW IN VSA256 GRAPHICS LIBRARY V4.0 -------------- - MAJOR SPEED-UP of all drawing functions! - Added page flipping support for double buffered drawing! - Made the user definable FONT array expandable, no limit to size of character set. Great for foreign languages. - Added vsa_get... functions for all existing vsa_set... functions - Changed vsa_set_viewport so that 'BOTTOM' can be set beyond bottom of displayable video memory. Now the user can use off screen memory to store bitmaps for BitBLTs - ATI cards are auto detected to set VSA_ATI_COLOR global parameter. Manual override capability preserved. - New routine, vsa_triangle. - New routine, vsa_set_draw_page. - New routine, vsa_get_draw_page. - New routine, vsa_set_view_page. - New routine, vsa_get_view_page. - New routine, vsa_get_color. - New routine, vsa_get_text_color. - New routine, vsa_get_viewport. - New routine, vsa_get_clip_mode. - New routine, vsa_get_text_scale. - New routine, vsa_get_text_cursor_mode. - New routine, vsa_set_triangle_clip_mode. - New routine, vsa_get_triangle_clip_mode. -------------- Compatibility With Previous VSA256 Version ------------- Between VSA256 version 2.0 and version 3.0, text support was REVAMPED! I no longer rely on the video card manufacturers BIOS to get text support. Instead I draw each character using 2D vector strokes. The advantages are as follows: - Text now works with ALL video cards! - Now text is Infinitely scaleable. - Text positioning resolution is down to 1 pixel. - Background color is preserved. - The programmer can define his own fonts in VSA_FONT.H. Some minor incompatibilities with VSA256 version 2.0 were introduced due to the changes and they are as follows: - vsa_write_string now takes x,y (in pixel coordinates) instead of row,col (in character coordinates) as the first two parameters. - The first two parameters of vsa_write_string (x,y) are now int instead of unsigned char. - The vsa_write_char function was deleted. - The supported ASCII characters are the printable characters from ASCII code 32 to ASCII code 127. Your existing code should take very little editing to make these changes, especially if you write a macro to edit all occurrences of vsa_write_string as follows: OLD - vsa_write_string(row,col,color,text); NEW - vsa_write_string(col*XCharSize,row*YCharSize,color,text); ---------------- INSTALLING VESA BIOS EXTENSION DRIVERS --------------- DRIVERS2.EXE is a self extracting archive file which contains the VESA BIOS Extensions. When executed, it will create subdirectories for each of the video adapter manufacturers. Within each subdirectory, it will place the respective VESA driver. To execute: 1. Get into the directory where you want the subdirectories to be created. 2. Copy the file DRIVERS2.EXE into this directory. 3. type drivers2 -d (the -d tells it to create subdirectories). --------------------------- Trouble Shooting -------------------------- 1.) Please read the VSA256.TXT document, at least sections 1 and 2, to make sure you are setting things up right. 2.) If Turbo C says "Undefined Symbol ___brklvl in module vsa_all0", add the following line to the top of your main program file: unsigned __brklvl; 3.) This version of the VSA256 Graphics Library has a fix in it to support ATI color palettes. Going from 2.0 to 3.0, I switched the way I handled color palettes so that it would work with Diamond Vipers video cards. Unbeknownst (cool word) to me, this fix wiped out some ATI video cards. So, now I give you a global parameter called: VSA_ATI_COLOR Typically when you call vsa_init(), VSA_ATI_COLOR defaults to 0, which means it is set up for the Diamond Viper, NOT for ATI. Note that this is the preferred mode since palette updates in this mode are much, much faster. The vsa_init() routine checks to see if you have an ATI card. If it detects ATI, it will automatically set VSA_ATI_COLOR = 1. If you have an ATI card but autodetect fails, you can override it manually. Right after your vsa_init() call, slip in VSA_ATI_COLOR = 1; and you'll be swimming with ATI. This mode relies on BIOS calls for the palette updates, so its slower ... but it will get ATI users up and running. 4.) If you are writing your program in C++ and you are getting linker errors, its probably because the VSA256 library is compiled with straight C. Contact me for a C++ compiled version of the library. 5.) Tell me if there are any unresolved problems. ------------------------- Assist for 3 Compilers ---------------------- To help get you started, I have provided the "project" files for three different compiler Integrated Development Environments (IDEs). Microsoft Quick C, Version 2.5 ----> VSA_DEMO.MAK Borland C/C++, Version 3.1 ----> VSA_DEMO.PRJ Borland C/C++, Version 4.0 ----> VSA_DEMO.IDE Get in the respective IDE and just select/load the appropriate project file for your compiler.