Razorback
NewsProjectsGuidesResourcesContact
 Guide Index Quick Links


Create an MS-DOS Installation CD-ROM

Created on March 16, 2023 (Updated on March 16, 2023)

Contents
  1. Extracting and Uncompressing the Setup Files
  2. Preparing the System Configuration
    1. CONFIG.SYS
    2. AUTOEXEC.BAT
  3. Gathering More Software
  4. Creating the Installation Script
  5. Building an ISO File

Stop wasting time skimming through those floppy disks trying to get what you want! With just one compact disc or a network share, you can get MS-DOS and Windows loaded to your computer with far greater ease and speed. It only takes a little bit of extra work upfront, but once you've got it down, you'll save hours upon hours of mundane disk seeking, AND you can get a system configuration better suited to more powerful systems (386DX, 486, P5) upfront!

This guide will assume you'll install MS-DOS to the directory C:\DOS, you're using a color VGA monitor and generic IDE CD-ROM drive, and that you have the MS-DOS 6.22 Plus Enhanced Tools disk images on hand. It's also assumed that you will be using a 386 or faster with at least 4MB of RAM. While this guide will cover creating a bootable CD-ROM image, you may also use a separate boot floppy to run the installation script which will be created here.

Extracting and Uncompressing the Setup Files

Before you do anything, you should extract the entire contents of all the setup disks to a single directory to make it easier to load them to your destination machine. If you rename the disks with a convention like disk1.img, disk2.img, and so on (with disk #4 being your supplemental tools disk), you can do this very easily with a FOR loop at the Windows NT command prompt, assuming you have 7-Zip installed:

FOR /L %i IN (1,1,4) DO 7z x -aos -oC:\DISKS disk%i.img

Replace C:\DISKS with the directory you will be extracting to. -aos tells 7-Zip to not overwrite existing files.

NOTE: This does not work in MS-DOS or Windows 9x, as its own FOR command is not as advanced as the one in Windows NT's command prompt. However, you can execute this instead - assuming you have a version of 7-Zip which works with Windows 9x, anyway:

FOR %i IN (1,2,3,4) DO 7z x -aos -oC:\DISKS disk%i.img

In Bash, you can execute this:

for i in {1..4}; do 7z x -aos -odisks disk$i.img; done

Most of the files are compressed, so in order to make them usable, you need to use the EXPAND utility. The one that comes with Windows NT is NOT the one you want, as it does not support the compression algorithm used by the MS-DOS 6.x setup files. You need the version that comes with MS-DOS.

Download this batch script. Copy it to the directory where you extracted the disk contents to. If you're running MS-DOS, Windows 9x, or Windows NT with NTVDM equipped, the next part should be easy. Execute the batch script with an argument pointing to a new, empty directory where you want the files to exist in an uncompressed form, replacing C:\DOS with your desired destination:

DOSUNCMP C:\DOS

Assuming C:\DOS is already being used for something, you should use a different directory name. You can move the contents of that directory over to another directory labeled DOS that will serve as the template for the CD-ROM to build.

If you are running 64-bit Windows NT or some other operating system, you won't be able to execute the MS-DOS EXPAND utility as easily, but don't fret, for you can use DOSBox for the job. Copy the directory containing your extracted DOS files to where DOSBox will mount the C: drive, create a new empty directory somewhere in there, and run the script from there. To speed up the uncompression process, hold <ALT> + <F12>. You may also need to hold the Super (Windows Logo) key in tandem with these if you're running Linux.

Uncompressing these files upfront is technically not required, as the installation script we'll create can call the aforementioned batch script to perform this task on the target machine itself. However, leaving the files uncompressed saves only a little over 2MB, which is minuscule for a CD-ROM, and performing the uncompression on a 386 computer can introduce some possibly undesired overhead as a result.

Preparing the System Configuration

The traditional MS-DOS installer only loads a very miniscule system configuration which does not take full advantage of faster systems. It would be better to create a new CONFIG.SYS and AUTOEXEC.BAT ourselves.

CONFIG.SYS

DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB
FILES=40
BUFFERS=30
STACKS=9,256

What this will do, essentially, is set the handle limits higher than the default and load a couple of memory drivers with settings for maximizing conventional memory. This is fine for systems without CD-ROM drives, but you may more than likely want to load a CD-ROM driver at the bottom of the file. The following line loads a generic IDE CD-ROM driver into high memory:

DEVICEHIGH=C:\DOS\OAKCDROM.SYS /D:MSCD0001

Don't forget to copy the CD-ROM driver you supply over to another directory, such as the DOS directory for your CD-ROM template. You can obtain OAKCDROM.SYS here.

AUTOEXEC.BAT

C:\DOS\SMARTDRV.EXE
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
C:\DOS\DOSKEY.COM

This file is a batch script in itself; any commands listed here will be automatically executed in order when you boot into MS-DOS. It still remains pretty basic, but there are a couple of things to note here: one, I removed the /X switch normally assigned to SMARTDRV.EXE by Setup to enable write caching. This will drastically increase write performance and should help to reduce strain on a hard disk to some degree, but you have to remember this: always reboot with <CTRL> + <ALT> + <DEL> so SMARTDRV can flush occupied buffers before rebooting, and if you are going to power off the system, type SMARTDRV /C first.

If your system will be using a CD-ROM drive (usually the case, but may not be if you're installing from a network), load this TSR program into high memory to make it accessible. This should load the device you specified in CONFIG.SYS.

LH C:\DOS\MSCDEX.EXE /D:MSCD0001

Gathering More Software

It's likely that you'll want a few extra programs loaded with every installation. While you can put these in a separate directory to more easily distinguish them, you can just pop them in the same DOS directory on the installation CD. The installation script will copy these to the same C:\DOS directory afterwards.

CuteMouse is an excellent mouse driver which I always favor over anything else, as it only occupies under 3.5KB of RAM. You could load another mouse driver like the one from Microsoft if you want. The CTMOUSE.EXE program can be added to AUTOEXEC.BAT without any extra parameters.

Blacklight's shutdown utility is particularly useful for ATX systems and APM-capable laptops, as typing SHUTDOWN S takes care of flushing the disk write buffer for you and powers off the system afterwards. Even if you're using an AT power supply, the program could also be useful for rebooting the system, particularly in batch scripts such as at the end of the installation script.

You may want to load other drivers and programs on a per-machine basis. These can reside on the CD-ROM or other media. Many users will want to have Windows 3.1x conveniently available on a large medium without the need for swapping multiple floppy disks. Using the method described at Extracting and Uncompressing the Setup Files, you can extract a set of Windows floppy images in the same way. Uncompressing the setup files for Windows using SETUP.EXE /A is not as practical as it is for MS-DOS, but it can be done. I would just leave them as is. Put the extracted files in a directory that's not labeled WINDOWS to avoid confusion. No additional tweaks are required.

Don't forget about sound drivers if you plan to use a sound card. When burning a CD, it's best practice to add as many sound drivers as you can in their own directories upfront. Same goes with SCSI drivers, should you anticipate using a SCSI CD-ROM drive in any machines.

Creating the Installation Script

Let's make sure we're on the right track here. Ideally, we should structure the CD-ROM image in largely the same way as typical MS-DOS installation on a hard disk. Most of your MS-DOS setup files should be located in the DOS directory. WINA20.386 should be moved from this directory to the root of the CD-ROM, and the CONFIG.SYS and AUTOEXEC.BAT files you created should be placed at this root as well.

You should now create a new batch script residing at the base directory where you'll build the CD-ROM. We'll keep it simple, because it really is. The file should be called SETUP.BAT. It is assumed that the C: drive is already formatted.

@ECHO OFF
IF NOT EXIST SETUP.BAT GOTO ERROR
ECHO Ready to install MS-DOS 6.22, press CTRL-C to abort.
PAUSE
COPY CONFIG.SYS C:\
COPY AUTOEXEC.BAT C:\
COPY WINA20.386 C:\
MD C:\DOS
COPY DOS\*.* C:\DOS
A:
SYS.COM C:
ECHO Installation is complete. Please restart your computer.
GOTO END

:ERROR
ECHO You must change to the same directory as the setup script!

:END

This script requires the user to change to the directory where the setup script is located, which should be in the root of the CD-ROM. It's as simple as it looks; it just creates a DOS directory on the C: drive and copies a bunch of files over to the hard disk.

Then, it relies on the A: drive, which could be an emulated floppy image on your CD or a separate floppy disk, to run SYS.COM. This program copies some integral system files over to the hard disk and makes it boot to MS-DOS. It's very important that the boot floppy's MS-DOS version matches that of the distribution you extracted.

That's it!

Building an ISO File

To make installations from a CD-ROM extra convenient, you should create or grab an MS-DOS boot floppy image; I host an MS-DOS 6.22 boot floppy that's more faithful to the original distribution while also including an IDE CD-ROM driver, OAKCDROM.SYS. This can be used to make the CD-ROM bootable.

In Windows, I recommend using ImgBurn, as it provides a very straightforward GUI-based route to creating ISO files. Just make sure you get a pure copy of it.

After selecting the mode "Create image file from files/folders", drag all the contents of the directory being used as the template for the CD-ROM. Go to the Advanced tab. In the ISO9660 tab, ensure that the Folder/File Name Length option is set to Level 1, as this is the 8.3 character filename format MS-DOS expects. You do not need Joilet or UDF here.

Go to the Bootable Disc tab from here. Tick the checkbox Make Image Bootable, set the emulation type to Floppy Disk (1.44 MB), and select the boot floppy image your ISO image is to load. Then, specify a destination file, and create the ISO image.

Using mkisofs (part of the cdrtools package) is even faster. You can run a command like this after changing to the directory containing the files for your CD-ROM:

mkisofs -o ../dos622.iso -iso-level 1 -b dos622.img .

This creates an ISO image in the directory above your CD-ROM directory. In this case, it is required that the floppy boot image resides in the root of the CD-ROM. After creating the image, you should test it in a PC emulator or virtual machine.

If all goes well, you should now have a highly versatile means of quickly installing MS-DOS to your computers! See what you can do to ease the burdens of disk swapping...


Comments

Kugee (real) - April 27, 2023 at 08:07 PM

I've run into that sometimes as well! I haven't figured out the cause, but if I run into it again I'll try to get that worked out if I remember.

Doomer Cool - April 27, 2023 at 05:15 PM

Thank you very much for the guide. Do you know why sometimes I receive this error in SMARTDRV, Insuficient Memory?

flatrute - March 16, 2023 at 09:47 PM

Lets see if pulling this off on 86box machines is possible...

3 comments on this page

Sort: Ascending | Descending

Leave a Comment

Name: (required)

Website: (optional)

Maximum comment length is 1000 characters.
First time? Read the guidelines

SORRY NOT GONNA SHOW THIS IN TEXT BROWSER
Enter the text shown in the image: