Guide to

CONFIG.SYS & AUTOEXEC.BAT

version 3.04

?


 
NOTE!  This page can be downloaded in text format.  Also available in French.

 
During time I have assisted quite a lot of PC owners with the setup of their two system files CONFIG.SYS and AUTOEXEC.BAT.  Often when I stand in line in a computer store (I have seldom seen that there isn't a waiting line), I have experienced that a great many of the problems, the customers complains about, are due to improper setup of these two files.  Therefore I hereby pass on some advice about that subject.

Contents:


ContentsBefore you begin !

Some of the following is very basic, while some of it is addressed to the experienced PC user.

Before you begin to change the CONFIG.SYS and AUTOEXEC.BAT files, you should do the following:

Format a floppy diskette with the command:  FORMAT A: /U /S
 
Save copies of the original CONFIG.SYS and AUTOEXEC.BAT files
in a separate directory AND on the floppy diskette mentioned above.

This will always give you the possibility of starting the computer by inserting the floppy diskette in drive A:, then rebooting the computer.

If there are problems starting the computer, then as from DOS version 6.00 you can press the F5 key, when the screen displays:  Starting "Windows 9x..."  ("Starting MS-DOS...").  This skips the executing of the CONFIG.SYS and AUTOEXEC.BAT files.  Thereafter you can edit the line in one of these two files where the problem occurred.  If instead the F8 key (plus 4 in Windows 9x) is pressed, then the lines in CONFIG.SYS and AUTOEXEC.BAT will be executed one line at a time.  This helps determining where the problems occurs.


ContentsMS-DOS 7.00 / 7.10 (Windows 95 & 98)

Under Windows 9x the following setup of CONFIG.SYS and AUTOEXEC.BAT will be suitable.  This setup also ensures access to CD-ROM drive and soundcard in MS-DOS mode.

Before you begin to make alterations of CONFIG.SYS and AUTOEXEC.BAT, it will be suitable to change the setup, so that Windows 9x will not start automatically, but there instead is started directly in DOS mode.

This is done by making the following changes under [Options] in the file C:\MSDOS.SYS:

to:  BootGUI=1
Logo=1
 
BootGUI=0
Logo=0

MSDOS.SYS is a hidden read-only system file, why it is necessary to execute the command:  ATTRIB -H -R -S C:\MSDOS.SYS  before the file can be edited (some editors allows editing without doing this in advance).

NOTE!
It is important to use a texteditor (NOTEPAD.EXE or EDIT.COM) and NOT a wordprocessor (Word or WordPerfect) to edit the file, because a wordprocessor spoils the file with unwanted code!

After this change the computer will start in MS-DOS 7.x, and the Windows 9x Logo (the one with the running colours beneath the picture) will not be shown during startup, making it possible to see how CONFIG.SYS and AUTOEXEC.BAT are executed.

Windows 9x can subsequently be started manually with the command:  WIN

If for instance a DOS game will not run under a standard installation of Windows 9x, this can often be solved by disabling the automatic start of Windows 9x in this way, and then starting the program before loading Windows 9x.

Once CONFIG.SYS and AUTOEXEC.BAT are optimized, the changes in MSDOS.SYS can be reversed, to reestablish the automatic start of Windows 9x and the Logo, if so wanted.  Alternatively the command:  WIN  could just be inserted as the last line in AUTOEXEC.BAT.

The following example applies to a PC with:

MS-DOS 7.00 / 7.10
Windows 4.00.x (95 / 98)
Soundblaster soundcard
CD-ROM drive
Mouse

(installed in C:\WINDOWS & C:\WINDOWS\COMMAND)
(installed in C:\WINDOWS)
(installed in C:\CTSND)
(installed in C:\CDROM)
(installed in C:\MOUSE)

The example are generally applicable, but line 13 and line 24 must be edited, as the drivers for CD-ROM drive and Mouse depends on the manufacturer.

The Lines with * can be omitted.

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

 
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. 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.
     
     
  17. Hides the text in batch programs when the batch file is executed.
  18. 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.
  19. 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.
  20. Increases the typematic rate and delay for the keyboard.
  21. 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.
  22. Selects Danish/Norwegian codepage (character set) for the screen.  Requires that line 21 is executed.
  23. Loads the keyboard driver, configurated for a Danish keyboard with support for codepage 865.
  24. 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.
  25. Loads DOSKey, which enables fast recalling and editing of the command line at the DOS prompt.  Can be omitted.
  26. Set the DOS prompt to show the current directory followed by the character >.
  27. 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).
  28. Sets the DOS DIR command for pausing, when the screen becomes full, and to display all files including hidden and system files.
  29. 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.
  30. States in which directory temporary files can be placed by the applications (older programs).
  31. States where the files for the Sound Blaster soundcard are installed.
  32. 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).
  33. Indicates how MIDI-files has to be played.  MAP:G makes sure that both basic MIDI and extended MIDI can be played in DOS.
  34. Sets the soundcard to the values in line 32.
  35. 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.

/L: indicates in which UMB block the driver/program shall be loaded.

/V indicates that the driver/program shall display extended information on the screen when loading.

If the Upper Memory in the address interval C800 to EFFF is unbroken, it should now, depending on the memory requirements for the CD-ROM and Mouse drivers, be possible to load all drivers and resident programs in Upper Memory, giving approximately 625 Kb free memory (can be checked with the command:  MEM /C).

An unbroken Upper Memory area is among other depending on the computers BIOS, the installed videocard and other plug-in cards installed in the computer.

NOTE!
The order of the lines should not be altered.  The order above provides the best utilization of the Upper Memory.
 
When DOS is finished loading the drivers stated in CONFIG.SYS, it loads the FILES, FCBS, BUFFERS, LASTDRIVE and STACKS.  DOS continues to load these into the same UMB as the last device was loaded into.  This gives a way of controlling where the FILES etc. are loaded.  In the example above, the last device: IFSHLP.SYS is loaded into UMB 1, and therefore FILES etc. are also loaded into UMB 1.  If the values for FILES etc. are set as in the example above, then the available memory in UMB 1 will just barely be used (at least with the Danish versions of Windows 9x).  Thereafter COMMAND.COM will be loaded where there is free memory - in this instance into UMB 2.

If there is not 625 Kb of free memory, the MEMMAKER program can be tried, but this program cannot always improve the memory utilization, and some times it becomes worse.

Also look at the chapter:  More Upper Memory with EMM386.

More commands for use in CONFIG.SYS and AUTOEXEC.BAT can be seen in the chapter:  MS-DOS 6.22 (Windows 3.11).


ContentsWindows 95 OSR2 and HIMEM.SYS

If you are using one of the FIRST German or Danish (and probably some other non-US versions) of the OEM Service Release 2 (OSR2) version of Windows 95, there is an ERROR in the IO.SYS system file, which prevents HIMEM.SYS from loading in the HMA area, leading HIMEM.SYS to use 45 Kb of conventional memory instead of 1 Kb.

You can download the IO2PATCH.EXE program here.  This program fixes the problem.  Just put the IO2PATCH.EXE file in the root of your bootup drive (usually C:\), where the IO.SYS system file is placed, execute the IO2PATCH program, and then the problem should be fixed.


ContentsDOSSTART.BAT (Windows 95 & 98)

Whenever it is chosen to "Restart the computer in MS-DOS mode" when closing Windows 9x, the file C:\WINDOWS\DOSSTART.BAT is searched for, and the lines herein are executed, if this file exists.

During installation of Windows 9x some lines are often moved from AUTOEXEC.BAT to DOSSTART.BAT, so it is essential to check that none of the drivers and TSR programs loaded from AUTOEXEC.BAT are loaded by DOSSTART.BAT as well.

The CD-ROM extension MSCDEX is one of the programs that Windows 9x often moves to DOSSTART.BAT.  This is done in order for Windows 9x to use its 32-bit driver for the CD-ROM drive, but if access to the CD-ROM drive is wanted before starting Windows 9x (e.g. if automatic start of Windows 9x is disabled, as earlier described), then MSCDEX HAS to be loaded from AUTOEXEC.BAT and therefore should be deleted from the DOSSTART.BAT file.  Windows 9x's 32-bit CD-ROM driver should be a little faster than a 16-bit DOS driver, but some programs cannot run with the 32-bit driver.

However, if it is chosen to load MSCDEX from DOSSTART.BAT, then SMARTDRV should be moved hereto as well, in order to obtain caching of the CD-ROM drive.  Otherwise SMARTDRV would be loaded before MSCDEX, causing the CD-ROM drive not to be cached.  The DOSSTART.BAT file should then look like this:

DOSSTART.BAT
     1
2
3

@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

and line 18 and line 19 should be deleted from AUTOEXEC.BAT.


ContentsWINSTART.BAT (Windows 95 & 98 and Windows 3.11)

Windows looks for the file C:\WINDOWS\WINSTART.BAT before starting.  So, if you for any reason want to run any programs or commands before starting Windows, you can put them into this file.  Unlike DOSSTART.BAT, WINSTART.BAT is also executed by Windows 3.11.


ContentsMS-DOS 6.22 (Windows 3.11)

The following example applies to a PC with:

MS-DOS 6.22
Windows 3.11
Soundblaster soundcard
CD-ROM drive
Mouse

(installed in C:\DOS)
(installed in C:\WINDOWS)
(installed in C:\SB16)
(installed in C:\CDROM)
(installed in C:\MOUSE)

but will also work with MS-DOS 6.00 / 6.20 or PC DOS 6.30 / 7.00.

The example are generally applicable, but line 15 and line 26 must be edited, as the drivers for CD-ROM drive and Mouse depends on the manufacturer.

The Lines with * can be omitted.

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
FILES=40
FCBS=1,0
BUFFERS=10,0
LASTDRIVE=J
STACKS=9,256
COUNTRY=045,865,C:\DOS\COUNTRY.SYS
DEVICE=C:\DOS\HIMEM.SYS /V
DEVICE=C:\DOS\EMM386.EXE RAM /MIN=0 I=B000-B7FF /V
DEVICEHIGH /L:1 =C:\DOS\ANSI.SYS
DEVICEHIGH /L:1 =C:\DOS\DISPLAY.SYS CON=(EGA,,2)
DEVICEHIGH /L:1 =C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH /L:2 =C:\CDROM\CDROM.SYS /D:MSCD000
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /P

 
AUTOEXEC.BAT
* 17
18
* 19
20
21
22
23
24
* 25
26
* 27
* 28
* 29
30
31
* 32
33
34
35
36
37
38
39
* 40

@ECHO OFF
LH /L:2 C:\DOS\MSCDEX /D:MSCD000 /M:15 /E /S /L:D /V
ECHO.
LH /L:0;2 /S C:\DOS\SMARTDRV 2048 128 /V
C:\DOS\MODE CON RATE=32 DELAY=2
C:\DOS\MODE CON CP PREP=((865 850) C:\DOS\EGA.CPI)
C:\DOS\MODE CON CP SEL=865
LH /L:2 C:\DOS\KEYB DK,865,C:\DOS\KEYBOARD.SYS
ECHO.
LH /L:2 C:\MOUSE\MOUSE
LH /L:1 C:\DOS\DOSKEY /INSERT
ECHO.
LH /L:2 C:\DOS\NLSFUNC C:\DOS\COUNTRY.SYS
PROMPT $_ $e[1;37;41m-|--$e[33;40m  $p$g
PATH C:\DOS;C:\WINDOWS;C:\SB16
SET DIRCMD=/P /A
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
SET TZ=CET-1CDT,3,-1,0,7200,10,-1,0,10800,3600
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:G
C:\SB16\DIAGNOSE /S
C:\SB16\SB16SET /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.
  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 10, which is appropriate, when Smartdrive (line 20) is used.
  7. Sets the last logical drive-letter to J:
  8. Sets stacks as Microsoft recommends it for Windows 3.11.
  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 23.  Therefore the same codepage should always be stated in line 9 and in line 23 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 3.11 and Smartdrive (line 20).
  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.  With Windows 3.11 the use of I=B000-B7FF requires the following line in C:\WINDOWS\SYSTEM.INI:
     
             [386Enh]
             device=c:\dos\monoumb.386
     
    NOTE!  If you don't have the file MONOUMB.386, then I=B000-B7FF can NOT be used, if Windows is to be run.  In that case all instances of /L:2 must be changed to /L:1.  You can download MONOUMB.386 here.
    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 ANSI driver, which among other makes manipulating of the colours in the DOS prompt (line 30) possible.  Can be substituted with an ANSI driver specific to the installed videocard.  DOS's ANSI.SYS uses a lot of memory.  Can be omitted.  Some older programs requires an ANSI driver.
  13. Loads the DOS EGA/VGA driver for use of up to 2 codepages (character sets) on the screen.  In DOS 6.22 no more memory is used for 2 codepages than for 1 codepage.
  14. Loads the driver for Windows 3.11's 32-bit file access.
  15. 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.
  16. States the name and location of the command interpreter.  /E: states the size of the DOS environment.  512 or 1024 is suitable.  If the number is smaller then some programs and batch-files might not run.  /P indicates that the command interpreter shall stay resident and that AUTOEXEC.BAT shall be executed.  /P may NOT be omitted.
     
     
  17. Hides the text in batch programs when the batch file is executed.
  18. Loads the DOS CD-ROM extension for access to the CD-ROM drive.  Requires that a CD-ROM driver (line 15) 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.
  19. Inserts a blank line (remember the period after ECHO).
  20. 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 128 states the amount when running Windows.  128 Kb is recommended when 32-bit file access is used, otherwise 2048 will be proper (having 8 Mb RAM or more).
  21. Increases the typematic rate and delay for the keyboard.
  22. Prepares Danish/Norwegian (865) and international (850) codepage (character set) for the screen.  Requires that DISPLAY.SYS is loaded (line 13).  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.
  23. Selects Danish/Norwegian codepage (character set) for the screen.  Requires that line 22 is executed.
  24. Loads the keyboard driver, configurated for a Danish keyboard with support for codepage 865.
  25. Inserts a blank line.
  26. 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.
  27. Loads DOSKey, which enables fast recalling and editing of the command line at the DOS prompt.  Can be omitted.
  28. Inserts a blank line.
  29. Loads national language support, which makes it possible to change the codepage with the command:  CHCP.  If C:\DOS\COUNTRY.SYS is not stated, the country information file stated at COUNTRY=   in CONFIG.SYS (line 9) is used.  Can be omitted.
  30. Makes a little fun with the DOS prompt.  Requires that an ANSI driver (line 12) is loaded.  The cross is made by holding down the ALT key and typing 196 and 197 on the numeric keypad at the right side of the keyboard (not all text editors supports this).  Alternatively the prompt can just be set to: $p$g
  31. 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).
  32. Sets the DOS DIR command for pausing, when the screen becomes full, and to display all files including hidden and system files.
  33. 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.
  34. States in which directory temporary files can be placed by the applications (older programs).
  35. Sets the timezone to GMT-1 (Central European Time), with correction for Daylight Saving Time.  Used by E-mail programs and News readers.
  36. States where the files for the Sound Blaster soundcard are installed.
  37. 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).
  38. Indicates how MIDI-files has to be played.  MAP:G makes sure that both basic MIDI and extended MIDI can be played in DOS.
  39. Sets the soundcard to the values in line 37.
  40. Sets the volumelevel for the different channels of the soundcard according to the values saved in the file C:\SB16\CTMIX.CFG by means of the program C:\SB16\SB16SET.EXE.  Can be omitted.

/L: indicates in which UMB block the driver/program shall be loaded.

/V indicates that the driver/program shall display extended information on the screen when loading.

If the Upper Memory in the address interval C800 to EFFF is unbroken, it should now, depending on the memory requirements for the CD-ROM and Mouse drivers, be possible to load all drivers and resident programs in Upper Memory, giving approximately 611 Kb free memory (can be checked with the command:  MEM /C).

An unbroken Upper Memory area is among other depending on the computers BIOS, the installed videocard and other plug-in cards installed in the computer.

NOTE!
The order of the lines should not be altered.  The order above provides the best utilization of the Upper Memory.

If there is not 611 Kb of free memory, the MEMMAKER program can be tried, but this program cannot always improve the memory utilization, and some times it becomes worse.  Especially KEYB.COM can cause problems.

Also look at the chapter:  More Upper Memory with EMM386.


ContentsPC DOS 7.00 (IBM)

The setup above will work with IBM's DOS as well.  The resident programs in version 7.00 typically uses a little lesser memory than the ones of MS-DOS 6.22, and IBM's DOS versions are translated to Danish.  The translation is awful in places and even more difficult to understand than the original English, but that goes for the Danish Microsoft MS-DOS version 7.x (Windows 9x) too.

Under PC DOS, the program RAMBOOST can be used for memory optimization, but this program isn't flawless either, and it is furthermore a resident program consuming memory itself.

Note that PC DOS's Smartdrive 5.00 not as standard uses write cache as MS-DOS's Smartdrive does.  To obtain write caching, the drives to be cached has to be stated succeeded by a + (SMARTDRV C+ D+ E+ etc.).

PC DOS's Smartdrive 5.00 indicates that CD-ROM drives are cached.  Tests with CD-Bench 1.07 states that this is not the fact when using PC DOS's MSCDEX.EXE 2.25, whereas CD-ROM drives are cached under PC DOS if MS-DOS's MSCDEX.EXE is used.


ContentsWindows 3.11

If a DOS version above DOS 5.00 is used, then the versions of HIMEM.SYS, EMM386.EXE and SMARTDRV.EXE installed by Windows in C:\ should NOT be used.  Use the corresponding files in the DOS directory instead.

It can be suitable or necessary to add the following lines to the SYSTEM.INI file in the Windows directory:

SYSTEM.INI
 
     1
2
3

[386Enh]
device=monoumb.386
SystemROMBreakPoint=FALSE
MaxBPs=768

  1. If the EMM386 Memory Manager is used with the parameter I=B000-BFFF, then the MONOUMB.386 device driver HAS to be used.  MONOUMB.386 can be downloaded here.
  2. If Quarterdeck's QEMM386 Memory Manager is used, then SystemROMBreakPoint HAS to be set to FALSE.
  3. Increases the maximum breakpoints that can be used by the Virtual Memory Manager (VMM) from 200 to 768.  This can improve Windows' performance.

ContentsMore Upper Memory with EMM386

If there is not enough Upper Memory for all drivers and TSR programs, then line 11 can be extended to:

     DEVICE=C:\DOS\EMM386.EXE RAM I=B000-B7FF HIGHSCAN FRAME=C800 /MIN=0 /V

HIGHSCAN tells the Memory Manger to search the system area (F000-FFFF) for unused memory, and FRAME=C800 places the page frame in the start of Upper Upper Memory Block number 2 (UMB 2), and thereby increases the probability for an unbroken UMB 2 from D000 and up.

Depending on the BIOS this might cause the computer to hang during bootup!  First try removing the FRAME=C800 statement.  This might lead to a third UMB block placed after the page frame.  If this is the case, some of the drivers and/or TSR programs must be loaded into UMB 3 using a DEVICEHIGH /L:3 =  or a  LH /L:3  statement.  If removing the FRAME=C800 statement still causes the computer to hang, then the HIGHSCAN statement must be removed as well.  Then it is not likely that any more Upper Memory can be gained using EMM386

It is possible that the computer works alright in DOS, but that Windows 9x cannot start when HIGHSCAN is used.

If HIGHSCAN cannot be used, then perhaps an alternative Memory Manager can be used instead to obtain more Upper Memory.


ContentsAlternative Memory Managers (QEMM386)

If there is a demand for more Upper Memory, an investment can be made in an alternative Memory Manager, as for instance Quarterdecks QEMM386.  This manager can typically give 32 Kb or more extra Upper Memory, an DOS will typically run 20% faster than with the Memory Manager provided by MS-DOS or PC DOS!!!

I use QEMM386 v. 8.03 with MS-DOS 6.22 myself, and my CONFIG.SYS, AUTOEXEC.BAT and DOS-UP.DAT files looks like the following.  Here might be something to obtain for other QEMM386 users.  The setup also shows how to make a startup menu with two configurations - one for running with QEMM386, which starts by default after 2 seconds, and one for running with EMM386:

CONFIG.SYS
[menu]
MENUITEM=qemm,Start med Quarterdeck Memory Manager
MENUITEM=emm,Start med Microsoft Memory Manager
MENUDEFAULT=qemm,2
MENUCOLOR=7,0
 
[common]
NUMLOCK=OFF
BREAK=ON
DOS=HIGH,UMB
FILES=90
FCBS=1,0
BUFFERS=10,0
LASTDRIVE=J
STACKS=9,256
COUNTRY=045,865,C:\DOS\COUNTRY.SYS
 
[qemm]
DEVICE=C:\QEMM\DOSDATA.SYS
DEVICE=C:\QEMM\QEMM386.SYS R:1 RAM
DEVICE=C:\QEMM\DOS-UP.SYS @C:\DOS-UP.DAT
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\QEMM\QDPMI.SYS SWAPFILE=DPMI.SWP SWAPSIZE=1024
DEVICE=C:\QEMM\LOADHI.SYS /R:1 C:\VIDEO\EANSI.SYS
DEVICE=C:\QEMM\LOADHI.SYS /R:1 C:\DOS\DISPLAY.SYS CON=(EGA,,2)
DEVICE=C:\QEMM\LOADHI.SYS /R:1 C:\WINDOWS\IFSHLP.SYS
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\CDROM\TEAC_CDI.SYS /D:MSCD000
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\SB16\DRV\CTSB16.SYS /UNIT=0 /BLASTER=A:220 I:5 D:1 H:5
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\SB16\DRV\CTMMSYS.SYS
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\DOS\INTERLNK.EXE /AUTO /LPT1 /NOPRINTER
rem DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\DOS\RAMDRIVE.SYS 32767 /E
SHELL=C:\QEMM\LOADHI.COM /R:2 C:\DOS\COMMAND.COM C:\DOS\ /E:2048 /P
 
[emm]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF /V
DEVICE=C:\DOS\EMM386.EXE RAM I=B000-B7FF I=C800-EFFF HIGHSCAN FRAME=C800 /MIN=0 /V
DEVICEHIGH /L:1 =C:\VIDEO\EANSI.SYS
DEVICEHIGH /L:1 =C:\DOS\DISPLAY.SYS CON=(EGA,,2)
DEVICEHIGH /L:1 =C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH /L:1 =C:\CDROM\TEAC_CDI.SYS /D:MSCD000
DEVICEHIGH /L:2 =C:\SB16\DRV\CTSB16.SYS /UNIT=0 /BLASTER=A:220 I:5 D:1 H:5
DEVICEHIGH /L:2 =C:\SB16\DRV\CTMMSYS.SYS
DEVICEHIGH /L:2 =C:\DOS\INTERLNK.EXE /AUTO /LPT1 /NOPRINTER
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:2048 /P

 
AUTOEXEC.BAT
@ECHO OFF
ECHO.
C:\DOS\MODE CON RATE=32 DELAY=2
C:\DOS\MODE CON CP PREP=((865 850) C:\DOS\DK.CPI)
C:\DOS\MODE CON CP SEL=865
ECHO.
GOTO %CONFIG%
 
:qemm
C:\QEMM\LOADHI /R:2 C:\DOS\MSCDEX /D:MSCD000 /M:18 /E /S /L:G /V
ECHO.
C:\QEMM\LOADHI /R:2 /LO C:\DOS\SMARTDRV 2048 128 /V
C:\QEMM\LOADHI /R:2 C:\DOS\KEYB DK,865,C:\DOS\KEYBOARD.SYS
ECHO.
C:\QEMM\LOADHI /R:2 C:\MOUSE\MSCMOUSE /1 /A3
C:\QEMM\LOADHI /R:2 C:\DOS\DOSKEY /INSERT
C:\QEMM\LOADHI /R:2 C:\DOS\NLSFUNC C:\DOS\COUNTRY.SYS
ECHO.
GOTO common
 
:emm
LH /L:2 C:\DOS\MSCDEX /D:MSCD000 /M:18 /E /S /L:G /V
ECHO.
LH /L:0;2 /S C:\DOS\SMARTDRV 2048 128 /V
ECHO.
LH /L:2 C:\MOUSE\MSCMOUSE /1 /A3
LH /L:2 C:\DOS\KEYB DK,865,C:\DOS\KEYBOARD.SYS
LH /L:2 C:\DOS\DOSKEY /INSERT
LH /L:2 C:\DOS\NLSFUNC C:\DOS\COUNTRY.SYS
ECHO.
 
:common
PROMPT $_ $e[1;37;41m-|--$e[33;40m  $p$g
PATH C:\DOS;C:\QEMM;D:\WINDOWS;C:\BAT;C:\NORTON;C:\TOOLS;C:\PCTOOLS
SET DIRCMD=/P /A
SET TEMP=E:\TEMP
SET TMP=E:\TEMP
SET SVGA=/g
SET AUTOBASE=/LYD18 /COM2
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:G
SET PCTOOLS=C:\PCTOOLS\DATA
SET TZ=CET-1CDT,3,-1,0,7200,10,-1,0,10800,3600
SET IEPPP=C:\IEXPLORE
SET PCTCP=C:\IEXPLORE\PCTCP.SHV
SET PATH=%PATH%;C:\IEXPLORE
C:\VIDEO\VMODE 640-72
C:\VIDEO\VMODE 800-72
C:\VIDEO\VMODE 1024-70
C:\VIDEO\VMODE 1280-60
C:\SB16\SB16SET /P
C:\NORTON\TM START /N
C:\TOOLS\AUTOTIME /EU
C:\TOOLS\PRINTCP /Q
C:\AUTOBASE\AUTOBASE /HUSK+
CALL C:\BAT\BOOTLOG
CALL C:\BAT\START
CALL C:\BAT\MENU

 
DOS-UP.DAT
DOSDATA=1
FILES=1
FCBS=1
LASTDRIV=1
INSTALL=1
STACKS=1
WKBUFFER=1
IFS=1

 
 
In this file it is stated in which UMB, FILES, BUFFERS etc.
shall be loaded. This gives an opportunity of manually filling
up small unused UMB areas
 
 
IFS=  only works with MS-DOS 7.x

This results in 632 Kb free memory with QEMM386 and 607 Kb free memory with EMM386.

Furthermore there is now room in Upper Memory for the two drivers C:\SB16\DRV\CTSB16.SYS and C:\SB16\DRV\CTMMSYS.SYS, which makes it possible to playback WAV, MID, CMF and VOC soundfiles under DOS, using the program C:\SB16\PLAY.EXE.  These drivers are provided with the Sound Blaster 16 soundcard.

If there is not enough Upper Memory for all drivers and resident programs, the line:  DEVICE=C:\QEMM\QEMM386.SYS R:1 RAM  can be expanded with the parameter:  ST:F (safest) or ST:M  (this should be tested with the Quarterdeck OPTIMIZE program).

If DoubleSpace, DriveSpace or Stacker disk compression is used, then the parameter:  DBF=2  HAS to be added to the line mentioned above.

If there is not 632 Kb of free memory with QEMM386, the OPTIMIZE program can be tried, but this program cannot always improve the memory utilization, and some times it becomes worse.  Especially KEYB.COM can cause problems.

If the computer hangs under startup after an apparently successful OPTIMIZE, it might be because OPTIMIZE has added squeezing to the LOADHI procedure for some of the programs.  Boot again and press F5.  Then run the following command:  C:\QEMM\OPTIMIZE /NOSQT /NOSQF.  This starts OPTIMIZE with Temporary- and Frame squeezing turned off.

If version 7.x of Quarterdeck is used, it can not be recommended to use DEVICE=C:\QEMM\DOSDATA.SYS, because there will be SO MUCH free memory, that some programs (Windows, among others) refuses to start.  In most instances you can circumvent this by starting the programs with the MS-DOS LOADFIX program.  Version 8.x of Quartedeck seems to take hand of the problem by itself.


ContentsStacker disk compression

If Stacker version 3.x or 4.x is used, the following can be entered into CONFIG.SYS, AUTOEXEC.BAT and STACKER.INI.  Stacker is presumed installed in C:\STACKER, and there is two physical harddisks (C: and D:).

CONFIG.SYS
.
.
DEVICE=C:\QEMM\QEMM386.SYS R:1 RAM DBF=2 ST:F
DEVICE=C:\QEMM\DOS-UP.SYS @C:\QEMM\DOS-UP.DAT
DEVICE=C:\QEMM\LOADHI.SYS /R:2 C:\STACKER\STACHIGH.SYS
.
.

ST:F for more UMB.
 
Loads Stacker in UMB.

 
AUTOEXEC.BAT
.
.
C:\QEMM\LOADHI /R:2 /LO C:\DOS\SMARTDRV 2048 128 /V
C:\STACKER\CHECK /WP
.
.

 
Checks the Stacker drives.

 
STACKER.INI
/DIR=C:\STACKER\
/P=1
/EMS
/-AUTO
/Q-
C:\STACVOL.DSK,SW
D:\STACVOL.DSK,SW

States in which directory Stacker is installed.
Sets the compression to minimum (fastest).
Loads the Stacker buffers in EMS (64 Kb).
Turns off automatic stacking of floppy-drives.
Turns on displaying the loading of the Stacker drives.
States the name of the 1.st Stacker file and swaps drive C: and E:
States the name of the 2.nd Stacker file and swaps drive D: and F:

The Quarterdeck parameter:  DBF=2 HAS to be used with Stacker.

It is best to use Stacker with minimum compression, and then at regular intervals run a full optimization with maximal compression by means of the command:  C:\STACKER\SDEFRAG /R /SU.  This may last up to 1 hour for a Stacker file of 512 Mb.

With Stacker 4.x the DEVICE=C:\STACKER\DPMS.EXE statement can be used in CONFIG.SYS to create DPMS memory, in which Stacker can be loaded, but this might cause problems with other programs as for instance PKZIP or QEMM386 with Stealth (ST:F / ST:M).  DPMS can also NOT be used if 32-bit file access to the compressed drives is wanted under Windows.  So if EMS memory is available, it is better to use this, than to use DPMS memory.


ContentsHarddisk partitioning

If you do not want to compress your harddisk, you can often obtain more space by partitioning the disk by means of the program FDISK.EXE.  This reduces the amount of space wasted by each of the files on the disk.

The amount of wasted space is among other things dependent on the size of the disk, as the waste is bigger on large disks, because DOS has to use larger clusters (allocation units) on large disks than on small disks.

One file always takes up a whole number of clusters, and therefore a file of just 1 byte will use 16.384 bytes = 1 cluster on a harddisk of 1023 Mb and 32.768 bytes on a harddisk bigger than 1023 Mb!  The average waste of space on a harddisk bigger than 1023 Mb will be 40% !!, while the waste on a harddisk between 512 and 1023 Mb will be 20%, and on a harddisk of 511 Mb it will only be about 10%.  Smaller files typically results in more waste of space, as do large numbers of directories and subdirectories, because these also occupy 1 cluster each.

If you have 2 harddisks, both partitioned to 2 drives, then the first harddisk (harddisk 0) will contain the logical drives C: and E:, while the other harddisk (harddisk 1) will contain the logical drives D: and F: after the partitioning.  During the partitioning it is important to remember to set the primary partition on disk 0 to be the active partition, otherwise drive C: will not be bootable

NOTE!
By using FDISK all data on the harddisk are lost, so before using FDISK all data has to be BACKED UP, ready for reinstalling afterwards.
 
After running FDISK the drives has to be formatted again.  Drive C: is formatted with the command:  A:\FORMAT C: /U /S  while the other drives are formatted with the command:  A:\FORMAT drive: /U
 
Don't forget to make a bootable diskette before the partitioning by means of the command:  FORMAT A: /U /S  and to copy the files FDISK.EXE and FORMAT.COM to this diskette.  Other files that should be copied to the boot diskette are:  SYS.COM, CHKDSK.EXE, KEYB.COM, KEYBOARD.SYS, ATTRIB.EXE and MEM.EXE.

Commercial- and shareware-programs that can make disk partitioning without loss of data are available, for example PowerQuest's PartitionMagic.


ContentsWindows 95 OSR2 and FAT32

The OEM Service Release 2 (OSR2) version of Windows 95 uses FAT32 instead of the previously used FAT16 file system.  FAT32 uses smaller clusters (typically 4.096 bytes) and supports harddisk partitions of a size up to 2 Terrabytes (2048 Gb), whereas FAT16 only could handle harddisk partitions with sizes up to 2 Gb.

Because of the smaller clustersize used by FAT32, there is no longer the same need for harddisk partitioning in order of reducing the amount of wasted disk space.  However, if you have a large harddisk (4 Gb or more), harddisk partitioning can still give you a better overview of your folders and files.

OEM stands for: "Original Equipment Manufacturer", which means that the OSR2 version of Windows 95 can only be purchased in conjunction with buying a new computer (or sometimes when buying a new harddisk).

NOTE!
You can NOT just update an existing Windows 95 with the OSR2 version.  Because of FAT32 the harddisk has to be partitioned and formatted again, and Windows 95 and all your applications has to be reinstalled.

With Windows 98 it is possible to convert a FAT16 partition to FAT32.


Top

 
Have fun

NOTE!  This page can be downloaded in text format.  Also available in French.


 
Home
183002