Windows 95 Multiboot Assistance


Preface: READ THIS!
Apogee & 3D Realms take no responsibility for the information presented on this page. We cannot and will not help with the setup of this information, it is simply being provided as a convenience. Likewise, if you corrupt your system attempting what is suggested on this page, we cannot help. That's not to say this information is wrong. Followed correctly, it will work, it's just that we cannot help if problems occur.

logo95.gif (9335 bytes)Background

Microsoft's Windows95 while a great product, has caused a lot of confusion in regards to MS-DOS games. One of the problems is that Windows95 tends to hide the fact that you can make it behave just like Windows 3.1 did. If you were a user of Windows 3.1, remember how you had to type WIN to start Windows, or include it in your autoexec.bat file? Well, guess what? Windows95 does the same thing. It's just that MS-DOS 7.0 will automatically do this for you, whether you have the WIN command in your autoexec.bat file or not.

Microsoft has put a lot of effort into making people believe that DOS doesn't have anything to do with Windows95, and this isn't the case. You can still do multi-boots with Windows95 the same way you did with Windows 3.x, but you need to do a little work beforehand. This page will give you the basic information you need to get this going. If you use this, you might find your life with Windows95 will be a bit easier when relating to MS-DOS programs.

What is a Multi-Boot Config?

A multi-boot will allow you to have what it seems to suggest; multiple configurations on your machine. For example, you could have one that loads DOS, one that loads Windows95, one that "boots clean", and another that loads one special driver that you rarely use that takes up lots of memory. This is one of MS-DOS's best additions, and it's all but been buried by Microsoft for Windows95. It still works the same as MS-DOS 6.x, but they don't mention it anywhere in their documentation for Windows95 (or at least I couldn't find it).

When it is correctly used, a Multi-boot screen will come up before the Windows95 Logo screen, and will look something like this (actual text will vary slightly depending on how you set it up):

Microsoft Windows95 Startup Menu
================================

1. DOS
2. Windows

Enter a Choice: 1

F5=Safe mode Shift+F5=Command prompt Shift+F8=Step By Step Conformation [N
]

From this point, you could pick one of the two numbered options, and the computer would go off and do that. With a step later in this document, you'll be able to tell your computer "Hey! I don't want to go into the GUI of Win95, I want to be in DOS!". Windows95 runs best when it's using 32 bit drivers, and DOS based drivers that load in front of Windows tend to not get along well with Windows95, so your best bet is to have separate options for DOS & Windows. That way Windows, when run, will run smoothly, and you can load your DOS based drivers in the DOS option, and they won't interfere with Windows95.

How to set up a Multi-Boot Config

NOTE: This has not been tested on a FAT32 machine. If you have one of these, proceed at your own risk.

Setting up a multi boot config requires that you modify your config.sys and autoexec.bat files. On some Windows95 configurations, they don't exist. If that's the case, then create them. To create the multi-boot example listed above, this is what you would need to put in your config.sys and autoexec.bat files:


Setting up a multi boot config requires that you modify your config.sys and autoexec.bat files. On some Windows95 configurations, they don't exist. If that's the case, then create them. To create the multi-boot example listed above, this is what you would need to put in your config.sys and autoexec.bat files:


CONFIG.SYS EXAMPLE:
multi1.jpg (13999 bytes)


[menu]
menuitem=dos, DOS
menuitem=windows, Windows
menudefault=dos

[dos]
-- insert dos based drivers/lines here --

[windows]
-- insert Win95 based drivers/lines here --

In the above example, you see several new commands and ideas you've probably never seen before in a config.sys file if you've never done a multi-boot setup. Some of them are:

  • [menu] is a command that groups several of the multi-boot commands together.
  • menuitem is a command that says "This will be an option in my multi-boot".
    • There are two parts to the menuitem command. The first part is what your computer calls the specific groupings of commands. In our example above, you see we use dos. We could have called that whatever we want. It could have been "fnord1560". It doesn't matter what you call the first part, but it's recommended you use something descriptive.
    • The second part to menuitem is what is displayed on screen for this item. Again, it can be whatever you want it to be, but it's recommended you use something descriptive. The second part can be the same as the first part, but it does not have to.
  • menudefault is how config.sys is told which of the options is to be the default one. The word put here must match the first part of the menuitem as shown above. In our example above, we use the dos part of the menuitem list, not the MS-DOS one. Also, there is an optional menudefault parameter that you can use. If we had used "menudefault=dos,5", our computer would have counted down from 5 to 0 and then acted as if you had pressed enter on your own. The time parameter is optional.

For each of the menu items you list in the [menu] portion of config.sys, you must have a corresponding bracketed list of parameters. In our example config.sys above, we have two options, dos & windows (not MS-DOS & Windows95; we must use the first part). There have to be two labels in config.sys named [dos] & [windows]. If this is not setup correctly, anything can happen. Please also note that these are case sensitive.

Inside each of these bracketed labels, you must include all the config.sys related lines for your computer. In other words, say for example, you have a dos based sound card driver that would need to be loaded in DOS, but not in Windows. You would put this line(s) in the [dos] portion of the config.sys file, but not the [windows] one. This functionality will allow you to have completely different sets of commands for your machine. One that would be optimized for DOS, and one that would be optimized for Windows95. If you've ever tried to load old DOS based drivers in front of Windows95, you know that Windows95 complains about this, and says you should use different ones. This way you can have the best of both worlds!

AUTOEXEC.BAT EXAMPLE:
multi2.jpg (15961 bytes)


@echo off
-- insert your prompt line here --
goto %config%

:dos
-- insert your dos path line here --
-- insert dos based drivers/lines here --
goto end

:windows
-- insert your windows path line here --
-- insert Win95 based drivers/lines here--
win (THIS IS VERY IMPORTANT TO HAVE HERE!)
goto end

:end

In this autoexec.bat example, we also give some new ideas that you may not have seen before. Some of them are:

@echo off will tell your machine not to display anything from the autoexec.bat file as it is being executed. If this is left off, it will not change the functionality of anything, but it will make for a much uglier display (if left off) when you are booting.

prompt $p$g is a standard MS-DOS based prompt. If you don't have this here, you won't know what directory you are in when you are in dos.

goto %CONFIG% is a VERY important command to have, and is necessary for all of this to work. What happens here is that the first part of the menuitem from the config.sys line that you select becomes the dos environment variable CONFIG. When you get to this line of the autoexec.bat file, command execution is passed to the label in question.

:dos is called a "label". It is similar to the [dos] from config.sys. In fact, for each [] you have in config.sys, you must have a : in autoexec.bat. The case is very important, so each :dos label you have in autoexec.bat must match EXACTLY the corresponding [dos] in config.sys.

goto end is required as the last line of each label. If this is left off, it will cause problems, because the autoexec.bat file won't know that you don't want to run any more, and will start running other labels if they exist!

win is VERY IMPORTANT to have in whichever label you are using to actually run the GUI portion of Windows95. If this is left off, the GUI will never be run. In whatever label you use to run Win95, this needs to be the next to last line (with goto end being the last one).

:end is necessary to have after all of your other labels. This way when the goto end command is issued in each of the labels, there is somewhere to go to.

In these examples, we are not giving specific lines that would go in these files, because that information varies for every computer. You will need to supply the specific lines for your computer and your hardware/software. If you feel uneasy doing this, then we recommend you don't. You can quite easily cause problems if you don't understand how to do this.

VERY IMPORTANT STEP!!!

As explained above, the win in the autoexec.bat is what will actually load Windows95 once all of this is set up. However... In order for any of this to work, you must make an alteration to one file in the root directory of your boot drive. This file is MSDOS.SYS. In MS-DOS 6, this file was a binary file, and was not editable. In MS-DOS 7.0 (Win95), it is an ASCII file. There are two ways to edit this file, a hard way and an easy way.

The Hard Way

WARNING: The hard way can be extremely dangerous, so if you don't know what you are doing, or are uncomfortable, please don't use the hard way, use the easy way. :)

The hard way to edit your msdos.sys file would be to go into DOS, change the attributes of the file so that it is not a Hidden, System, Read only file. You can't edit the file w/o doing that. Once you change these attributes, you can load the file into an ASCII editor. You will be looking for a line of text that says BootGUI=1. You'll need to change that 1 to a 0, so the line will say BootGUI=0. Once you've done this, save the file back to your hard drive, and make sure to put the file attributes back to what they were or your system may not work right. Reboot, and you'll be set.

The Easy Way

tweak2.jpg (17026 bytes)Microsoft has published a utility that makes doing this EXTREMELY EASY. The program is called "TweakUI", and is part of their PowerToys package. TweakUI can be downloaded here. However, if you'd like to go to the PowerToys Page, and read more about it first, you can click here.

Once you have obtained TweakUI, you will need to install it. After installation, it will show up as an option in your Control Panel. Start TweakUI, and underneath the "boot" option, you will see a line that says "Start GUI Automatically". Make sure this is turned off. By clicking this off, you're telling Windows95 "Don't automatically run the GUI. Wait for me to tell you to do it". Save these options, and then you'll be set.

Summary

You've now tweaked your system (hence the name Tweak UI), so that you'll have to type WIN before the GUI portion of Windows95 comes up. If you set up the multi-boot as explained above, in combination with the TweakUI information, you will have much more control over your system. This will allow you to have a separate configuration for your DOS based programs and games that run better from DOS, and a Windows95 configuration that runs your Windows95 programs.

If you do set this up, and run in DOS mode, please be aware that a lot of Windows95 hardware is "Plug N Play". While a convenient feature for Windows, it's not very convenient for MS-DOS. For your Plug N Play devices, you will have to come up with a way to initialize these devices in DOS. Windows95 itself does the initializing, and when go do what is explained here, Windows95 is not actually loaded, so these devices are not initialized, and cannot be seen in DOS. You will have to consult your device manuals, or contact the manufacturer for info/help in initializing these things in DOS. When you do get this information, make sure you put it in the dos config as shown above, not in the Windows95 one.

We hope that this information has been useful to you. It should make working with some of our DOS games (Duke Nukem 3D, Rise of the Triad, Shadow Warrior) much easier.

This page written by Joseph M. Siegler of Apogee Software, Ltd. - Updated January 20, 1998
Windows, Windows95, and the Windows95 Logo are Copyright. microsoft Corporation.
All other copyrights and trademarks are the property of their respective owners.