LOADING THE DOS VERSION OF JAWS INTO HIGH MEMORY January 1994 CONTENTS 1. INTRODUCTION TO MEMORY AREAS 2. MEASURING CURRENT MEMORY USAGE 2.1 DOS MemMaker 2.2 QEMM 3. STEPS FOR LOADING JAWS HIGH 3.1 Make a Boot Disk 3.2 Remove Unessential programs 3.3 Run Memory Allocation Software 3.4 Check Your Results 3.5 JAWS Did Not Load into High Memory 3.6 Restore CONFIG.SYS 3.7 Restore Batch Files 3.8 Final Check 4. ADDITIONAL WAYS TO SAVE MEMORY 4.1 CONFIG.SYS 4.2 AUTOEXEC.BAT 5. RECOVERING FROM BOOT FAILURE 1. INTRODUCTION TO MEMORY AREAS This chapter describes the process that is used to load JAWS into high memory. It is desirable to load JAWS into high memory when the demand for lower memory is large. If your PC is working efficiently and you have not encountered a problem with insufficient memory, then you may not need to be concerned about loading JAWS and other software into high memory. Also, if the hardware of your PC does not have additional memory, then you will be unable to load JAWS high. You can load JAWS into high memory on computers that have an 80386 or an 80486 computer processor with additional memory. Older PC's such as 80286 and 8088 PC's have very limited or no possibility of using high memory, and therefore are being excluded from discussion in this chapter. When you install JAWS on your PC, it is automatically setup to use conventional memory. Conventional Memory is usually the first 640K of a computer's memory. This memory area is typically shared by DOS, JAWS, terminate and stay resident (TSR) software, and by most application software programs. For example, if you are using JAWS with a DECTalk PC synthesizer and with WordPerfect, then these software programs and related device drivers are all sharing the 640K of conventional memory. In many cases, the conventional memory area is large enough to effectively run JAWS and a major application software program such as WordPerfect, Lotus 1-2-3, etc. However, as application software programs continue to grow in size, and the use of increased numbers of TSR software programs continue to grow, it is possible to reach a point where the conventional memory area is just not large enough. To address the problem of inadequate conventional memory size, PC designers have devised several solutions which can increase the amount of PC memory that is available for software applications. The terms: expanded memory, extended memory, Shadow RAM, stelf memory, and high memory are all used to refer to memory areas beyond the first 640K of conventional memory. For the purpose of this chapter, we will use the global term of High Memory to refer to all memory that is in addition to the 640K of conventional memory located in the lower memory area. Several of the following sections make a distinction between two memory managers. A Memory Manager is software that determines how the high memory area is to be used. "MemMaker" which is part of recent Microsoft DOS versions, and "QEMM" which is produced by Quarterdeck, will be discussed in this chapter. The basic steps that are described for these memory managers, however, can be applied to other memory managers. Regardless of the memory manager you use, you should only use one memory manager at a time. Thus, you should only follow the instructions that refer to the specific memory manager you are using. 2. MEASURING CURRENT MEMORY USAGE Before deciding to load JAWS into high memory, we should determine how your PC's memory is currently being used, and whether you can (or should) load JAWS and other software into high memory. 2.1 DOS MemMaker At a DOS prompt either type: MEM /C or MEM /P( for DOS 6.2) The information that is displayed on the screen shows the current memory usage for your PC. It shows which programs are running in conventional memory and in high memory. The most important information in this analysis is found at the bottom of the list. The number that follows the line "Largest Executable Program Size" indicates the amount of conventional memory that is available to run additional software. This number is likely to range from 300K to 600K. Make a note of the memory size for future reference. 2.2 QEMM At a DOS prompt, change to the \QEMM subdirectory by typing C:\QEMM and pressing ENTER. Next, from the \QEMM prompt, type QEMM SUM and press ENTER. At this point, QEMM displays its analysis of memory usage. The top line of data describes the amount of conventional memory that is available. The fourth number on the line is the amount of free memory in the lower memory area. This number is likely to be a number in the range of 300K to 600K. Make a note of the memory size for future reference. 3. STEPS FOR LOADING JAWS HIGH If the results in the preceding section indicate that you have less than 500K of free memory, then you may wish to load JAWS and other terminate and stay resident software into high memory. Many application software programs now require 500K to 600K of free memory in the lower memory area, and if you are substantially below 500K, then you may experience a shortage of available memory. The maximum free memory that could be made available when DOS, JAWS, and device drivers are loaded into high memory is in the range of 600K to 615K. If you decide to load JAWS into high memory, then follow the remaining steps in this section. 3.1 Make a Boot Disk You should make a boot disk that includes copies of the AUTOEXEC.BAT and CONFIG.SYS files that you are currently using. The boot disk might be needed in the event the procedures we describe fail to achieve the intended result for your PC and you lose the use of your speech system. Please refer to section 5 of this chapter in the event you need to use the boot disk to restore the original setup on your PC. You can make a boot disk by following these steps: a. Begin with a freshly formatted floppy diskette. If you have more than one diskette drive, then the diskette should fit into your "A:" drive. b. From the root directory of your hard disk (usually the C:\ drive) type SYS B: and press ENTER. This will copy the DOS system to the floppy diskette. c. Copy the "AUTOEXEC.BAT", "CONFIG.SYS", and "COMMAND.COM" files from the root directory of your hard drive to the floppy diskette. For example: Type COPY C:\AUTOEXEC.BAT A: and press ENTER. d. Remove the boot disk from the floppy diskette drive and store it in a safe place. 3.2 Remove Unessential programs Your CONFIG.SYS and AUTOEXEC.BAT files are used by the PC when it boots up. These files configure the operating system, set parameters, and load certain types of software. The order in which commands appear in the CONFIG.SYS and AUTOEXEC.BAT files is directly related to the order in which sections of free memory are used. Thus, since we want to be sure that there is enough room in high memory to load JAWS, it is necessary to temporarily remove some of the commands from these two files. The commands will all be restored at the end of this procedure. Our goal is to only remove unessential commands, while preserving commands that enable JAWS and your synthesizer to speak. To prepare the CONFIG.SYS and AUTOEXEC.BAT files, you need to use a text editor or word processor to add the expression "REM" to the beginning of each line that you wish to prevent from being used. For example, if a line in the CONFIG.SYS appears as follows, C:\DRIVERS\SJDRIVER.SYS then you should add "REM" at the beginning of the line so that it reads as shown below. REM C:\DRIVERS\SJDRIVER.SYS (Notice that there is a blank space after the expression REM, and that quote marks are not used around the expression.) Step 1: Begin with the CONFIG.SYS Begin by modifying lines in your CONFIG.SYS file. Once you have made the necessary changes, then save the file to your root directory. Use the proper path and original file name which is usually "C:\CONFIG.SYS". IMPORTANT! If you are using a word processing program to modify this file, then be sure to save the file as a DOS text file or in a non-document format. The file will not function properly when it is saved as a word processing file. Tip If your synthesizer uses a device driver, then do not place "REM" at the beginning of the line that loads the synthesizer. Step 2: Next Modify the AUTOEXEC.BAT Begin modifying the AUTOEXEC.BAT file by placing "REM" in front of the lines which you wish to exclude from being used. Tips a. Do not place "REM" at the beginning of the line that starts with the word "PATH". b. If your AUTOEXEC.BAT contains the line "C:\DOS\SMARTDRV.EXE", then exclude this line by adding "REM" at the beginning of the line. c. Place "REM" in front of the line that says "CALL JAWS". You now need to copy the contents of the file "JAWS.BAT" to the very end of the AUTOEXEC.BAT file. This file is usually located in the default \JAWS subdirectory. In most cases, this means that you would retrieve the file "C:\JAWS\JAWS.BAT". If you did not REM out the line "CALL JAWS", then this must still be done. If you are using a DECTalk synthesizer, then you also need to copy the contents of "DECTALK.BAT" into the AUTOEXEC.BAT file. The commands from the DECTALK.BAT file must precede the lines of text from the JAWS.BAT file. Once you have made the necessary changes to your AUTOEXEC.BAT file, then save the file to your root directory. Use the proper path and original file name which is usually "C:\AUTOEXEC.BAT". IMPORTANT! If you are using a word processing program to modify this file, then be sure to save the file as a DOS text file or in a non-document format. The file will not function properly when it is saved as a word processing file. 3.3 Run Memory Allocation Software During this step you will use software which is designed to determine how your high memory can most effectively be used. The software will load JAWS and your other software into various regions of high memory to find the best memory location for each software program. During the use of these software programs, your PC will reboot automatically one or more times. Follow the steps below for either MemMaker or QEMM. If you will be using the DOS MemMaker, then, at a DOS prompt, type MEMMAKER and press ENTER. Select the option for doing an automatic setup, and let MemMaker work on your memory. This may take several minutes. If you will be using QEMM, then change to the \QEMM subdirectory, type OPTIMIZE, and press ENTER. Select the option for doing an automatic setup. The optimize procedure may take several minutes to complete. 3.4 Check Your Results After you have used MemMaker or Optimize, then you will need to determine whether JAWS was loaded into high memory. Do this by using one of these commands. DOS MemMaker Type MEM /C and press ENTER, or Type MEM /P and press ENTER. (Use this for DOS 6.2) Examine the number which is shown by "Largest Executable Program Size". It should be 100K or more larger than it had been. Also examine the list of programs which are displayed to find out where the executable JAWS program has been loaded. The executable JAWS program will have a name such as "J_DECTLK.EXE", "J_ACNTPC.EXE", etc. If the memory size has not increased as indicated and the executable JAWS program is still in conventional memory, then follow the suggestions in section 3.5. QEMM Optimize Type CD\C:\QEMM and press ENTER to change to the \QEMM subdirectory. Type QEMM SUM and press ENTER. Now you can examine the last number on the top line of the memory analysis for conventional memory. It should be 100K or more larger than it had been. To varify that JAWS has been loaded into high memory, Type LOADHI and press ENTER. Look for the executable JAWS program name in the list of programs that are shown as being loaded in high memory. The executable JAWS program will have a name such as "J_DECTLK.EXE", "J_ACNTPC.EXE", etc. If your conventional memory has not increased and JAWS is not loaded into high memory, then follow the suggestions made in section 3.5. You can also verify whether JAWS was loaded into high memory by examining your new AUTOEXEC.BAT file. If the executable JAWS program was loaded into high memory, then Optimize will have added instructions to the beginning of that line so that the line would look something like the following. C:\QEMM\LOADHI /R:3 J_ACNTPT. 3.5 JAWS Did Not Load into High Memory If JAWS was unable to be loaded into high memory, then you will need to rearrange your AUTOEXEC.BAT file. You will need to move the lines of text from the end of the AUTOEXEC.BAT file that were taken from the JAWS.BAT file, and move them to the top of AUTOEXEC.BAT. If you are using a DECTalk PC synthesizer, then you will also need to move the lines of text from the DECTALK.BAT file. The lines of text from the DECTalk file should always precede the lines from the JAWS.BAT file. Save the revised AUTOEXEC.BAT file as a DOS text or non-document file and repeat the steps presented in sections 3.3 and 3.4. If you repeat the steps in the preceding two sections and find that JAWS still was not loaded high, then you may need to do a custom setup with MemMaker or Optimize. Please refer to the user's manuals for those software programs to obtain assistance. If you are using QEMM, then you may wish to read the chapters that discuss Stelf RAM. Also, section 4 of this chapter contains additional tips for increasing memory, and those suggestions could help JAWS load into high memory. 3.6 Restore CONFIG.SYS If JAWS has been loaded high and it operates properly, then you will need to restore the CONFIG.SYS file. You do this by retrieving the CONFIG.SYS file from the root directory of your hard disk drive and removing the expression "REM" from the beginning of each line to which it had been added when you began this process. Next, save the file back into your root directory. Be sure to save the file as a DOS text file or in a non-document format. 3.7 Restore Batch Files If JAWS has been loaded high and it operates properly, then you will need to restore the AUTOEXEC.BAT and JAWS.BAT files. If you have a DECTALK.BAT file then it will also need to be restored. You do this by retrieving the AUTOEXEC.BAT file from the root directory of your hard disk drive. Then, you will need to copy lines of text from the AUTOEXEC.BAT file and replace the commands that were in the original batch files. Thus the lines that were in JAWS.BAT should be copied back to that file. If lines had been copied from DECTALK.BAT, then these lines should be copied back to DECTALK.BAT. Once the lines have been copied to batch files, then the lines should be removed from the AUTOEXEC.BAT file. Some PC users prefer to create a new batch file for loading JAWS into high memory. If this is preferred, then you should not copy the modified lines of text to JAWS.BAT. Instead, create a new batch file called "JAWSHIGH.BAT". When this is done, you will have the option of loading JAWS into conventional memory or high memory by typing the batch file name of JAWS or JAWSHIGH. Place the JAWSHIGH.BAT file in the default \JAWS subdirectory. Next, we need to remove all of the "REM" statements that were added to the AUTOEXEC.BAT file when we began these procedures. If you created a new batch file called JAWSHIGH.BAT, then you should change the line in the AUTOEXEC.BAT file that says "CALL JAWS.BAT" to "CALL JAWSHIGH.BAT". Next we will modify the DOS SMARTDrive command line in the AUTOEXEC.BAT file. Add "/L" after the command. This will force SMARTDrive to be loaded into conventional memory. This is done to prevent SMARTDrive from being loaded into high memory, which could prevent JAWS from being loaded into high memory. If you wish, you could choose to not use the /L parameter and then monitor the loading of JAWS. If you find that there is enough room for both JAWS and SMARTDrive to be loaded into high memory, then you can continue to not use /L. If JAWS will not load into high memory along with SMARTDrive, then you must use the /L parameter. Finally, you are ready to save the new AUTOEXEC.BAT file to the root directory. If you are using a word processing program to modify this file, then be sure to save it as a DOS text file or in a non-document format. 3.8 Final Check After you have saved the modified files as described in sections 3.6 and 3.7, then reboot your computer. Everything should work properly, and JAWS should be loaded into high memory. If you want to examine the current memory usage, then follow the steps presented in section 2 and in section 3.4. If JAWS does not talk after you reboot, then read section 5 to find out about using the boot disk for restoring the speech system. 4. ADDITIONAL WAYS TO SAVE MEMORY The following tips may help you to further increase the size of free conventional memory. 4.1 CONFIG.SYS a. The number of BUFFERS and FILES that are specified in your CONFIG.SYS affects memory usage. A greater number of DOS buffers and files will utilize more memory than will a smaller number. Values of FILES=30 and BUFFERS=20 should be adequate for most situations. b. If you use the DOS LASTDRIVE command, then be sure you are not allocating too many drive structures in memory. Setting this value higher than is necessary wastes memory. If the command is not used in your CONFIG.SYS, then DOS sets the LASTDRIVE value at one drive letter higher than your highest drive. If, for example, your PC has two drives (A: and C:), then DOS sets the value equal to "D". In this example, you could set LASTDRIVE=C to save a little memory. c. If you are using the DOS STACKS command, you can probably free up some memory by reducing the value for the command. It is common to find STACKS=9,256 in a CONFIG.SYS file. In most cases, you can set STACKS=0,0 and save memory. (CD drive multi-media systems may require the higher value for STACKS.) d. It is a standard practice to load DOS into high memory. If your CONFIG.SYS file does not contain the line "DOS=HIGH UMB" then it probably should. e. The CONFIG.SYS command "DEVICE=C:\DOS\SETVER.EXE" helps application software with determining which DOS version is in use. This command is usually not necessary, though it does provide some additional safety for programs that should only be run with specific DOS versions. 4.2 AUTOEXEC.BAT There are several ways to rearrange commands in the AUTOEXEC.BAT to reduce memory usage. If you move the PATH, PROMPT, and SET statements to the end of your AUTOEXEC.BAT, then you will probably reduce memory usage. The goal here is to load larger programs first and to load the smallest programs last. This means JAWS should be loaded first. JAWS, and many other programs, require a larger amount of memory when they load than they will occupy when they are running. Thus, the memory space that is given up after JAWS loads can be used by smaller programs that are loaded after JAWS. The obvious disadvantage of loading JAWS at the beginning of the AUTOEXEC.BAT file is that JAWS will normally speak all of the information that is displayed on the screen in response to commands that follow the loading of JAWS. If you have followed the steps presented earlier in this chapter and JAWS is being loaded into high memory, then the order of commands shown in the sample AUTOEXEC.BAT file will minimize memory usage and prevent JAWS from speaking unwanted information that is generated by the AUTOEXEC.BAT. This is a sample AUTOEXEC.BAT file, and is not intended for use in a PC. C:\DOS\SMARTDRV.EXE /L 512 call C:\JAWS\JAWSHIGH.BAT LOADHIGH C:\JAWS\J_UNLOAD /S PATH=C:\DOS;C:\JAWS;C:\WP51; SET WP= /NC PROMPT $p$g LOADHIGH C:\JAWS\J_UNLOAD /S The first time the J_UNLOAD command is used, it will put JAWS into standby mode. JAWS is still loaded in memory, but it will not speak again until the command is repeated at the end of the batch file. The command must include the "/S" parameter to activate and deactivate standby mode. If the "/S" is not used, then JAWS will be unloaded from memory. 5. RECOVERING FROM BOOT FAILURE In the event JAWS stops functioning and you lose speech as a result of modifying your AUTOEXEC.BAT and CONFIG.SYS files, then you should follow these steps to restore your original CONFIG.SYS and AUTOEXEC.BAT files. Once these files have been copied to the root directory of your hard disk, then speech should be restored when you reboot your computer. a. Place the boot disk you made in step 3.1 into your A: Drive, close the drive door, and reboot your PC. The PC should boot normally, though it will probably take longer to boot than it does when it boots from the hard drive. b. Change to the A: drive by typing A: and pressing ENTER. c. From the A: drive, execute the following two commands. Type COPY AUTOEXEC.BAT C:\ (press ENTER) Type COPY CONFIG.SYS C:\ (press ENTER) d. Remove the floppy diskette from the A: drive and reboot the PC. JAWS should then work normally.