Explanations of MSDOS Environment Configurations

Introduction

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...

Memory Terms

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 with the devicehigh= and loadhigh= commands.
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
country=044,,c:\msdos62\country.sys
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 memory.
The Display device Driver
device=c:\msdos62\display.sys con=(ega,,1)
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 use.
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 drives.
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 loaded.
The 'Stacks' Environment Variable
To do
The SetVer Program
device=c:\msdos62\setver.exe
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.

Home About Me
Copyright © Neil Carter

Content last updated: 2003-09-23