DOS floppy images
Creating a bootable DOS floppy image can be an involved process. Things to look out for
- Memory managers (allow you to go beyond the 640KB limit imposed by DOS)
- CDROM drivers (if you need access to a CDROM/DVD drive from DOS)
- Network drivers (if you need network access). The choice of the specific network driver depends on which network cards you want to support.
- Additional utilities (FDISK, FORMAT, GHOST...)
You might not be able to fit all these into a 1.44MB floppy disk. Dont worry! Once you get what you can into the 1.44MB image, we can increase the image size later.
Start with an image from BootDisk.com. Remember, if the disk you download is a Windows Boot Disk, you may be required to already have a Windows License. If you have a Windows machine, you can use WinImage to edit the image. If you have a Linux machine, you can use the mtools package, or mount the file via a loop back device. AFAIK WinImage cannot handle custom geometries, so the initial floppy image must be 1.44MB or 2.88MB. We can enlarge it later.
Getting access to high/extended memory
By default, DOS cannot use memory above 640KB. One solution is to add emm386.exe to your floppy image and add the line device=emm386.exe to your CONFIG.SYS. HIMEM.SYS is another option. The boot disk you download may already come with these.
If you need access to your CDROM/DVD drive from DOS, you need to make sure that you have CDROM drivers in your image. Again, this may already be included in the disk image you downloaded. If it's not, download a few images from BootDisk.com which include CDROM drivers and see how they work. Typically, it amounts to adding a couple of files to your floppy image (MSCDEX.EXE, CDROM.SYS?) and loading them via appropriate commands in your CONFIG.SYS and AUTOEXEC.BAT
Typically one does not know which network card is present in the machine, but we can narrow it down to a few cards we need to support.
Start with a DOS boot floppy disk with network support for one specific network card. You can create one using the "Ghost Boot Wizard" utility which is a part of the Norton Ghost software from Symantec.
Now look at the floppy disk you have just created. You will see that CONFIG.SYS does not load any network drivers at all (In case of PCDOS, ghost boot wizard loads network drivers in CONFIG.SYS). All the network setup happens in AUTOEXEC.BAT via net initialize command. This, in turn, looks at SYSTEM.INI and PROTOCOL.INI in A:\NET where A: is the floppy drive. PROTOCOL.INI has the following form
[network.setup] .... [card.name] drivername=<name of driver>$ ...
During the network initialization, the driver A:\NET\<name of driver>.DOS is loaded.
To support multiple network cards, we need to run our own netsetup script at the top of AUTOEXEC.BAT which finds which network adapter is there in the machine and sets up PROTOCOL.INI and the driver correctly. All network adapters have a unique vendor id and device id. The PCISCAN utility uses a reference file (which you create) and sets the environment variable %PCI0% to a value specified in the reference file.
The netsetup script just runs the PCISCAN utility and modifies the template PROTOCOL.INI to have the adequate driver name. Modifying can be done by using a Search and Replace utility like GSAR. Note that only earlier versions run on DOS.