[ Go to 500 Tips Table of Contents ]

500 Tips
Windows 3.x
Memory Management

More Memory with Super VGA

If you have a Super VGA display and use MemMaker, you can free-up conventional memory using the MONOUMB.368 file. Open SYSTEM.INI file, add device=c:\dos\monoumb.386 to the [386Enh] section and save the file. Restart your computer and run MemMaker by typing MemMaker at the DOS prompt. Choose Custom Setup; on the Advanced Options screen, answer Yes to "Use monochrome region (B000-B7FF) for running programs?" Then, follow the instructions.

Tight Fit for MemMaker

If you run MemMaker with a disk compression program such as Stacker or SuperStor, it won't undo changes in the CONFIG.SYS and AUTOEXEC.BAT files if it fails to restart your computer. To restore your computer to its previous state, quit MemMaker, and copy and rename the AUTOEXEC.UMB and CONFIG.UMB files from the host drive to the compressed volume. For example, if drive D is the uncompressed host drive and drive C is the compressed drive, you would type: copy d:\autoexec.umb c:\autoexec.bat and then copy d:\config.umb c:\config.sys.

Heavy Load

If DOS refuses to load high, check your CONFIG.SYS file for the BUFFERS= statement. If its parameter is set too high, DOS will load low.

Erroneous Error

Windows 3.x may generate an "Out of memory" message even when there's plenty left. That happens when there's too little DOS memory (memory below 640KB) available. Removing unwanted TSR references from your AUTOEXEC.BAT and CONFIG.SYS files and loading required drivers high, using the LOADHIGH or DEVICEHIGH command, should solve the problem.

When Plus Equals Minus

If you use QEMM to load programs into upper memory and get a "Bad Command or Filename" message, QEMM might be using a plus (+) sign for a delimiter in the file command from your AUTOEXEC.BAT file. For example, the command c:\qemm\loadhi /r:1 files+30 is not valid. To fix the problem, remove the command from your AUTOEXEC.BAT file, then add the files= command to your CONFIG.SYS file to specify the number of open files. In the case of our example, you'd use files=30.

Get the Message

To set EMM386 4.45 to display status, error and warning messages for troubleshooting, edit your CONFIG.SYS file and add the verbose switch to the device command for EMM386.EXE.

More Info for More Memory

If you want more information when refining your computer's memory usage, hold down the Alt key during reboot to initiate a display of start-up information.

Virtual Reality

If you don't need virtual control program interface (VCPI) support and are using EMM386 4.45, you can free some memory by using the NOVCPI switch in the command line that invokes the program. In prior versions, the NOEMS switch disabled both EMS and VCPI support, but now you must use both switches.

New Regions to Explore

If you have EMM386 4.45, it can scan and free up additional memory regions if they've been duplicated elsewhere. To enable this feature, edit your CONFIG.SYS file and add the high scan switch to the device= line that loads EMM386.EXE.

Make HIMEM a Messenger

To get status, warning and error messages from HIMEM.SYS, edit your CONFIG.SYS file and add the /verbose (/v) switch to the device command for HIMEM.SYS. If HIMEM encounters an error during initialization, it'll display the error message and other start-up information.

Turn Off the ATM

If you use Adobe Type Manager and want to temporarily free up memory, you can keep it from loading fonts at start-up by switching it off and rebooting.

Use It or Lose It

To free memory, check your AUTOEXEC.BAT and CONFIG.SYS files for unnecessary programs that load at boot-up.

Beware of SHARE

If you work only in Windows--not DOS--you can save a nice chunk of memory by not loading SHARE; it is seldom needed, and Windows uses a program called VSHARE to do the same job. If there's a line that loads SHARE in your CONFIG.SYS, delete it.

Sacrifice Fonts for Memory's Sake

Free up memory to improve performance by removing unwanted fonts. Open Control Panel and double-click on the Fonts icon. Select the fonts you don't need and click on Remove. The fonts won't be deleted from the disk, just removed from memory. Follow the same steps to reinstall them when needed.

Take Your Configuration to Task

If you run out of resources while performing an occasional task, try creating a special boot configuration just for that operation. The configuration should consist of the minimum number of drivers needed. For example, leave out sound card, CD-ROM, RAM-disk and other drivers if possible.

Version Control

If your AUTOEXEC.BAT or CONFIG.SYS loads SETVER, remove it to regain a little memory. It's only needed so DOS can pretend it's an older version. After rebooting, if you don't get an "Incorrect DOS version" message from any of your programs, SETVER wasn't needed.

Higher Is Better

To maximize the amount of lower memory available to Windows, your AUTOEXEC.BAT and CONFIG.SYS files should (wherever possible) load all TSR programs and device drivers into the upper memory blocks. To do so, use the LH, LOADHIGH and DEVICEHIGH commands.

A Better Mousetrap

To save memory, provided you only use your mouse in Windows, remove any commands that load mouse drivers from your AUTOEXEC.BAT and CONFIG.SYS files.

Wallpaper Replacement

Use a color for the desktop background instead of wallpaper or bitmaps to gain some memory for running apps.

Screen Savers Are Memory Wasters

Screen savers use memory and can conflict with other programs. Disable your screen saver, or use a simple screen saver (such as those that come with Windows).

Virtually There

Increasing the size of your virtual memory yields results similar to adding RAM. Click on the 386 Enhanced icon in Control Panel. Click on Virtual Memory and then click on the Change button. Type in the desired size in the New Size dialog box. Your permanent swap file setting must not be larger than the largest contiguous free segment on the specified hard drive.

Step Up to StartUp

If you often run out of memory with only a couple of apps open, check your start-up group for unnecessary programs.

New Management Team

EMM386.EXE and HIMEM.SYS are reasonable memory managers, but there are more advanced ones on the market. QEMM386 from Quarterdeck Office Systems, 386MAX from Qualitas or NetRoom from Helix Software are popular memory managers and, if you run out of memory frequently, are worth a try.

Battin' Down Bars

Toolbars and button bars use memory, too. If you don't need one, turn it off. Most apps provide access to all functions via menus or keystrokes anyway.

Out the Window

An open window means memory is being used. Open only the apps you need, and if the apps support multiple windows, keep a minimum open.

Less Color, More Memory

The fewer colors your video card uses, the more memory you'll have available. True-color or high-color video looks great, but dropping back to 256 or 16 colors saves memory.

High Hopes

The HIMEM.SYS and EMM386.EXE drivers in CONFIG.SYS don't work in high memory. You must load them with the device= [path] [file name] [parameters] syntax, not the DEVICEHIGH command.

Swap Meet

If you've got sufficient disk space, use a swap file to take some of the storage burden off of your memory. Double click the 386 Enhanced icon in Control Panel, and look at the Type under SwapFile Settings. If none is present, click on the change button, set the type to permanent and hit OK.

PIF Piece

To save memory while running non-Windows apps, allocate only the minimum extended memory necessary in the applications' PIFs.

"Expanse" Report

To get the most out of expanded memory in Windows, be sure to use the RAM switch and not the NOEMS switch for EMM386.EXE.

Controlled Expansion

You should control the amount of expanded memory (EMS) allocated to a non-Windows app running under Windows by editing its PIF.

Do DOS High

You can save a lot of conventional memory by loading MS-DOS into high memory. Be sure you load HIMEM.SYS and EMM386.EXE with the Device= command in the CONFIG.SYS file, followed by dos=high.

Upper Berths

Save some conventional memory by using upper memory buffers. Be sure you load HIMEM .SYS and EMM386.EXE with the Device= command in the CONFIG.SYS file, followed by dos=UMB.


Super VGA cards often use nonstandard memory addresses that cause memory conflicts, which, in turn, can cause Windows to crash or behave erratically. On some systems, the only solution will be to disable video BIOS shadowing. You can usually get to the system BIOS settings by using a special key combination, like Ctrl-Alt-Esc, or when you first boot-up. In other cases, using standard Microsoft-provided Windows drivers at a lower resolution, if acceptable, will alleviate these problems.

Exclusive Video Off-er

If you run EMM386 and experience unusual video problems, try excluding the video card's memory addresses using the X=[video address range] parameter on the line that loads EMM386.EXE in CONFIG.SYS. You can obtain the address range from your video card's documentation. You should also place the range after EMMExclude= in the [386Enh] section of the SYSTEM.INI file.

Trim the TrueType Threshold

You can trade TrueType rendering speed for memory by adding the HeadlineThreshold parameter to the [TrueType] section of your WIN.INI file. Set it from 1 (slower rendering/more memory) to 300 (faster rendering/less memory).

Be TSR Smart

For DOS programs that require a TSR, save memory by only loading the TSR just prior to running the program (rather than have it installed every time you boot). To do this, create a batch file that loads the TSR and then runs the program; then, launch the batch file from Windows to start the program. When you're done with the program, you'll have to reboot to remove the TSR from memory.

BIOS Blues

If your computer generates an A:20 handler error when loading the extended memory manager, it's probably because of your system's BIOS. Some BIOSes need special switches on the HIMEM.SYS line in the CONFIG.SYS file to work properly. Check the HIMEM.SYS section of your DOS manual for a list of switches that you can add to modify this statement.

Sizing Up the Swap File

Your PC's memory should determine the size of your Swap File. If you have less than 4MB of RAM and use Windows 3.x, or less than 8MB and use Windows for Workgroups, the swap file should be around 8MB or 16MB, respectively. If you have more memory, then a 4MB swap file is probably adequate. If you still get Out Of Memory messages, simply increase the size of the swap file.

The Latest and Greatest

Make sure you're using the latest versions of HIMEM.SYS and EMM386. In order of increasing preference, use the versions bundled with MS-DOS 5.0, Windows 3.x}, MS-DOS 6.0, or Windows for Workgroups 3.11.

Resourceful and Steady

When Windows runs out of certain types of resources (file buffers, file handles, etc.) it can misbehave. If Windows seems unstable, try increasing the allocations for those resources. Look in your CONFIG.SYS file for lines like FILES=, BUFFERS=, STACKS= and SHELL=C:\COMMAND.COM /P /E:1024; increase the numbers you see there. These changes will use more memory, but you may gain stability.


A quick way to gain some memory is keep your WIN.INI file small. Windows loads the WIN.INI file into memory, so a smaller WIN.INI saves memory. Delete lines that have been disabled with REM statements, comments added by setup programs, sections for programs you've removed and lines referencing never used fonts.

Swap File, the Hard Way

A swap file should be set up on a hard disk, never on a RAM disk. Using a RAM disk reduces performance on most systems.

Mono Tones

If you never use the VGA adapter's monochrome mode, you can free up an extra memory block. Just add the line VGAMonoText=Off to the [386Enh] section of SYSTEM.INI.

[ Go to 500 Tips Table of Contents ]