HOW TO GIVE YOUR COMPUTER MORE CONVENTIONAL MEMORY One of the most common questions we receive at ImagiSOFT is "I have eight megabytes of memory in my computer, why does your program say that there isn't enough memory to run it?" The answer to this is that MS-DOS computers all have several types of memory: Conventional Memory, the first 640K Upper Memory, the next 384K between 640K and 1 mega Extended Memory (XMS), memory above 1 meg (defined with EMM386.EXE) Expanded Memory (EMS), memory above 1 meg (defined with EMM386.EXE) Sound confusing? It is. But the primary thing to you need to know is that Conventional Memory is the most precious--without it, few programs can run--even if you have eight megabytes of memory! To check how much memory your computer has left, enter the command MEM /C and look for the column titled Conventional Memory. If it says you have less than 550K free, your computer probably is not be configured properly. The primary reason DOS 5.0 was so successful was that it provided good memory management, using a utility called HIMEM.SYS for 286 and 386 computers. The purpose of HIMEM.SYS is to "Load High" into upper memory major portions of DOS, and other programs when you turn your computer on. MEMMAKER ~~~~~~~~ DOS 6.0 and DOS 6.2 provided a host of useful DOS utilities including SCANDISK, DEFRAG, and a real backup program. One of the most useful utilities is a memory optimization utility called MEMMAKER which, for most people, takes care of their woes with memory. If you have DOS 6.0 or 6.2 run MEMMAKER at your DOS prompt, and if you don't understand the questions as they appear on your screen accept the default answer. Your problems with insufficient conventional memory will likely disappear, and memory hungry programs such as Windows will run better. ADVANCED USERS ~~~~~~~~~~~~~~ If you have DOS 5.0 or if you are interested in learning what MEMMAKER is does to your computer, enter the command EDIT CONFIG.SYS at your C\> DOS prompt. If you have a 386 class computer, your CONFIG.SYS file should look similar to the following: buffers=20 (number can vary) files=60 (number can vary) device=c:\dos\himem.sys (always include this line) device=c:\dos\emm386.exe noems (if you have 2 megs or more and a 386 or 486) dos=high,umb (always include this line (no umb on 286)) To optimize your memory, precede all memory resident .SYS, .EXE, and .COM programs in this file with "devicehigh = " instead of just "device =." For example, replace device = mouse.sys with devicehigh = mouse.sys. In most cases, following these few steps will increase your memory dramatically by putting these programs in upper memory instead of conventional memory. After you are done editing CONFIG.SYS, EDIT AUTOEXEC.BAT. Your AUTOEXEC.BAT file will usually have something similar to the following: verify on (optional) set home = c:\bingo (optional) prompt $p$g (could be different) path \dos;c:\util (probably much longer) loadhigh \dos\mouse.com (mouse driver) The important thing to remember with AUTOEXEC.BAT is to use the loadhigh command on all resident .EXE and .COM programs to put these programs into upper memory. For example, instead of loading the mouse into conventional memory with the command \dos\mouse.com, loadhigh \dos\mouse.com puts the mouse driver into upper memory. When you are done making changes to CONFIG.SYS and AUTOEXEC.BAT, reboot your computer. Enter the command MEM /C again, and you should see that your computer has much more conventional memory available. If these simple changes don't help, try changing the order in which these programs are loaded "high" to fill any "holes" you see in your memory map listed on the screen by the MEM utility. DESPERATION ~~~~~~~~~~~ If you still need more Conventional Memory, your last option is to remove some of your memory resident programs with the "rem" statement. EDIT CONFIG.SYS and AUTOEXEC.BAT again and insert REM in front of the .COM, .SYS, and .EXE files which you may not need. For most users a good start is changing: devicehigh = c:\dos\setver.exe to rem devicehigh = c:\dos\setver.exe The purpose of the SETVER utility is to make older DOS programs which must be run on a particular version of DOS, such as verion 3.3. Few programs need this utility, and inserting the letters "rem" in front of this command removes it from your computer's memory. If you discover that you need this program later, EDIT CONFIG.SYS again and remove the "rem" from the beginning of the statement. Removing SETVER will give you about 2K additional conventional memory. If you do not understand what the function of a .SYS or .COM program is, use the "When in doubt, take it out" philosophy. Your computer will tell you if you remove something that it needs, such as a sound card driver or CD-ROM driver. You might get lucky and remove an old driver that you no longer need! SMARTDRV takes about 40K of conventional memory, and for many people, removing this program from memory makes sense. SMARTDRV speeds up your hard disk access by using part of your memory for temporary storage. Remove it, and if you discover that some programs are much slower than they were before, especially Windows, put it back. Written by Mike Prestwich, ImagiSOFT, Inc. June, 1992 Revised December 1994 May be freely distributed.