Classic Computer Magazine Archive COMPUTE! ISSUE 165 / JUNE 1994 / PAGE 16

Memory thieves run undetected. (unnecessary DOS programs) (Introdos)
by Tony Roberts

Have you ever looked into your refrigerator and found something old and unrecognizable tucked into the back of the vegetable crisper? Did you hold your nose and wonder how something so ancient and useless had been allowed to sit there for so long?

Recently, my friend Steve called, saying he was having trouble getting his system set up with DOS 6.2. I had him fax me his configuration files, and what I saw was as horrifying as lettuce that had turned from a crisp, green head to a gooey, brown puddle.

Steve's main concern was that he wasn't getting all of the free memory he thought he should with DOS 6.2. He had tried running MemMaker, and that had helped some, but there still wasn't enough memory to run the programs he wanted.

Steve had upgraded DOS as new versions came along, but he had done so blindly. He hadn't removed the outdated relics of the old versions as he upgraded to the new software. He was still using the CONFIG.SYS and AUTOEXEC.BAT files he had set up years ago, and he was wasting memory as a result.

The first memory drain was found in the CONFIG.SYS file, which included the statement LASTDRIVE=Z. The LAST-DRIVE command allows you to specify how many disk drive names you will be using. The DOS default is five, for drives A-E. Each disk drive name uses about 100 bytes of memory. Steve's LASTDRIVE command indicated that he wanted to use 26 drive names, A-Z. In practice, however, drive F is the last drive used on his system. By changing LASTDRIVE=Z to LASTDRIVE=F, he was able to recover 2000 bytes of memory.

The big memory gobblers were found in the AUTOEXEC.BAT file, however.

First, Steve was using the Append command at a cost of 9K. This DOS dinosaur was introduced back in the DOS 2.x era. At that time, hard drives were just being introduced, and the subdirectory system was developed to help users keep track of all the files on those huge 10MB wonders. Software written for earlier versions of DOS didn't know how to deal with subdirectories. Such software assumed the current subdirectory was the only directory in town.

The Append command was a smoke-and-mirrors trick to allow the old software to see past its blind spot and find files that resided in other subdirectories. Of course, all modern software is equipped to handle subdirectories, so who needs Append?

Another useless bit of software clogging up Steve's system was Graftabl. This program, which occupied 14K, was designed to allow PCs with CGA adapters to display additional characters while in graphics mode. Steve junked his CGA adapter and monitor years ago. He should have stopped running Graftabl at the same time.

Finally, Steve's AUTOEXEC.BAT file was loading the DOS Print utility, unnecessarily bottling up more memory. Back in the early 1980s, there were times when printing from DOS was handy or even necessary, but today, most folks find that printing directly from their application software is the way to go.

Altogether, Steve was loading about 30K in unused, unnecessary software. Once he cleaned out the prehistoric artifacts, he had plenty of room to run the software he wanted. Steve had arrived at this quandary because he was afraid to make any changes in his configuration files, fearing that he'd ruin something. After all, things seemed to be working.

I've never been a believer in the "leave well enough alone" philosophy. It's good practice to take an occasional look at your initialization files to see whether there's any fat that can be trimmed from them. If you don't know a CONFIG.SYS from an AUTOEXEC.BAT, find a spouse, friend, or coworker who does.

If you want to experiment on your own, grab a DOS manual and look up some of the suspect commands to find out what they do. (First, make an emergency boot disk containing your existing AUTOEXEC.BAT and CONFIG.SYS files.) Once you identify a possible memory gobbler, use the REM command to make temporary changes that can be undone easily if necessary. When DOS finds the command REM (this is short for remark) at the beginning of a line, it ignores the rest of the line. If the system behaves strangely, you can remove the REM, and things will return to normal. On the other hand, if performance stays the same or improves, it's a good bet that the command was superfluous and can be deleted.

DOS commands aren't the only programs that cause problems. Over the years you may have added several terminate-and-stay-resident (TSR) utilities to your system. These programs, which stay in the background waiting for you to activate them with a special key combination, can perform a variety of chores. But once you stop using these programs, remove references to them from your AUTOEXEC.BAT file, or they'll continue to load and occupy memory that could be used elsewhere.