The NEWFONT System ------------------ The programs in NEWFNT.ARC will provide owners of most EGA systems a new set of text fonts in both 25 and 43 line modes. In addition, they make it a simple task to switch between the ROM-based 8x14 font and the two new fonts. Included with the NEWFONT system are alternate font-switching programs to use with the NANSI.SYS console driver. The NEWFONT system also provides a simple method for users to load the EGA pallette registers, and make them resident throughout almost every application program. Two programs are included that will allow the NEWFONT system to be used with MARK/RELEASE, and with 'EGA-dumb' programs like Microsoft's CodeView. The NEWFONT system will not operate with EGA cards that cannot do font changes during mode changes. The Genoa Spectra EGA and the Tseng Labs EVA are the only EGA cards known at this time which will not operate with the NEWFONT system. Hopefully these EGA cards will soon fix the bugs in their EGA BIOS. These programs are user supported. Developing these new fonts is alot of work! If you feel that these programs are of value, I would appreciate a donation of $10.00. If you are using this program in a commercial environment, then the donation is not voluntary. If you include a stamped, self-addressed envelope, I will send patches for MS-Word 3.0 and Lotus 1-2-3 v2.0 that will allow you to change any color in either text or graphics; this is provided because they are the only programs I've found that override the pallette-setting features of NEWFONT. I will also provide details of all the NEWFONT programs so that you can use your own fonts and run other EGA programs with the NEWFONT system. You can send your donation to: Mark Horvatich 3310 Portal #1006 Colo. Springs, CO 80909 Description of the NEWFONT System --------------------------------- There are eight programs in the NEWFONT system. The main program, NEWFONT.COM, loads the NEWFONT system, selects a new 8x14 text font, and loads the EGA pallette registers with pre-set values. You run NEWFONT.COM by typing NEWFONT at the DOS prompt, or by having the line NEWFONT as a line in your AUTOEXEC.BAT file. If you type NEWFONT again, the system will select the ROM-based 8x14 font. Typing NEWFONT repeatedly will simply toggle the display between the NEWFONT font and the ROM-based font. NEWFONT.COM also moves the entire EGA SAVE_PTR table into RAM. This will be described later. PLEASE NOTE: NEWFONT.COM must be the first EGA resident program loaded into your system. Failure to do so may cause unpredictable results. The two programs 8X14LOAD.COM and 8X8LOAD.COM will load new 8x14 and 8x8 fonts, respectively, into the NEWFONT system. These programs allow you to quickly shift between 25 and 43 line mode, since the 8x8 font automatically selects 43 line mode. The font in the 8X14LOAD program is the same as the font in the main NEWFONT program. You can still access the ROM-based font at any time, even with the 8x8 font loaded into your EGA, by typing NEWFONT as described above. The programs NANS8X8.COM and NANS8X14.COM are identical in function to the above programs, but are for use with the NANSI.SYS console driver. They should be used in place of 8X8LOAD.COM and 8X14LOAD.COM if you use NANSI.SYS. The programs RESETPAL.COM and SETPAL.COM simply load the pallette registers with either the author-chosen values (SETPAL.COM), or the default values (RESETPAL.COM). This is provided for those who may not like my choice of colors. It also is an excellent demonstration of how simple it is to manipulate the pallette registers when the NEWFONT system is loaded. The programs FNTOFF.COM and FNTON.COM will disable and enable, respectively, the NEWFONT system. After FNTOFF is run, everything is returned to default operation, but NEWFONT remains in memory. You can then use MARK/RELEASE to remove NEWFONT from memory, if desired. FNTOFF and FNTON can also be used with programs like Microsoft's CodeView, which goes crazy whenever any EGA TSR modifies anything in the EGA SAVE_PTR (poor programming, in my opinion). You can set up a batch file to run CodeView; this batch file will run FNTOFF.COM, CV.EXE, and FNTON.COM in the above order. The last program, SETCUR.COM, is provided for those EGA cards that emulated the bug-filled BIOS of the IBM EGA card. A major bug in the IBM EGA BIOS will cause the cursor to disppear in 8x8 mode when a program defines a cursor that is one to three rows tall. Fortunately, most programs make the cursor larger within the program, and reset the cursor upon exiting the program. If you lose your cursor after exiting a program, simply type SETCUR, and your cursor will be restored. PROBLEMS, WARNINGS, ETC ----------------------- There are two potential problems with the NEWFONT system. First, do not, UNDER ANY CIRCUMSTANCES, use the NEWFONT system with any other EGA resident program that does not check whether the SAVE_PTR table has been moved into RAM. You will most likely crash your system, since NEWFONT will no longer know how to change fonts. Also, as stated before, the NEWFONT system MUST BE THE FIRST RESIDENT EGA PROGRAM LOADED. Other EGA resident programs should be loaded after NEWFONT.COM is loaded. This will ensure that all well-behaved EGA resident programs work together. If NEWFONT.COM is loaded, however, you can always return to the NEWFONT system by running SETCUR.COM. The second problem (currently) is with 43 line mode. This mode is not currently supported by DOS and most application programs, so you must use it at your own risk. If you would like to use 43 line mode, the file ANSIEG.DOC in DL3 of the IBM Hardware Forum details the patches necessary to use 43 line mode in DOS. Hopefully, future versions of DOS and other application programs will recognize the benefits of 43 line mode, and support it. The NANSI.SYS driver is a good start in this direction. Description of EGA SAVE_PTR Table --------------------------------- The following is a description of the EGA SAVE_PTR table that the NEWFONT system sets up in RAM. It is provided for the use of software developers who would like to write EGA resident programs to work with the NEWFONT system. It is also provided in the hopes that it become a standard, which would make the above warnings about the NEWFONT system unnecessary. The offset listed is the offset from the EGA entry point found in memory location 0:4A8h: offset description bytes 0h DWORD_1 to DWORD_7 28 1Ch reserved 4 20h DWORD_1 table 1472 5E0h DWORD_2 table 256 6E0h DWORD_3 table 32 700h DWORD_4 table 28 71Ch reserved 4 720h font table(s) 3584 1520h ** end of table ** Other EGA resident programs (such as ones which set EGA pallettes or load graphics fonts) which follow the above guidelines do not need to set aside any RAM for the SAVE_PTR table, since RAM is set aside for everything except extra fonts. The EGA resident program need only query location 0:4A8h, check whether the EGA table has been loaded into RAM, and if so, modify the EGA SAVE_PTR locations as necessary. The NEWFONT system also provides a simple method to load the EGA pallette registers. NEWFONT defines a function (AH=0CCh) of INT 10h that will return the segment address (in AX) of the SAVE_PTR table, a segment address (in BX) that will point to the 16 pallette registers and overscan register at BX:00F0, and a flag word of 0ABCDh (in CX) if the NEWFONT system is loaded. If a pallette-changing program calls INT 10h with AH=0CCh, checks CX for 0ABCDh to determine whether the NEWFONT system is loaded, then loads the 17 values at BX:00F0, the pallette-changing program can exert much more control over the pallettes than otherwise possible. ------------------------------------------------------------------------------ If you have any questions, feel free to ask them in the HP Forum (GO HP) or in the IBM Hardware Forum (GO IBMHW) in CompuServe. Have fun! Mark Horvatich Sysop, HP Forum (Compuserve) 76703,4163