How to make your Windoze 95 machine dual-boot into DOS


For those of you that don't know, Windows 95 (And 98) needs DOS every bit as much as Windows 3.11 did. Without DOS, windoze 95 can't boot. DOS is used more as a boot-loader rather than a platform from which it runs. After DOS is loaded into your computer, windoze 95 takes over and removes *most* of DOS from memory. Since DOS is loaded first, it is possible for you to prevent windoze 95 from loading afterwards.

Lets begin by modifying the MSDOS.SYS file. It is located in the root directory of your hard disk. If you are using the windoze explorer you will need to change the "view" option so that you can see hidden and system files. From DOS you can use "DIR /A/P" to see it. You will need to change the files attributes so you can modify it. From a command prompt use "ATTRIB -R -S -H C:\MSDOS.SYS" to do this. Now pull MSDOS.SYS into the text editor of your choice. It should look like what I have below.

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


[Options]
BootMulti=1
BootGUI=1
Network=1
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxg
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxh
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxj
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxl
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxm
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxn
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxo
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxp
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs
AutoScan=2

Look for the line "BootGUI=1" near the top of the file. You need to change the line so it reads "BootGUI=0". Now save the file. That line single handedly prevents windoze 95 from loading after DOS. Now, don't worry, I'll show you how to start windoze. As long as you haven't ever added the line "DOS=NOAUTO" to your AUTOEXEC.BAT file you can just type "WIN" at a DOS prompt and windoze 95 will startup like a charm. Also, there is no real need to restore the HIDDEN and SYSTEM attributes the MSDOS.SYS file, your machine will boot just fine with out them (Only in windoze 95, previous versions of DOS will NOT boot if you remove the SYSTEM attribute from the MSDOS.SYS file!) For those nervous about deleting this file here is how to restore the attributes we removed before.
Use "ATTRIB +R +H +S C:\MSDOS.SYS" at a command prompt.

I would recommend that most of you create a menu system for this setup. Specifically, I would recommend a CONFIG.SYS menu, but you could get by with a simple AUTOEXEC.BAT menu using CHOICE.COM. The main benefit is that either of these types of menu's can be set to automatically timeout and start the OS of your choice. Another benefit is with a CONFIG.SYS menu you can do some tweaking that frees up more conventional memory. Now I'll show you how to do a simple CONFIG.SYS menu.

Use the text editor of your choice to open up a file named CONFIG.SYS from the root directory of your bootable hard drive. If one already exists, be sure to preserve any lines it contains (Just use ENTER to push them to the bottom of the screen for now). If you really wanted, you could just copy the text from this web page and paste it into your file. That would be the easy way to do it. Anyway, get the following lines into it:

[MENU]
MENUITEM WIN95, Start windoze 95
MENUITEM DOS, DOS startup
MENUDEFAULT WIN95,5


[TWEAK_BLOCK]
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DOS=UMB,HIGH,NOAUTO
DEVICE=C:\WINDOWS\EMM386.EXE /AUTO /NOEMS /V
DEVICEHIGH=C:\WINDOWS\Ifshlp.sys
FILESHIGH=40
BUFFERSHIGH=30
STACKSHIGH=9,256
FCBSHIGH=4
LASTDRIVEHIGH=K
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
DEVICEHIGH=C:\WINDOWS\COMMAND\ANSI.SYS


[DOS]
INCLUDE TWEAK_BLOCK

[WIN95]
INCLUDE TWEAK_BLOCK

This a somewhat involved CONFIG.SYS file (More so for the inexperienced), but it gives you a good idea of how things work. Remember what I said earlier, "...As long as you haven't ever added the line "DOS=NOAUTO" to your AUTOEXEC.BAT file you can just type "WIN" at a DOS prompt and windoze 95 will startup like a charm..."? By default DOS 7 loads the Himem.sys, Ifshlp.sys, Dblbuff.sys, and Setver.exe device drivers if they are not listed in your CONFIG.SYS file. The default setting, "DOS=AUTO", automatically loads these device drivers (Even if the line is NOT in your CONFIG.SYS file!) The AUTO setting also uses the BUFFERSHIGH, FILESHIGH, FCBSHIGH, LASTDRIVEHIGH, and STACKSHIGH commands, whether the HIGH form of the command was used or not. If you specify the NOAUTO parameter, you must load these device drivers and explicitly use the "DEVICEHIGH" form of the above commands in order to load them into upper memory. Unless you know for sure that you are using SETVER.EXE and DBLBUFf.SYS you can just not load them. As for the rest of the CONFIG.SYS commands, specifying your own values seems to wrestle more conventional memory free. For those of you that had lines in your CONFIG.SYS file before we started, here is what to do with them. If any of them start with REM just leave them where they are. The REM makes DOS ignore them anyway. Otherwise put them at the end of the "[TWEAK_BLOCK]" or have a "[COMMON]" tag at the bottom of your file and have those lines below it.

Now, in order to have the default timeout period actually start windoze, you need to have an AUTOEXEC.BAT file similar to the following one: (You can just use this one if you like)

@ECHO OFF
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;
GOTO %CONFIG%
GOTO END

:DOS
GOTO END

:WIN95
WIN
GOTO END

:END

This works because when your config.sys file runs it sets the environment variable %CONFIG% to the value of the choice you made. If you choose to boot to DOS only the DOS block will be run. Then it jumps down to the end of the file and ends. With the windows option it starts 'WIN' which starts up windows. You can customise each section differently as you see fit. You would also probably want to install cdrom and mouse drivers in the DOS section.

If you want to know more about how to use config.sys menu's and autoexec.bat menus check out my CONFIG.SYS and AUTOEXEC.BAT pages. I fully explain every command used in this guide on those pages.

Now, some ideas. I have a pretty nifty config.sys menu setup. I have several DOS setups available. (No surprize there! :-) I can boot with EMS or Extended memory available, and I also have a very bare quick bootup option. Here it is:

[MENU]
MENUITEM WIN98, Start Windows 98 Second Edition
SUBMENU DOS, DOS startup menu
MENUDEFAULT WIN98,5

[BASIC]
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DOS=UMB,HIGH,NOAUTO
DEVICE=C:\WINDOWS\EMM386.EXE /AUTO /NOEMS /V
DEVICEHIGH=C:\WINDOWS\Ifshlp.sys
;DEVICEHIGH=C:\WINDOWS\Dblbuff.sys
FILESHIGH=40
BUFFERSHIGH=30
STACKSHIGH=9,256
FCBSHIGH=4
LASTDRIVEHIGH=K
DEVICEHIGH=C:\progra~1\CDR\VIDE-CDD.SYS /D:MSCD001 /P:1F0,14 /P:170,15 /P:1E8,12 /P:168,10
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
DEVICEHIGH=C:\WINDOWS\COMMAND\ANSI.SYS

[DOS]
MENUITEM DOS_NOEMS, Start DOS with NO EMS support
MENUITEM DOS_EMS, Start DOS with EMS support
MENUITEM DOS_BARE, Bare bonez DOS bootup
SUBMENU MENU, Return to the main menu

[DOS_NOEMS]
INCLUDE BASIC

[DOS_EMS]
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DOS=UMB,HIGH,NOAUTO
DEVICE=C:\WINDOWS\EMM386.EXE /AUTO /V
DEVICEHIGH=C:\WINDOWS\Ifshlp.sys
;DEVICEHIGH=C:\WINDOWS\Dblbuff.sys
FILESHIGH=40
BUFFERSHIGH=30
STACKSHIGH=9,256
FCBSHIGH=4
LASTDRIVEHIGH=K
DEVICEHIGH=C:\progra~1\CDR\VIDE-CDD.SYS /D:MSCD001 /P:1F0,14 /P:170,15 /P:1E8,12 /P:168,10
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
DEVICEHIGH=C:\WINDOWS\COMMAND\ANSI.SYS

[DOS_BARE]

[WIN98]
INCLUDE BASIC
That's pretty much all there is to dual booting with windoze 9x.
This web page is copyrighted by Nathan Heald. Reproduction is allowed as long as this message is not removed or modified in any way. Frames site  No-frames site. How to print pages off of this site. The official URL of DOS HeadQuarters is http://dos.rsvs.net