Autoexec.bat and Config.sys

The startup files config.sys and autoexec.bat configure the PC in a certain way, depending on their contents.

These files must be in the root directory on the boot drive, typically C:\.

When you install programs, they often suggest making changes to the startup files, so it is nice to know something about what the different lines in these files mean.

CONFIG.SYS will typically contain calls for device drivers, programs that handle devices. AUTOEXEC.BAT contains DOS commands that are automatically run every time the computer is booted. They are DOS commands, though most of them are a little special, so they could just as well have been run from the DOS prompt.

In both startup files, if REM or rem followed by a space is at the beginning of a line, the line is considered a remark and not a command and is therefore not executed.

There is no difference between something entered in capital or lowercase letters.

Example files:

This is not necessarily what you will always see but these are common versions of the files:

CONFIG.SYS
  * 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

NUMLOCK=OFF
BREAK=ON
DOS=HIGH,UMB,NOAUTO
FILESHIGH=40
FCBSHIGH=1,0
BUFFERSHIGH=30,0
LASTDRIVEHIGH=J
STACKSHIGH=9,256
COUNTRY=045,865,C:\WINDOWS\COMMAND\COUNTRY.SYS
DEVICE=C:\WINDOWS\HIMEM.SYS /V
DEVICE=C:\WINDOWS\EMM386.EXE RAM /MIN=0 I=B000-B7FF /V
DEVICEHIGH /L:2 =C:\WINDOWS\COMMAND\DISPLAY.SYS CON=(EGA,,1)
DEVICEHIGH /L:2 =C:\CDROM\CDROM.SYS /D:MSCD000
DEVICEHIGH /L:2 =C:\WINDOWS\SETVER.EXE
DEVICEHIGH /L:1 =C:\WINDOWS\IFSHLP.SYS
SHELL=C:\WINDOWS\COMMAND.COM C:\WINDOWS\ /E:1024 /P

  1. Switches off Num Lock on the keyboard.
  2. Extends Control-C / Control Break also to work under I/O operations as for instance reading and writing of the disks.
  3. HIGH loads DOS buffers in HMA (requires a XMS manager, line 10).
    UMB allows the use of Upper Memory Blocks for resident drivers and programs (requires an EMS manager, line 11).  This frees up more conventional memory for your applications.
    NOAUTO makes it possible to load drivers and TSR programs in conventional memory, if wanted - otherwise DOS 7.x always tries to load in Upper Memory, even though DEVICEHIGH, FILESHIGH etc. has not been used.  Some drivers can only work if loaded low with a DEVICE command.
  4. Sets the number of files that can be opened at one time to 40 (suitable for most instances, but some programs insists on a larger number).
  5. Sets the minimal number of file control blocks.  Is only used by very old programs.
  6. Sets buffers to 30.  If the number is smaller there is a risk that it is NOT possible to "Restart the computer in MS-DOS mode" from Windows 95 (OSR2).
  7. Sets the last logical drive-letter to J:
  8. Sets stacks as Microsoft recommends it for Windows 9x.
  9. Sets country to 45 (Denmark), with codepage 865 as the system character set i. e. the character set that is used for sorting and conversion to and from capital letters.  If no number is stated for the codepage, then the system codepage is set to 850 by default (for country 45), even though for instance codepage 865 is chosen in line 22.  Therefore the same codepage should always be stated in line 9 and in line 22 to avoid problems with access to files with names, in which characters from the extended ASCII character set are used (character no. 128 to 255) i.e.  ø and Ø.
  10. Loads the DOS XMS manager.  Necessary for the next line and for Windows 9x and Smartdrive (line 19).
  11. Loads the DOS EMS manager.  RAM indicates that both Expanded Memory (EMS) and Upper Memory (UMB) should be made available.  /MIN=0 states that no minimal amount of EMS memory shall be secured.  I=B000-B7FF indicates that the memory reserved for monochrome screens can be used as Upper Memory.  If EMS memory is not wanted, the parameter RAM can be changed to NOEMS, but from DOS 6.00 an above EMM386.EXE provides both EMS and XMS memory for the programs, so there is no reason not to use the RAM parameter, unless there is a need for more UMB memory and you don't have any programs that demands EMS memory.  Many games requires EMS.
  12. Loads the DOS EGA/VGA driver for use of 1 codepage (character set) on the screen.  In DOS 7.x more memory is used for 2 codepages than for 1 codepage.
  13. Loads the driver for the CD-ROM drive.  Specific for the installed drive.  Your driver might have another name.  What is written after /D: must also be written after /D: in line 18.  Some other parameters might also be necessary i.e. a statement of the controller's address (/SBP:220 or the like), if the drive is connected via the soundcard or a separate controllercard.  If you haven't got a DOS CD-ROM driver, then you might use the SAMPLE.SYS driver located at the Windows 95 installation diskette.  On the Windows 98 installation diskette is placed a larger number of CD-ROM drivers, covering most CD-ROM drives.
  14. Reports an earlier version of DOS (e.g. version 6.22) to older DOS-programs, if they demand to be executed under a definite DOS version.
  15. Loads the driver for Windows 9x's 32-bit file access.
  16. States the name and location of the command interpreter.  /E: states the size of the DOS environment.  1024 is suitable, as DOS 7.x automatically adds 1040 to the size which cannot be less than 256.  /P indicates that the command interpreter shall stay resident and that AUTOEXEC.BAT shall be executed.  /P may NOT be omitted.
AUTOEXEC.BAT
* 17
18
19
20
21
22
23
24
* 25
26
27
* 28
29
30
31
32
33
34
* 35

@ECHO OFF
LH /L:2 C:\WINDOWS\COMMAND\MSCDEX /D:MSCD000 /M:15 /E /S /L:D /V
LH /L:0;2 /S C:\WINDOWS\COMMAND\SMARTDRV 2048 16 /V
C:\WINDOWS\COMMAND\MODE CON RATE=32 DELAY=2
C:\WINDOWS\COMMAND\MODE CON CP PREP=((865) C:\WINDOWS\COMMAND\EGA.CPI)
C:\WINDOWS\COMMAND\MODE CON CP SEL=865
LH /L:2 C:\WINDOWS\COMMAND\KEYB DK,865,C:\WINDOWS\COMMAND\KEYBOARD.SYS
LH /L:2 C:\MOUSE\MOUSE
LH /L:2 C:\WINDOWS\COMMAND\DOSKEY /INSERT
PROMPT $p$g
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\CTSND
SET DIRCMD=/P /A
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET SOUND=C:\CTSND
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:G
C:\CTSND\DIAGNOSE /S
C:\CTSND\SB16SET /P

 
  1. Hides the text in batch programs when the batch file is executed.
  2. Loads the DOS CD-ROM extension for access to the CD-ROM drive.  Requires that a CD-ROM driver (line 13) with the same text after /D: is loaded.  /M:15 states a suitable amount of buffers, and /E states that these buffer shall be loaded into Expanded Memory (requires that an EMS manager is loaded, line 11).  /S indicates that the CD-ROM drive can be shared over a network, but is also necessary for some programs in order to make it possible to read the volume label on the CD-ROM disks.  /L:D indicates that drive-letter D shall be assigned to the CD-ROM drive.  If /L: is omitted, the first free drive-letter is assigned to the CD-ROM drive.
  3. Loads the DOS Smartdrive disk cache for faster reading and writing on the (hard)disks.  When Smartdrive is loaded AFTER MSCDEX (line 18), the cache will also work for the CD-ROM drive.  Requires that a XMS manager is loaded (line 10).  2048 states the amount of memory in Kb that should be used under DOS, and 16 states the amount when running Windows.  The latter is set to the minimum value, because Windows 9x has its own 32-bit disk cache.
  4. Increases the typematic rate and delay for the keyboard.
  5. Prepares Danish/Norwegian (865) codepage (character set) for the screen.  Requires that DISPLAY.SYS is loaded (line 12).  C:\DOS\EGA.CPI can be replaced with the name of another codepage information file, for instance C:\DOS\865.CPI under IBM's PC DOS.
  6. Selects Danish/Norwegian codepage (character set) for the screen.  Requires that line 21 is executed.
  7. Loads the keyboard driver, configurated for a Danish keyboard with support for codepage 865.
  8. Loads the Mouse driver.  Your driver might have another name.  The drivers from Microsoft and IBM uses a lot of memory - try to get another driver if you have one provided by Microsoft or IBM.
  9. Loads DOSKey, which enables fast recalling and editing of the command line at the DOS prompt.  Can be omitted.
  10. Set the DOS prompt to show the current directory followed by the character >.
  11. PATH indicates in which directories and in which order programs shall be searched for, when no path is stated before the program name.  Many programs inserts their own path in this line during program setup, but in the most instances this is not necessary. Try removing the program path and check if the program can work without it.  A long PATH can slow down the start of the programs on the computer.  The PATH line can not contain more then 127 characters.  Furthermore the length of the PATH is limited by the size of the DOS environment (line 16).
  12. Sets the DOS DIR command for pausing, when the screen becomes full, and to display all files including hidden and system files.
  13. States in which directory temporary files can be placed by the applications.  This makes it much easier to find files that are not removed due to program errors.  Quite a lot of megabytes can be saved by deleting the files in this directory from time to time.  Do NOT delete these files, while Windows is running - some of them might be in use.
  14. States in which directory temporary files can be placed by the applications (older programs).
  15. States where the files for the Sound Blaster soundcard are installed.
  16. States that the soundcard is installed at Address 220 with IRQ 5, Low DMA on DMA-channel 1, High DMA on DMA-channel 5, MIDI address 330 and that the soundcard is Type 6 (Sound Blaster 16 compatible).
  17. Indicates how MIDI-files has to be played.  MAP:G makes sure that both basic MIDI and extended MIDI can be played in DOS.
  18. Sets the soundcard to the values in line 32.
  19. Sets the volumelevel for the different channels of the soundcard according to the values saved in the file C:\CTSND\CTMIX.CFG by means of the program C:\CTSND\SB16SET.EXE.  Can be omitted.