INT10FIX DOCUMENTATION Published by: PC Enterprises 2400 Belmar Blvd, Wall NJ 07719 Authors: P. Joseph Calabria and Kurt J. Stampone A small percentage of jrExcellerator customers have reported that their PCjr occasionally beeps and ignores key-presses when the jrExcellerator is used in "fast" mode. Although this problem is encountered by very few PCjr users, it is a definite problem that has a solution. The problem is caused by improperly written code in the PCjr's ROM BIOS. That's why replacing the jrExcellerator can not correct this problem. Instead, the solution is to use the FIXBEEP program to correct the PCjr's ROM BIOS. If you are not experiencing a keyboard beeping problem then there is no benefit in running the FIXBEEP program. The keyboard beeping problem is caused by bugs in the PCjr's ROM BIOS routine used to handle keyboard input. The BIOS routine incorrectly uses the Intel 8253 timer chip which is decodes keyboard transmissions. Intel, the manufacturer of the timer chip, specifies that the chip must be allowed at least one microsecond to settle after each read or write operation. The PCjr's ROM BIOS clearly violates this specification. In most cases, Intel's timer chips are actually much better than their specifications indicate. That's why the violation rarely causes a problem when the PCjr is operated at 4.77MHz. However, when the PCjr is operated at 9.54MHz, these bugs prevent some of Intel's timer chips from working properly. The FIXBEEP program provides the solution. It allows the PCjr to comply with the timer chip's specifications by allowing a microsecond wait after reading or writing to the chip. The FIXBEEP program has been placed in the Public Domain and we encourage you to share it with other PCjr users who encounter a keyboard beeping problem. If you are using the PC Enterprises Keyboard Buffer Cartridge be sure to run the JRSYNC or JRSYNCNP program before you run FIXBEEP. To use the FIXBEEP program we recommend you copy the program to your boot disk and include the FIXBEEP /I command in your AUTOEXEC.BAT file. By doing this the keyboard beeping corrections will be made automatically each time you boot your computer. FIXBEEP must be run from high memory (memory above 128KB) because it is timing dependent. If FIXBEEP is not run from high memory, the wait states added by the PCjr's video circuitry would prevent your keyboard from working. To avoid this problem, if you attempt to install FIXBEEP in low memory, the program will refuse to load, and a message will tell you why. If you receive the "Program is not being loaded into fast memory" message, it means you tried to load FIXBEEP in slow (internal) memory. There are at least two ways you can correct this problem. One method that will force FIXBEEP, and all your software to load in the PCjr's "fast" memory is to modify the command you are using to install your memory management software. If you are use jrConfig this means do not use the -S option at all, or use the -S option with a value of 91 or larger. For a quick and easy solution, simply use the jrExcellerator's FASTMEM command before you run FIXBEEP. FASTMEM will not do anything at all if all of your PCjr's slow memory has already been set aside. However, if slow memory is still available, FASTMEM will set it aside for you. You may wish to include the FASTMEM command in your AUTOEXEC.BAT file, as long as it appears before FIXBEEP. If your jrExcellerator ROM BIOS is revision 3.0 or later the FIXBEEP program is built into the jrExcellerator. This offers several advantages. First, the FIXBEEP command becomes an internal DOS command, which means it never needs to be on your diskette drive. Second, the version of FIXBEEP built into the jrExcellerator BIOS, always runs from ROM instead of RAM. In other words, you'll never need to worry about slow memory because programs built into ROM run faster than programs which execute from RAM. Unfortunately, jrExcellerators that use an earlier ROM BIOS can not be upgraded without returning the jrExcellerator to PCE. The reason is that the FIXBEEP program requires a larger EPROM and modifications must be made to the jrExcellerator to use the new EPROM. The diskette version of FIXBEEP requires the /I option before it will install. To install FIXBEEP type: FIXBEEP /I To see the help screen type: FIXBEEP /? In addition to these options FIXBEEP also provides parameters for diagnostic test purposes. In the unlikely event that FIXBEEP does not correct a beeping problem that you experience, install FIXBEEP using the /D or /S parameters. In this mode, any time a beep is produced, FIXBEEP will display information PCE can utilize to determine what caused the beep. If this happens, write down any codes produced in diagnostic mode, then contact PCE. (Remember: It is normal for the PCjr to beep while the diskette drive light is on unless you have a Keyboard Buffer Cartridge installed). For more information contact: PC Enterprises "The jrProducts Group" Customer Service: 1-908-280-0025 Order and Catalog Hotline: 1-800-922-PCjr The PCjr Lives There is a Reason!