Here are the config files from my MMX 233 system running Windows 95 OSR2.5 (or Windows 95C). This setup has proven to be highly compatible with DOS games and gives CD-ROM, SoundBlaster compatible sound and mouse support in DOS mode while leaving Windows 95 to do its thing.
This is the computer that I used for my S3 ViRGE video (although the HDD died and it has all been reinstalled since then).
These files and the accompanying notes are very mildly adapted from these examples - local mirror of https://madsenworld.dk/con_auto/index-uk.htm#windows9x (external site)
This is mainly here for my own future reference, but may prove useful for other people with similar setups.
Drivers
- For CD, I use the ubiquitous and highly compatible oakcdrom.sys
- For the ESS AudioDrive ES1868, I use the drivers from Phil’s Computer Lab [Win9x local mirror] [DOS local mirror]
- For mouse, I use ctmouse [local mirror]
CONFIG.SYS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
BREAK=ON
DOS=HIGH,UMB,NOAUTO
FILESHIGH=40
FCBSHIGH=1,0
BUFFERSHIGH=30,0
LASTDRIVEHIGH=Z
STACKSHIGH=9,256
COUNTRY=044,850,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:\INSTALL\DRIVERS\OAKCDROM.SYS /D:MSCD000
DEVICEHIGH /L:2 =C:\AUDIODRV\ES1868.COM /A:0 /I:0
DEVICEHIGH /L:2 =C:\WINDOWS\SETVER.EXE
DEVICEHIGH /L:1 =C:\WINDOWS\IFSHLP.SYS
SHELL=C:\WINDOWS\COMMAND.COM C:\WINDOWS\ /E:1024 /P
- Extends Control-C / Control Break also to work under I/O operations as for instance reading and writing of the disks.
- 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 10). 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.
- 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).
- Sets the minimal number of file control blocks. Is only used by very old programs.
- 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).
- Sets the last logical drive-letter to Z: (I map this to my NAS in Windows)
- Sets stacks as Microsoft recommends it for Windows 9x.
- Sets country to 44 (UK), with codepage 850 as the system character set i. e. the character set that is used for sorting and conversion to and from capital letters. The same codepage should always be stated in line 8 and in line 21 to avoid problems with access to files with names, in which characters from the extended ASCII character set are used.
- Loads the DOS XMS manager. Necessary for the next line and for Windows 9x and Smartdrive (in AUTOEXEC.BAT).
- 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.
- 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.
- 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 AUTOEXEC.BAT. 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.
- Loads the ES1868 sound card driver from Phil’s Computer Lab (linked above).
- 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.
- Loads the driver for Windows 9x’s 32-bit file access.
- 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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=((850) C:\WINDOWS\COMMAND\EGA.CPI)
C:\WINDOWS\COMMAND\MODE CON CP SEL=850
LH /L:2 C:\WINDOWS\COMMAND\KEYB UK,850,C:\WINDOWS\COMMAND\KEYBOARD.SYS
LH /L:2 C:\INSTALL\DRIVERS\CTMOUSE
LH /L:2 C:\WINDOWS\COMMAND\DOSKEY /INSERT
PROMPT $p$g
PATH C:\WINDOWS;C:\WINDOWS\COMMAND
SET DIRCMD=/P /A
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET BLASTER=A220 I7 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:G
- Hides the text in batch programs when the batch file is executed.
- Loads the DOS CD-ROM extension for access to the CD-ROM drive. Requires that a CD-ROM driver (CONFIG.SYS) 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 in CONFIG.SYS). /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.
- Loads the DOS Smartdrive disk cache for faster reading and writing on the (hard)disks. When Smartdrive is loaded AFTER MSCDEX, the cache will also work for the CD-ROM drive. Requires that a XMS manager is loaded in CONFIG.SYS. 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.
- Increases the typematic rate and delay for the keyboard.
- Prepares GB (850) codepage (character set) for the screen. Requires that DISPLAY.SYS is loaded (CONFIG.SYS). 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.
- Selects UK codepage (character set) for the screen. Requires that the line above is executed.
- Loads the keyboard driver, configurated for a British keyboard with support for codepage 850.
- 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 (e.g. CuteMouse).
- Loads DOSKey, which enables fast recalling and editing of the command line at the DOS prompt. Can be omitted.
- Set the DOS prompt to show the current directory followed by the character >.
- 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.
- Sets the DOS DIR command for pausing, when the screen becomes full, and to display all files including hidden and system files.
- 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.
- States in which directory temporary files can be placed by the applications (older programs).
- States that the soundcard is installed at Address 220 with IRQ 7, 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).
- Indicates how MIDI-files has to be played. MAP:G makes sure that both basic MIDI and extended MIDI can be played in DOS.
C:\WINDOWS\DOSSTART.BAT
This runs when selecting the “Restart in MS-DOS mode” option from Windows. Running these commands as part of autoexec.bat breaks sound in Windows, so we’ll just run it here instead.
1
2
C:\AUDIODRV\ESSCFG.EXE /A:220 /I:7 /D:1 /B:300 /J:E
C:\AUDIODRV\ESSVOL.EXE /V:8 /L:8 /W:8 /M:0 /C:8 /S:8 /A:0
- Runs the ESSCFG utility, which sets PnP parameters of the soundcard outside of the Windows environment. This is configured as per the BLASTER environment variable specified in AUTOEXEC.BAT.
- Sets volume levels of the card to some sensible default levels.
Conclusion
If I have done something egregiously stupid above please do let me know using the links below. It will probably save myself and anyone else who blindly copies this some hassle. Just be polite!
If you liked this post please consider following me on Instagram or BlueSky!