FAQ: MS-DOS

This page explains the basic concepts of system and memory configuration in MS-DOS. It's all valid for Windows 9x as well. I'm not sure about Windows NT and its offsprings.

The examples assume that C: is your hard drive and Windows is the only operating system. If that is not the case, you just have to swap this part.

WARNING: BEFORE YOU EDIT YOUR SYSTEM FILES COPY THEM. CHANGE THEM AT YOUR OWN RISK!

1. AND MOST IMPORTANT HINT: PLAY DOS-GAMES IN DOS

Most people use MS-Windows. But you really should configure the so-called "DOS-Mode" in order to play the good old games. Even if a game does not crash by chance (there should be examples), there will still be problems, at least with sound.

2. THE CONFIG.SYS

Nobody can write a general Config.sys because drivers for the specific computer are loaded here. But there are a few general rules that everybody should know. In general: load big drivers first.

2.1 EXTENDED/EXPANDED MEMORY

This is all the RAM over the 1MB border. DOS can not access it directly. That is why different methods were developed to use this memory.

2.1.1 EMS

EMS means "Expanded Memory". Particularly older games use this kind of memory. It can be emulated by different memory managers. For the standard DOS one you have to write:
DEVICEHIGH=C:\WINDOWS\EMM386.EXE RAM
Another Option is to fix the number of bytes used as EMS. If you need only 1MB for example, just add this amount in kilobytes:
DEVICEHIGH=C:\WINDOWS\EMM386.EXE RAM 1024

2.1.2 XMS

XMS stands for "Extended Memory". It is "newer" than EMS. It can be activated by a memory manager like HIMEM.SYS
DEVICE=C:\WINDOWS\HIMEM.SYS
If you want to load EMM386, too, add the following line:
DEVICEHIGH=C:\WINDOWS\EMM386.EXE NOEMS

2.1.3 DOS-EXTENDERS

DOS-Extenders are the most "current" way to gain access to RAM. The most common one is DOS4GW. If a game uses one, there should not be any problems in general.

2.2 BASE MEMORY

Also called "DOS-Memory", meaning the first 640 KB of the RAM. DOS runs in this part. Because of this division it can happen that although you have 128 MB on the whole, a game reports too less memory. The problem is that all memory resident drivers are also put here. That is why no one has ever the whole 640 KB ready for use.

2.2.1 LOAD DRIVERS HIGH

You should try to load as many drivers as possible in another memory area to have as much of it free as possible. The part between 640 KB and 1 MB is more or less unused. By
DOS=HIGH,UMB
you give DOS access to two subdivisions of this. In some cases you should drop UMB but HIGH is always recommendable. After this line you should change all commands beginning with DEVICE to DEVICEHIGH.

2.2.2 FILES, BUFFERS AND LASTDRIVE

Files and buffers are necessary in a different amount for each program. You can reduce both values to get more free memory.
FILES=40
BUFFERS=5
e.g. are more space saving commands. You can experiment with these values witout any danger. Even more simple is the usage of LASTDRIVE. Almost anybody knows what his last drive is.
LASTDRIVE=E
If you add another drive later, you of course have to change it.

2.3 AN EXAMPLE

This is an example for a Config.sys without much finess. PLEASE DO NOT COPY.
DEVICE=C:\WINDOWS\HIMEM.SYS
LASTDRIVE=E
FILES=80
BUFFERS=10
DOS=HIGH,UMB
DEVICEHIGH=EMM386.EXE RAM
DEVICEHIGH=C:\SB64\DRV\CTSB16.SYS /UNIT=0 /WIN95 /BLASTER=A:220 I:5 D:1 H:5    (my
soundcard)
DEVICEHIGH=C:\SB64\DRV\CTMMSYS.SYS   (sound again)
DEVICEHIGH=C:\WINDOWS\COMMAND\VIDE-CDD.SYS /D:IBMCD001    (CD-ROM)
DEVICEHIGH=C:\WINDOWS\COMMAND\DISPLAY.SYS CON=(EGA,,1)    (graphics)
COUNTRY=049,850,C:\WINDOWS\COMMAND\COUNTRY.SYS     (country)

3. THE AUTOEXEC.BAT

You add commands to the Autoexec.bat which you could also use on the DOS-Prompt. Similar rules as for the Config.sys apply.

3.1 LOAD HIGH

In front of every command (bat, exe or com) there should be "lh"
lh driver.exe

3.2 IMPORTANT LINES

Some commands are almost indispendable, others just make it easier.
SET BLASTER=A220 I5 D1
sets the sound card to adress 220, interrupt (IRQ) 5 and DMA 1 (modify for your configuration).
SET PATH=C:\DOS;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
Every command that is not being found in the current directory will be searched in these directories.
LH DOSKEY
activates a driver that saves typing everything again. Just use cursor up.
LH C:\MOUSE\MOUSE.COM
loads a mouse driver which is necessary for most games (example; other directory/name possible).

4. DO YOU NEED ALL DRIVERS?

Most old games do not need CD-ROM for example.That means you can deactivate this driver in the Config.sys and MSCDEX in the Autoexec.bat. A soundcard is often not necessary, too. Drivers for networks are futile. These changes have to be cancelled later, of course. Therefore it is not clever to delete the whole lines but to mark them as a remark by REM instead.
REM DEVICEHIGH=...
REM LH ...


5. OVERFLOW/DIVIDE ERROR

These error messages indicate that your computer is too fast for the program. Solution: slow down programs (Applications) or disabling cache in BIOS. That is done in different ways depending on your BIOS.

6. ADVANCED OPTIONS

6.1 BOOTDISK

If you often need different configurations, there is of course the possibility of a bootdisk. You have to set the booting order in BIOS to A,C. Then you format a disk by
format a: /s
The necessary files will be transfered automatically. Then modify Config.sys and Autoexec.bat on the disk and reboot your computer from it.

6.2 CHOOSE YOUR OPTION

A bit more difficult but less costly on the long term is this possibility. A menu will be shown when booting, so that you can choose your option. That is possible in MS-DOS 6.0 or higher.

6.2.1 CONFIG.SYS

At the beginning stands a list with the menu options:
[MENU]
MENUITEM=name, description
MENUITEM=name2, description2
...
MENUDEFAULT=name, time
"name" is what is used in the Config.sys. "description" will be displayed later. "MENUDEFAULT" is the option which will be chosen automatically, if "time" in seconds expires.

Then a part with general commands which will always be used follows:
[COMMON]
DEVICE=C:\WINDOWS\HIMEM.SYS
LASTDRIVE=E
...
Then the options as defined above:
[name]
...
[name2]
...

6.2.2 AUTOEXEC.BAT

Programming the Autoexec.bat is a bit more primitive. First there are general commands similar to [COMMON] in the Config.sys.

Following this is the command
GOTO %CONFIG%
This is to get the names of the options from the Config.sys These options follow, then another part with general commands (EXIT).
:name
...
:name2
...
:EXIT
...

7. FURTHER QUESTIONS?

Post in the forum!

Quiz