knowplace.org

DOS Multi-config Booting Howto

Well, I decided to add this section after some getting some responses from the Optimizing Your DOS Memory Page. Basically, my suggestions on the memory optimizing page were meant to give you a single boot configuration that you can basically do everything with, including playing games (without having to reboot). However if you want everything to run optimally you should use a multiple memory configurations such as only loading the 16-bit DOS CD-ROM drivers in one particular configuration.

For those who don't know what multi-config booting is, it is an option (built into DOS) that allows you to have choices during boot-up to boot your system with different options without having to rewrite your CONFIG.SYS and AUTOEXEC.BAT every time. Therefore, you can have a configuration for general all purpose (without DOS CD-ROM and mouse support); one for gaming (with DOS CD-ROM and mouse support--probably for a game that needs mouse and CD-ROM in DOS), or any other configuration that fits your needs. I am not going to include an example on how to make a clean boot; you can hit F5 (or F8 and chose "Safe mode command prompt" if you're using Win95) during bootup for that. How you'll chose to boot your system is up to you. This is just an example (with some explanation of how the various statements function within the CONFIG.SYS and AUTOEXEC.BAT files), and NOT intended as an replacement for your CONFIG.SYS and AUTOEXEC.BAT files. Remember, before you begin, it is always a good idea to make backups of those files.

Here are the ACTUAL config files on my machine!

Here's an example of what my CONFIG.SYS would look like if I wanted to achieve the above configurations. Note: comments written with parentheses are my explanations, DO NOT type them into your configuration files.

  • [menu]
    (this tells your CONFIG.SYS to bring up a menu at boot-up)
  • menucolor=7,0
    (this picks the default display colors for the menu. First number is for the display font, second is for the background. In this case it is 7 for white, and 0 for black. For the color table, goto the DOS prompt and type "help menucolor.")
  • menuitem=general,All Purpose w/o DOS CD-ROM Support
    (this tells the menu to display an option "All Purpose w/o DOS CD-ROM Support." The first part "general" is the name or label of the option for your computer. I could have chosen "base," "all," "dos," or anything else I felt like--except for "common;" It is reserved for your CONFIG.SYS--I just happened to have picked "general.")
  • menuitem=games,Games w/ DOS CD-ROM Support
    (Basically the same as above, except the menu displays "Games w/ DOS CD-ROM Support," and the label of the option for your computer is "games." Note: I'm only doing this example with two alternate options. If you want to have more than just two choices, you would add other addition "menuitem=xxxxx,xxxxxxx" lines for each configuration you want presented in the boot-up menu.)
  • menudefault=general,5
    (This tells the computer to pick "general" as the default choice, and wait five seconds for you to pick something else before booting with the "general" configuration.)
  • [common]
    (This tells your computer to execute all the commands found below this line; they are shared by or common to all your configurations.)
  • break on
    (You don't actually need this. I include it in my CONFIG.SYS so I have the option of escaping from disk operations even while they are happening.)
  • switches /f /w
    (You don't need this either. /f tells your computer to skip the two-second delay after displaying "Starting MS-DOS..." I'm impatient, what can I say? /w tells your computer that you've moved WINA20.386 out of your root directory, which I have.)
  • device=c:\windows\himem.sys
    (I include this here because I want it to be executed under all the different bootup schemes.)
  • device=c:\windows\emm386.exe RAM x=c000-c7ff
    (Same reason as above. RAM tells emm386 to handle all my RAM memory. X=c000-c7ff tells emm386 to exclude this part of the RAM from its management. It is being used by my graphics card/display adaptor.)
  • dos=high,umb
    (I include this here because I want my DOS to be loaded into high and upper memory under all my boot configurations.)
  • files=40
    (Pretty much the same reason. Files=40 means that DOS can open and access 40 files simultaneously. It is usually enough.)
  • devicehigh=c:\vibra16\drv\vibra16.sys /unit=0 /blaster=A:220 I:5 D:1 H:5
  • devicehigh=c:\vibra\drv\ctmmsys.sys
    (both of these lines are for my sound card, which I want supported in all the boot configurations. Note: These really aren't necessary with the Sound Blaster 16 Vibra PnP; Eliminating these statements will free up memory. Your sound will still work-even in DOS- as long as you
    set the environment in your AUTOEXEC.BAT. I don't personally load these.)
  • [general]
    (Everything that occurs below here is supposed to be specific to the "general" configuration. I don't actually have anything here because I'm not loading anything else in the CONFIG.SYS that's specific to the "general" configuration.)
  • [games]
    (Commands occurring below this line belongs to the "games" configuration. This is where I add the lines to support my CD-ROM drive under DOS.)
  • lastdrive=z
    (This tells DOS that I can have up to "Z" as my last drive letter.)
  • devicehigh=c:\CD-ROM\teac_cdi.sys /d:teac_cdi
    (This is my CD-ROM driver. It just happens to be a TEAC. Yours is likely different.)
  • devicehigh=c:\mouse\cloaking.exe
    (This is particular to Logitech Mouseman mice. It allows the driver for the mouse to be loaded in the extended memory leaving only a 1k signature in your base memory. Spiffy.)
  • [common]
    (No, this isn't a typo. It's just the syntax. You could probably put more commands here for common to load, but why not load them all at once at the top?)
Now for the AUTOEXEC.BAT file:
  • @echo off
    (This tells DOS to not display any of the commands that occur below this line, including itself. This is strictly optional.)
  • prompt $p$g
    (Probably isn't necessary, but it formats your DOS prompt to the standard prompt. $p=current drive and path; $g=the greater than character or ">". Other options are available such as time, date, etc. For a list of the options, type "help prompt" at your DOS prompt.)
  • verify on
    (This is a personal thing. You probably won't want to turn this on unless you really want DOS to verify all your disk writes. It means that your disk operations are slower. Personally, it's an added assurance that all my data is written to disk correctly, but disk operations are slower.)
  • path=c:\windows;c:\windows\command;c:\dos;
    (This is to set the default paths for DOS to search whenever you type a command in DOS prompt. It means that if I type CAT, DOS will look in all the specified paths for a program called CAT.)
  • path=%path%c:\batch;c:\vibra16;
    (This is a continuation of the path. The "%path%" allows what occurs after it to be appended to the path specified in the previous line.)
  • set temp=c:\windows\temp
    (This sets my temporary directory to a directory on my C: Drive called \windows\temp. It is where .tmp files and temporary files during installation or god knows whatever else will be stored.)
  • set sound=c:\vibra
  • set blaster= A220 I5 D1 H5 P330 T6
  • set midi=synth:1 map:e
    (These are settings for my sound card. A220 sets the hex address to 220; I5 sets it to IRQ 5; D1 sets the low DMA channel to 1; H5 sets the High DMA channel to 5; P330 sets the hex address to 330 for the midi; T6 sets the card type [shrug] I'm not actually sure what it does exactly.)
  • set msinput=c:\windows\msinput
    (This is for my joystick which just happens to be the Microsoft Sidewinder 3D Pro. I personally think it's the best joystick on the market.)
  • c:\vibra\diagnose /s
    (You guessed it, for the sound card. /s sets the hardware based on the specified blaster environment settings.)
  • c:\vibra\mixerset /p /q
    (More sound settings. /p loads the saved preset settings. /q means quiet mode--no messages during boot-up.)
Note: So far this is pretty much an ordinary AUTOEXEC.BAT file because I want all these things to be included in both of my boot configurations. If I had only wanted to load sound support under the "games" configuration, I would enter them there instead.
  • goto %config%
    (Remember the "general," and the "games" labels that I picked in my CONFIG.SYS? This command will automatically find the label that I chose during the boot-up menu and execute commands that occur below it. Spiffy.)
  • :general
    (This is what is called a label. The ":" preceding the "general" makes this a label that goto can find.)
  • LH c:\windows\command\share.exe /F:5100 /L:500
    (I'm putting this here because share is mostly used by file sharing, networking, or windows. I don't want to load this in my "games" or Games w/ DOS CD-ROM Support configuration if all I want to do with that configuration is to play games in DOS.)
  • goto end
    (Goes and finds the label ":end.")
  • :games
    (Ah, alas. I'm finally adding CD-ROM, and mouse support below this label.)
  • c:\windows\command\mscdex.exe /d:teac_cdi /E /M:16 /L:E
    (This should be familiar to you. The switches I used are: /d:teac_cdi=what I'm calling my CD-ROM drive; /E=use expanded memory; /M:16=use 16 sectors to buffer the data, max is 32; /L:E=assign letter E to my CD-ROM drive-I happen to have two hard drives thus taking up letters C and D. For more help, type "help mscdex" at your DOS prompt.)
  • c:\windows\command\smartdrv.exe /x 2048 0
    (Since I probably will not be running windows in my games configuration, I'm going to enable SMARTDRIVE to cache my hard disk. /x disables write behind caching. 2048 sets the default cache size to 2 megabytes while running DOS. Note: The only reason that I pick 2048 is because I have 48 megs of RAM and I can afford the memory. If you are only running 8 megs, use 256 instead. 0 is the cache size while running windows, which you shouldn't, since this configuration is optimized for game playing. DO NOT use LH to load SMARTDRIVE high. SMARTDRIVE does this by default when it can. Also, make sure this line occurs below MSCDEX, otherwise SMARTDRIVE will not cache your CD-ROM.)
  • c:\mouse\mouse.exe /memsa /mema (This is something peculiar to my Logitech Mouseman mouse. You'll need to read the docs that came with your mouse for the correct settings.)
  • goto end
    (Once more... Same as the first...)
  • :end
    (I don't believe this warrants an explanation.)
Believe it or not. That's it. The next time I reboot, I can boot into two different configurations just simply by choosing from a menu at boot time. It's obvious that I cannot cover every possible boot configuration, but I believe if you read the explanations along side the commands, you should be able to customize one for yourself. As always, if you have any suggestions or comments, you can emailme. 
 
Shane Tzen © 2008