Table des matières

MSDOS.SYS

Take control of your Windows 95/98/ME machine at DOS level!

After all Windows 95/98/ME is a MIXED (read “partially enabled”) 32-bit AND 16-bit [for backward compatibility with MS-DOS (DOS16 and DOS32) and older 16-bit Windows/WfWG 3.xx (Win16) programs] Graphical User Interface (GUI) protected mode virtual environment (… sorry, Operating System), which still depends on the good old MS-DOS 7.xx TSR modules (IO.SYS + COMMAND.COM), MS-DOS mode memory manager (HIMEM.SYS) and compatibility (legacy) drivers (IFSHLP.SYS) to load on top of the plain DOS command line based layer!

The good news is Microsoft released Windows XP (eXPerience)/2003/Vista/2008/7/8/8.1/2012/10/2016/2019/11/2022, true 32-bit/64-bit multitasking, multithreading and Symmetrical MultiProcessing (SMP) graphical OSes, which aim to do away once for all with the “ancient” 16-bit MS-DOS command line.

Unfortunately Microsoft removed 16-bit application support from all Windows 64-bit (x64) OSes.

And the bad news is these advanced/modern OSes do not fully support native/real/true/pure MS-DOS mode natively (by themselves, without adequate hardware + software virtualization support), necessary for some old DOS based programs/games that require exclusive access to memory/video/audio/network hardware resources, and most of whom are still memory “hungry”, especially the ones that canNOT run from a DOS session/box/console/window inside Windows.

Therefore you need to master your MSDOS.SYS parameters, in order to BOOT into your system the way YOU want!

All these MSDOS.SYS tips + guidelines (and much more) are also available as part of Windows 95/98/NT4/2000/ME/XP/2003 + DOS 7.xx/8.00 ©Tricks + Secrets Files (W95-11D.EXE), FREEware.

If you'd like to see how my MSDOS.SYS file looks like, and to view my DOS conventional + upper memory optimized CONFIG.SYS + AUTOEXEC.BAT startup files, head on to my MS-DOS 7.xx MEMory Specs Page.

Microsoft REMOVED COMPLETELY the access to native/real/true/pure MS-DOS mode from Windows Millennium Edition (ME) [a.k.a. MS-DOS 8.00], but you CAN get it back by applying Unofficial DOS Patches, which modify COMMAND.COM + IO.SYS (from %windir%\COMMAND\EBD) + REGENV32.EXE (from %windir%\SYSTEM), in order to be able to boot to native MS-DOS and use DOS mode startup files (AUTOEXEC.BAT + CONFIG.SYS), Windows 95/98 style.

Overview

MSDOS.SYS [MicroSoft DOS SYStem] is a vital (the OS is unable to load without it or without WINBOOT.INI, its replacement) Windows 95/98/ME text/ASCII system file, loads Windows 9x/ME OS boot options and paths settings upon bootup, is located in the root directory/folder of the boot drive/partition (default is C:\), has by default (but not necessary for proper operation) Hidden (H), Read-only (R) + System (S) file attributes, and can be edited with Notepad in Windows or EDIT.COM in DOS.

  • MSDOS.SYS file size MUST be larger than 1024 Bytes because certain applications (especially anti-virus utilities) expect it to be at least 1024 Bytes in length. Otherwise such programs may not work properly, or may assume MSDOS.SYS had been infected by a virus (false positive).
  • In case using DrvSpace (Microsoft disk “doubler” compression utility) to compress FAT16 hard drives/partitions, there is another MSDOS.SYS file located in the root directory/folder of the compressed volume (default is H:\). Both these files need to be IDENTICAL to have Windows 9x/ME boot properly with DrvSpace installed.
  • In case dual-booting with MS-DOS 6.xx make sure NOT to use DblSpace, the older Microsoft disk compression tool (bundled with MS-DOS from 6.00 up to 6.20), which is NOT compatible with Windows 95/98/ME OSes NOR with Long File Names (LFNs)!

During the OS bootup sequence MSDOS.SYS is processed after IO.SYS.

MSDOS.SYS (or at least WINBOOT.INI) must exist in the root directory/folder of the boot drive/partition [usually C:\ = replace with your actual Windows 9x/ME drive/partition letter if different on your computer], and must contain at least these lines [WINDOWS = replace with your actual Windows 9x/ME main directory/folder name if different on your computer] for proper OS bootup:

[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C

If MSDOS.SYS (and WINBOOT.INI) is (are) absent, the OS bootup sequence will stop at the native/real/true/pure MS-DOS mode C:\ prompt, and will display an error message.

All earlier MS-DOS editions [up to 6.22] use a binary MSDOS.SYS file, which used to contain the DOS Kernel (core) code.

Windows NT based (NTx) OSes [NT, 2000, XP + 2003] use the binary NTLDR file instead, coupled with BOOT.INI, a plain text/ASCII configuration file, and which can be edited by any text/ASCII file editor (like Notepad), or by using BOOTCFG.EXE command line tool.

Windows Vista, 2008, 7, 8 + 2012 [newer NT based (NTx) OSes] use the binary Boot Loader (WINLOAD.EXE) + Windows Boot Manager (BOOTMGR) files, coupled with the Boot Configuration Data (BCD) configuration database.

Editing

You can edit/view/print MSDOS.SYS using Notepad.exe in Windows (Windows default ASCII/text editor = usually C:\WINDOWS\NOTEPAD.EXE) or EDIT.COM in DOS [MS-DOS default ASCII/text editor = usually C:\DOS\EDIT.COM (MS-DOS 6.xx) or C:\MSDOS\EDIT.COM (MS-DOS 6.xx) or C:\WINDOWS\COMMAND\EDIT.COM (Win95/98/ME)].

Before editing you MUST strip MSDOS.SYS of its default attributes [Hidden (H), Read-only (R) and System (S)], to be able to modify it.

C:\>attrib -h -r -s msdos.sys

After making your desired modifications to MSDOS.SYS, save it, exit the text editor, and then reboot your machine so the changes can take effect.

Optional: restore MSDOS.SYS attributes back to the original: Hidden, Read-only, System.

C:\>attrib +h +r +s msdos.sys

NOTE: Alternatively you can use one of these freeware MSDOS.SYS Editors to tweak ALL MSDOS.SYS parameters (including the UNDOCUMENTED ones) from a single, easy to use interface.

If a WINBOOT.INI file is also present in the root directory/folder of the boot drive/partition (usually C:\), MSDOS.SYS is automatically bypassed by the Win9x/ME bootup routine!

WINBOOT.INI MUST contain the SAME EXACT lines as MSDOS.SYS so Windows can boot properly. In such case MSDOS.SYS can be moved/deleted altogether, but BEWARE of certain programs that may rely on its presence for proper operation.

Therefore if doing this manually, you need to edit MSDOS.SYS first, make your desired changes, and only after that you need to copy it as WINBOOT.INI (overwriting the original one), to make sure BOTH their contents remain IDENTICAL.

WINBOOT.INI is NOT renamed by Win9x/ME if dual-booting to an older MS-DOS version, so it can be also edited from MS-DOS 6.xx, in which case it is copied as MSDOS.W40 (which is actually MSDOS.SYS renamed by the Win9x/ME dual-boot routine).

Some (still) prefer to dual-boot: keep the ol' MS-DOS version 6.xx (+ Windows/WfWG 3.1x) and have Win9x/ME installed in a separate directory. This way you have the choice to boot with your Win9x/ME configuration, or with your old version of MS-DOS, and eventually use Windows/WfWG 3.1x (only if you kept them!).

If you dual-boot [see “DUAL BOOT” in MYTIPS95.TXT (part of W95-11D.EXE) for details] and choose to boot with your ol' MS-DOS version 6.xx, MSDOS.SYS is renamed to MSDOS.W40.

If also using MS-DOS 6.xx, make sure the DOS directory (default C:\MSDOS or C:\DOS) is mentioned in your path, on the PATH line in your AUTOEXEC.BAT or CONFIG.SYS, and that EDIT.COM resides in your DOS directory or in a directory in your path.

From now on, you'll be able to view/edit MSDOS.SYS contents using your favorite text editor (all Windows 9x/ME releases install both MS-DOS EDIT.COM and Windows Notepad). Change/add MSDOS.SYS entries to customize your system, then save your changes and close the editor when you're done.

You MUST reboot your machine for the new settings to take effect, ONLY IF you have modified MSDOS.SYS.

Reference table

ALL MSDOS.SYS parameters, even those UNDOCUMENTED, what they do, and how to tweak them to MAXIMIZE your Windows 95/98/ME machine performance, are listed in this table.

MSDOS.SYS consists of 2 sections and supports all following entries:

Section [Paths]

Entry Description Default Value Other possible Values Comments
WinDir= Windows 9x/ME Install Directory C:\WINDOWS ?:\XXXXXXXX.XXX
WinBootDir= Windows 9x/ME Boot Directory C:\WINDOWS ?:\XXXXXXXX.XXX
HostWinBootDrv= Windows 9x/ME Boot Drive C ? If using a disk compression utility (such as MS DrvSpace), change the drive letter on the “HostWinBootDrv=” line to point to the host drive letter (usually H).
UninstallDir= Windows 9x/ME Uninstall Directory C:\ ?:\XXXXXXXX.XXX points to the path you selected during Setup, ONLY IF you have chosen to backup your old OS at install time.

LIMITATION: The Windows 95/98/ME main install directory/folder MUST abide by the old MS-DOS 8.3 (????????.???) Short File Names (SFNs) rules. Trying to use Long File Names (LFNs) will generate Operating System (OS) errors, because the Win9x/ME 32-bit GUI loads on top of the 16-bit MS-DOS 7.xx/8.00 layer at bootup time, which does NOT recognize LFNs!

Section [Options]

Entry Description Default Value Other possible Values Comments/Notes
AutoScan= Allow Win95 B/C OSR 2.x, 98/98 SE or ME to automatically ScanDisk the boot drive after improper shutdown 1 : Prompt user for scanning (scan begins if NO input for 60 seconds) 0 : No Scanning allowed
2 : Allow automatic scanning (no prompt)
BootConfig= Allow processing of alternative boot setup N/A : Current boot setup processed MYCONFIG: Alternate boot setup: CONFIG.SYS must include this same string as a MENUITEM “BootConfig=” and “WinVer=” are specific ONLY to Windows 98, 98 SE and ME!
“BootConfig=MYCONFIG” (example if using multiple boot configurations) is UNDOCUMENTED and allows alternative boot setup.
To make this work properly CONFIG.SYS MUST also include this same EXACT string as a MENUITEM= under its [MENU] section: MYCONFIG and also as a section by itself: [MYCONFIG] . “BootGUI=” MUST also be set to 1 in MSDOS.SYS.
Selecting MYCONFIG from the Startup Menu will force Windows 98/ME to boot with this particular option. Selecting any other option will default to native/real/true/pure MS-DOS mode.
BootDelay= Initial startup delay in seconds: from 0 up to 99 [06] 2 [Win95/OSR2]
0 [Win98/ME]
0 - 99 Delay in seconds (from 0 up to 99) allows time to press a Startup Menu function key or key combo (some are UNDOCUMENTED): F4, F5, F6, F8, Ctrl, Shift, Ctrl+F5, Ctrl+F8, Shift+F5 or Shift+F8 (the Ctrl key can be used ONLY with Windows 98/ME).
DEFAULT is 0 if “BootKeys=0”.
“BootDelay=” is NOT supported in Windows 98/ME: automatically defaults to 0!
BootFailSafe= Invalid parameter! Use BootSafe= instead! Invalid Invalid
BootGUI= Automatic Windows 9x/ME GUI startup 1 : (Enabled) Start Windows 9x/ME 0 : (Disabled) Start MS-DOS 7.xx/8.00 Command Prompt
BootKeys= Startup keys access: F4, F5, F6, F8, Ctrl and Shift 1 : Enabled 0 : Disabled
BootMenu= Startup Menu display 0 : Disabled : Press F8 to display 1 : Enabled : Show Startup Menu If “BootKeys=0”, then “BootMenu=1” and “BootMulti=0” do NOT change the DEFAULT action.
WARNING: Do NOT boot into your old/previous OS (MS-DOS 6.00 - 6.22) if using Windows 95 B/C OSR 2.x or Windows 98/98 SE(U)! You won't be able to get back into OSR2/Win98 after
BootMenuDefault= Indicated menu option is highlighted 1: Normal Win95/98/ME OS highlighted 2 - 8 : Any other Bootup Menu option Startup Menu option 3 (“Safe mode”) is highlighted if a previous Windows 95/98 load failed.
BootMenuDelay= Delay in seconds (from 0 up to 99) before running highlighted menu item (only if BootMenu=1) 30 0-99
BootMulti= Startup key F4 access: old OS bootup choice access 1 : Enabled : F4 access ON 0 : Disabled : F4 access OFF BootMulti=” and “BootWin=” are available ONLY IF using the dual-boot feature built into Windows 9x/ME OS, AND still using a previously installed version of MS-DOS (6.00 - 6.22).
Delay in seconds (from 0 up to 99) allows time to press a Startup Menu function key or key combo (some are UNDOCUMENTED): F4, F5, F6, F8, Ctrl, Shift, Ctrl+F5, Ctrl+F8, Shift+F5 or Shift+F8 (the Ctrl key can be used ONLY with Windows 98/ME).
DEFAULT is 0 if “BootKeys=0”.
“BootDelay=” is NOT supported in Windows 98/ME: automatically defaults to 0!
BootSafe= Force Safe Mode startup 0 : Disabled 1 : Enabled
BootWarn= Display Safe Mode startup warning and menu 0 : Disabled 1 : Enabled
BootWin= Windows 9x/ME selected as operating system 1 : Enabled : Windows 95/98/ME OS selected 0 : Disabled : Previous OS (MS-DOS 6.xx) selected
DblSpace= Load DBLSPACE.BIN module (if present) 1 : Enabled : DoubleSpace ON 0 : Disabled : DoubleSpace OFF
DisableLog= Create BOOTLOG.TXT in C:\ root upon bootup 0 : Enabled : Create BOOTLOG.TXT 1 : Disabled : Do NOT create BOOTLOG.TXT “DisableLog=” and “SystemReg=” are UNDOCUMENTED!
IMPORTANT: All Windows 98, 98 SP1 + 98 SE users should have a “SystemReg=0” line (without quotes) in MSDOS.SYS (+ in WINBOOT.INI if any) to disable the native DOS registry scanning process (performed by SCANREG.EXE /FIX during bootup, before loading the Windows GUI) in order to avoid errors/lockups, especially if installed any IO.SYS updates/fixes!
DoubleBuffer= SCSI, older ESDI/IDE/ATA and large FAT32 drives > 8 GB may need Double-Buffering 0 : Disabled : DoubleBuffer OFF 1 : Enabled : DoubleBuffer ON See “DOUBLE BUFFER”
DrvSpace= Load DRVSPACE.BIN module (if present) 1 : Enabled : DriveSpace ON 0 : Disabled : DriveSpace OFF
LoadTop= Load COMMAND.COM/DRVSPACE.BIN into the High Memory Area (HMA) at the top of the Conventional Memory Area (CMA) 1 : Enabled : Load into HMA 1 : Disabled : Load into CMA “LoadTop=1” (default) may generate incompatibilities with some older DOS programs/residents which need to find COMMAND.COM into the Conventional Memory Area (CMA) at the bottom of the 640K barrier (a.k.a. “low” memory).
In such cases change this setting to “LoadTop=0” to prevent COMMAND.COM/DRVSPACE.BIN from loading into the High Memory Area (HMA), which is located at the top of the CMA, just below the 640K barrier.
Logo= Display (animated) Logo while Windows 9x/ME OS boots 1 : Enabled : Display Logo 0 : Disabled : Do not display Logo “Logo=0” may solve 3rd party memory management conflicts if using Symantec (QuarterDeck) QEMM386, McAfee (Helix) NetRoom RM386, Qualitas (IBM) 386MAX, Uwe Sieber UMBPCI (+ HIRAM) etc memory managers in CONFIG.SYS.
Network= Enable Networking and/or TCP/IP “Safe Mode” option 1 : Enabled 0 : Disabled “Network=1” MUST be present for “Safe Mode with Network support” to appear as option 4 on the Startup Menu.
SystemReg= Scan Registry files upon every Windows startup 1 : Enabled : Scan Registry 0 : Disabled : Do NOT scan registry Scan Registry files upon every Windows startup
WinVer= Display Windows ME (4.90.3000), 98 SE (4.10.2222) or 98 (4.10.1998) build 4.90.3000 [Windows ME]
4.10.2222 [Windows 98 SE]
4.10.1998 [Windows 98]
N/A