Explanations of MSDOS Environment Configurations
Many people seem unsure of the various entries in the
config.sys and autoexec.bat files. Also, there are
a number of terms used in reference to configuring the DOS
environment. The following is a list of terms with a simple
explanation. Follwing that is a second list of typical entries in
config.sys and autoexec.bat.
I can't hope to be authoritave or comprehensive in this
discussion, and I don't attempt to be. Indeed, I warmly welcome any
suggestions, additions or corrections you might be good enough to
offer me. This page is just intended to be a brief description, to
give a hint at what these terms and entries mean. There are many
good books which give a far more detailed and exhaustive description
of all the items I discuss here. But for now...
- Conventional Memory
- This is the first 640k of RAM. DOS programs must fit within
this limit. The additional memory types cannot be used
for the program, but they can be used by the
program for data, etc.
- Upper Memory
- This is the 384k which is the balance of the first 1M of
memory (minus the 640k of conventional memory). Some of this
memory is reserved. Some is used for display adapters. The rest
is available for DOS to use. Programs cannot be run from this
area, but device drivers and TSRs can be loaded into this area
- Extended Memory
- This can have one of two meanings. The first is a generic
expression for any memory above 640k. The other means,
specifically, a physical type of memory found above 1M.
- Expanded Memory
- This is an outdated type of memory for addresses above 1M.
Some DOS programs still require this type of memory in order to
run (Windows uses only extended memory). It is possible to use
extended memory to simulate expanded memory, if necessary.
Extended memory (real or simulated) is paged into upper memory at
16k a time.
- High Memory Area (HMA)
- This is the name given to the first 64k of extended memory.
There is nothing special about it other than the fact that the
DOS operating system can be loaded into this area to save space
in conventional memory.
config.sys and autoexec.bat Entries
- The 'Buffers' Environment Variable
buffers = 10,0 BUFFERS specifies the number of
buffers you want to create in memory. They are used for disk
reading/writing. The first number specifies the number of primary
buffers, while the second number specifies the number of
secondary buffers. When using SmartDrive with DoubleSpace,
specify 10,0. Specifying more than 10 buffers when using
SmartDrive will take up memory space without giving much speed
improvement. Secondary buffers are not needed.
- The 'Country' Environment Variable
This tells DOS what country's formats for things like time, date,
and currency. The first number corresponds to the International
Dialling Code for the required country. 044 corresponds to the
UK. The country.sys tells DOS where to find the device
driver which contains all the information for all countries.
- The 'DeviceHigh' Command
- This command is used in the config.sys file. It
tells DOS to load the specified device driver into upper
- The Display device Driver
This tells DOS what device driver to use for displaying
international character sets on the monitor.
- The 'DOS' Environment Variable
- This is found in the config.sys file. Specifying
dos=high causes the DOS operating system to be
loaded into the HMA. Specifying
dos=umb tells DOS to
maintain a link with the Upper Memory area, enabling its
- The EMM386 Extended-Memory Manager
- Emm386.exe is a program which, by specifying the
parameter 'ram' enables the use of upper memory for device
drivers, etc.. Also, this program can be used to simulate
expanded memory with extended memory. This is done by giving it a
number as a parameter, the number corresponding to the amount of
expanded memory to provide. The same amount of extended memory is
used to perform the simulation, and this memory is then not
available for use as extended memory.
- The 'FCBS' Environment Variable
fcbs = 4,0 This tells dos to set up 4 File
Control Blocks. These are used for storing information about
files. They take up memory, so 4 is about right. FCBs are not
used by modern programs. However, some older programs require
that they are set up in config.sys
- The 'Files' Environment Variable
files=30 FILES specifies the maximum number of
files that DOS will allow to be open at the same time. A low
number saves memory, but prevents some applications (which use
lots of files) from working.
- The HiMem Device Driver
- Himem.sys is a device driver which enables the use
of extended memory.
- The 'LastDrive' Environment Variable
lastdrive=c This tells DOS to save enough space
in memory to deal with up to 3 disks. Each disk needs some space
in memory to operate, telling DOS to expect a maximum of 3 drives
(A, B, and C) means that it will only save space for 3
- The 'LoadHigh' Command
- In order to be able to use this command, the DOS environment
variable must contain UMB, also EMM386 and HIMEM must be
- The 'Stacks' Environment Variable
- To do
- The SetVer Program
setver.exe is a program which fools older programs which
were designed to run with a specific (old) version of DOS into
running with later version.
Content last updated: 2003-09-23