VGAMAX 2.0 by Christopher Antos Introduction ------------ VGAMAX is a TSR utility that intercepts BIOS requests to change the video mode or the video font. VGAMAX will substitute a font of your choice for the default ROM fonts that you usually see on your screen. VGAMAX only affects text mode, and does not do anything when a graphics request comes in--VGAMAX lets the ROM BIOS handle all graphics requests. VGAMAX has a built-in help screen which lists the valid commands. To see the help screen, type VGAMAX ? at the DOS prompt. Using VGAMAX ============ First, you must install VGAMAX. To do this, you must decided how many "font banks" you want to have. A font bank is a chunk of memory which VGAMAX uses to store your custom fonts. You can tell VGAMAX to reserve up to 8 font banks, each of which can hold a different font. To make VGAMAX substitute one of your custom fonts for a ROM BIOS font, you tell VGAMAX which font bank contains the particular custom font you want to use. The following three sections explain how to install VGAMAX using the three different types of memory: conventional memory, EMS memory, and XMS memory. If you have High RAM and utility that lets you use it, you can load VGAMAX into High RAM, too. See your High RAM memory manager manuals for information on how to do this. Conventional Memory ------------------- If you don't have High RAM, EMS memory, or XMS memory, you will have to install VGAMAX into conventional memory. This method of installation takes the most memory away from DOS (or High RAM). VGAMAX will take 3k for the program code, and 4k per font bank. To install VGAMAX, use this command: VGAMAX /N where is the number of font banks to reserve. See the section "Features" to find out what you can do with VGAMAX once it's installed. EMS Memory ---------- VGAMAX can use EMS memory for its font banks. This allows VGAMAX to only take away 3k from DOS (or use 3k of High RAM). However, since EMS memory can only be reserved in 16k chunks, VGAMAX will give you either 4 or 8 font banks. If you request 4 or fewer, VGAMAX will give you 4. If you request 5 or more, VGAMAX will give you 8. To use EMS memory, use this command: VGAMAX /N /E where is the number of font banks to reserve. See the section "Features" to find out what you can do with VGAMAX once it's installed. XMS Memory ---------- VGAMAX can use XMS memory for its font banks. If you use XMS memory, VGAMAX will take 7k away from DOS (or use 7k of High RAM). The font banks will be in XMS memory, though. You can reserve up to 8 font banks. Each font bank will take 4k of XMS memory. To use XMS memory, use this command: VGAMAX /N /X where is the number of font banks to reserve. See the section "Features" (below) to find out what you can do with VGAMAX once it's installed. Features ======== VGAMAX has many options, which are outlined below. Keep in mind that I'm a college student and don't have the time to explain each feature in detail. You'll have to do some experimenting. I've done my best to make VGAMAX easy to use and understand, though. Loading Fonts ------------- Before you can do anything with fonts, you must load a font into a font bank. Use this command: VGAMAX /F where is the number of the bank into which you want to load the font in the file . You can load a different font into each font bank VGAMAX has reserved. Activating a Custom Font ------------------------ Once a font is loaded into a font bank, you can tell VGAMAX to activate that font by using this command: VGAMAX /F where is the number of the bank into which you loaded the font. Substituting for the ROM Fonts ------------------------------ VGAMAX can substitute the font of your choice for the 8x8 font (used in 50-line and 43-line display modes), the 8x14 font (used in 28-line mode on the VGA, or as the default font on the EGA), or for the 8x16 font (the default font for VGA cards). To tell VGAMAX to use a custom font in place of the 8x8 font, use this command: VGAMAX /A where is the number of the bank into which you loaded the font. This font will be activated automatically whenever any program tries to switch to 50-line mode or 43-line mode. (Note that your custom font doesn't need to be an 8x8 font--it can be whatever you want--an 8x16 font, or maybe an 8x7 font to give you even MORE lines of text on the screen!) To tell VGAMAX to use a custom font in place of the 8x14 font, use this command (for EGA cards, don't use this command, use the next one): VGAMAX /B where is again the bank where the font resides. This font will be used whenever a program tries to activate the ROM 8x14 font. (Note that your custom font doesn't need to be an 8x14 font!) To tell VGAMAX to use a custom font in place of the default system font, use this command: VGAMAX /M where is (you guessed it) the bank where the font resides. This font will be used whenever a program switches to normal 25-line text mode. (Note that you can use any size font--you could use an 8x8 font, for instance, to force the computer to always be in 50-line mode!) To disable any of these font substitutions, use the same letter command as you did to enable them, but tell VGAMAX to use bank zero. For example: VGAMAX /A0 VGAMAX /B0 VGAMAX /M0 VGA Palettes ------------ If you have a VGA card, you can tell VGAMAX to replace the default text mode palette with a custom palette you create. See the section "PMAKE: The Palette Creator" for information on creating palettes. To load your custom palette into VGAMAX, use the command: VGAMAX /P where is the filename of your custom palette. Now that the palette is loaded, you need to tell VGAMAX to use your palette. To do this, use this command: VGAMAX /P Note that the "/P" command with a filename is very different from the "/P" command without a filename. The former loads a custom palette, the latter activates your custom palette. If you want to revert to the default palette, use the command: VGAMAX /R The Hotkeys ----------- VGAMAX lets you switch between fonts and palettes at the touch of a key, too! You can press Ctrl-Alt-0 (NOT on the numeric keypad) to cycle through the loaded fonts until you find one you like. To switch to the 8x8 font (the ROM default font, or your custom font if you've used the /A option), press Ctrl-Alt-6. To switch to the 8x14 font (the ROM default font, or your custom font if you've used the /B option), press Ctrl-Alt-7. To switch to the 8x16 font (the ROM default font, or your custom font if you've used the /M option), press Ctrl-Alt-8. (Pressing Ctrl-Alt-9 will do the same thing). To switch to your custom palette, press Ctrl-Alt-[ (that's the left square bracket, next to the "P" key). To switch to the default ROM palette, press Ctrl-Alt-] (right square bracket). Changing the Number of Font Banks --------------------------------- If you are using EMS memory or XMS memory to hold the font banks, you can tell VGAMAX to change the number of font banks it has reserved. Just use this command: VGAMAX /N where is the new number of banks. If this is fewer than the number of banks you had previously reserved, VGAMAX will release the unneeded banks (thus losing the fonts in them). If the new number of banks is greater than it was before, then VGAMAX will make room for more fonts, but will not affect the fonts currently loaded. If the number is the same then nothing happens. If you are using conventional memory, then you will have to uninstall VGAMAX and reinstall it to change the number of font banks (thereby losing ALL the loaded fonts). Uninstalling VGAMAX ------------------- To uninstall VGAMAX, first make sure that there are no memory resident programs still installed which were installed after VGAMAX was. Then use this command: VGAMAX /U Hints ----- The VGAMAX commands have each been explained separately above. However, you can mix multiple commands together. For instance, to install VGAMAX, reserve 4 font banks in EMS memory, load a font into bank 2, load another into bank 3, activate the font in bank 2, load a custom palette, and activate that palette, you might use this command: VGAMAX /N4/E/F2myfont.a/F3myfont.b/F2/Pmypal/P The Font Utilities ================== FED: The Font Editor --------------------- FED is a quick and dirty font editor which lets you create and modify fonts for VGAMAX (and similar custom font programs). It is fairly self-explanatory, so please just experiment with it and figure out how it works on your own. I'm just a struggling student. I can't fully document everything I do. My apologies. GRABFONT: The Font Grabber --------------------------- If there's a program that uses a cool font and you'd like to use that font yourself, you can use GRABFONT to snag the font for use with VGAMAX (and similar custom font programs). GRABFONT only works from the DOS prompt, so you will have to either shell to DOS or hope that your program doesn't switch back to the ROM font when it is done. To grab a font, use this command: GRABFONT where is a filename you want to save the font under. PMAKE: The Palette Creator --------------------------- PMAKE lets you create VGA palette files for VGAMAX's user palette feature. The input file is an ASCII script file, and the output file is a VGAMAX palette file. The ASCII script file must have 16 lines which describe the 16 colors you want to use. Each of these lines must have three decimal (base 10) numbers which give the Red, Green, and Blue values for the color. Each individual RGB value can range from 0 to 63. The three values must be separated by commas. An example follows: 0, 0, 0 ;black 0, 0, 42 ;blue 0, 42, 0 ;green 0, 42, 42 ;cyan 42, 0, 0 ;red 42, 0, 42 ;magenta 0, 42, 63 ;brown 42, 42, 42 ;gray 21, 21, 21 ;dark gray 0, 0, 63 ;bright blue 0, 63, 0 ;bright green 0, 63, 63 ;bright cyan 63, 0, 0 ;bright red 63, 0, 63 ;bright magenta 63, 63, 0 ;bright yellow 63, 63, 63 ;bright white This example defines the default color palette that your VGA video card uses (in fact, all the video cards use the same default palette, but VGAMAX can only work "palette magic" with the VGA card). The file "USER.ROM" is a good starting point for creating your own palette files (it holds the above default definitions). The ASCII script file may contain more than 16 lines, but the additional lines must be either blank lines or comment lines. Comment lines must begin with a semicolon (;). PMAKE is used to "compile" the script file into a VGAMAX palette file. To compile a script file, use this command: PMAKE where is the filename of the ASCII script file and is the filename of the VGAMAX palette file to produce. Donations --------- As I mentioned earlier, I'm a struggling student. This utility is a quality utility, with a couple years of use behind it (I only recently decided to release it to the public). It's DonationWare. In other words, if you like it, please send a donation of $5 to the US address below. Known Bugs ---------- Since I don't have access to a computer with an EGA or MCGA video card, I can't say that VGAMAX will work for sure on them. In fact, I think it will encounter some problems, because I added some code to VGAMAX to make it figure out if you have an EGA or MCGA card and do some things differently than for a VGA. These things probably will not work, since currently I have no way to debug them. Other than this shortcoming, VGAMAX should be bug free. If you find or think you may have found a bug, please contact me: Internet: christopher_antos@ub.cc.umich.edu US Mail: Christopher Antos 2115 Windsor Drive Ann Arbor, MI. 48103 U.S.A. Disclaimer ---------- In the (unlikely) event that anything goes wrong or that VGAMAX in some way damages your computer or your data or causes any kind of liability to you, I AM NOT RESPONSIBLE IN ANY WAY. Thank you for trying VGAMAX. I hope it is useful for you.