11

Starting from Windows 98, Microsoft RAMDrive was introduced into Emergency Boot Disks (EBDs). A:\README.TXT contains the following explanation:

Without creating the RAMdrive, we would not have enough space on a single 1.44 meg floppy disk to contain all the diagnostic tools as well as the CD-ROM drivers.

But that is simply not the case. An Win98 EBD has 1,232KiB of files on it, up from 95 EBD's 1,024KiB. There is ~200K of free space. Meanwhile, EBD.CAB only reduces the size of containing files from 389K to 268K. (That bad ratio is because the SCANDISK utility in Win98 is already compressed.) In WinME, an EBD has 1,068K used (~350K free) and the EBD.CAB reduces ~220K of disk usage. In both Win98 and WinME, the 1.44M floppy is okay even without EBD.CAB.

Was Microsoft trying to reserve some space for the user to add custom utilities? If so, you can hardly explain why they didn't use some more obvious space-saving techniques, such as ripping the boot logo (never shown when booting from floppy) from IO.SYS (saves ~50KB), or simply using the RAMDrive to a greater extent (move everything except the DOS kernel and CD-ROM drivers into EBD.CAB).

Seems that the introduction of EBD.CAB/RAMDrive does no good except allowing the user to remove the floppy after booting into the A:\ prompt.

Any thoughts?


Update: Not surprisingly, there are modified versions of EBD that don't use RAMDrive (links mostly broken - only DOS 6.0 and Win95A/B still downloadable). Those custom images are probably English-only, with no support of other locales.

5
  • well, allowing the user to remove the floppy after boot is hugely valuable if your reason for booting the floppy is to add some missing file or other, or run something.
    – camelccc
    Commented Oct 12, 2022 at 12:28
  • "Allowing the user to remove the floppy" means that the floppy drive is available, should it be needed e.g. for other software, drivers, etc.
    – dave
    Commented Oct 12, 2022 at 12:29
  • Intriguingly, the FAT32 EBD doesn’t use EBD.CAB or a RAM drive. Commented Oct 12, 2022 at 13:51
  • @StephenKitt ‘FAT32 EBD’? Commented Oct 12, 2022 at 13:52
  • 1
    @user3840170 on a Windows 98 SE CD-ROM, run TOOLS\MTSUTIL\FAT32EBD\FAT32EBD.EXE. Commented Oct 12, 2022 at 13:55

1 Answer 1

12

There are also the locale support files.

Non-US versions of Windows 9x provide support for non-English locales not only in the GUI environment, but also in DOS mode. For the latter, they need support files containing uppercase/lowercase mappings, screen fonts and keyboard layouts for DOS code pages other than 437. These are necessary in order to keep files with names containing non-ASCII characters accessible, and so that translated messages (which as of MS-DOS 7.x/8.x, included error messages from the DOS kernel itself) display correctly. Those concerns remain valid even when booting from an emergency floppy; as such, locale support files have been included on EBD floppies of all of Windows 95, 98 and Millennium.

It is those locale files that can take up that space what would otherwise be free for the taking. In Windows 95 they did not pose much of a problem yet, but once Windows 98 added CD-ROM drivers onto the boot floppy, saving space became much more of a priority. The basic set of files on the Windows 98 EBD floppy, installed regardless of locale settings, fits in around 960 KiB, leaving 244.5 KiB free. Add to that DISPLAY.SYS (~17 KiB), COUNTRY.SYS (~30.5 KiB), EGA2.CPI (~57.5 KiB), MODE.COM (~29 KiB), KEYBOARD.SYS (~34 KiB) and KEYB.COM (~19.5 KiB), and you are left with barely 57 KiB of free space. Suddenly shaving ~110 KiB off a ~380 KiB archive doesn’t seem like such a bad deal.0

As for why did they not go all in and put everything in the EBD.CAB file: here the answer is going to turn considerably more speculative. Nevertheless, there are some things that can be said with relative certainty.

Technical constraints certainly had a role. No file referenced from CONFIG.SYS could be stored in the compressed archive: this includes CD-ROM drivers, COUNTRY.SYS, the XMS driver HIMEM.SYS, the display driver DISPLAY.SYS, and of course the RAM disk driver RAMDRIVE.SYS. And obviously, the kernel in IO.SYS and the decompressor EXTRACT.EXE also had to be stored directly. Because loading fonts and keyboard layouts (MODE.COM and KEYB.COM) has been implemented via CONFIG.SYS as well, with the INSTALL= declaration, those programs and their inputs (the CPI font file and the keyboard layout file) could also not be compressed. This is also made impossible by the fact that the EBD floppy creator can only assemble the disk out of pre-made files, and otherwise contains no compression capability of its own, while the choice of locale files is made dynamically, from the contents of the Registry key HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\EBD.

But another probable reason is that it was a deliberate design choice to leave as many files uncompressed as feasible. Microsoft apparently wanted the emergency boot floppy to remain as usable as possible even when a RAM disk could not be successfully created and filled with utilities; they have certainly accounted for the possibility that RAM disk creation could fail, as evidenced by an error message found in SETRAMD.BAT:

:no_ramdrive
echo The Windows 98 startup disk could not create a temporary drive for the 
echo diagnostic tools. This may be because this computer has less than the  
echo minimum required extended memory.  
echo.

After all, when you are reaching for an emergency boot floppy, it is already evident something has gone wrong. There is a natural tendency to want to be as resilient as possible against further failures. Maybe your memory is too small or faulty, which one should hope HIMEM.SYS to detect. The floppy itself could also become corrupted, which also disincentivises putting too much into the compressed archive: corruption in an uncompressed file will only damage that file, while corruption in the middle of a compressed archive could damage all files within.

Lastly, with respect to removing the logo from IO.SYS as a possible alternative space-saving measure they could have pursued: this was possible, but it is not clear it would actually pay off. Having the same version of IO.SYS simplifies certain things in some places, namely the disk-preparation utilities FORMAT.COM and SYS.COM. These utilities need access to a version of IO.SYS file to put on the target volume in order to make it bootable. If there were different versions of the file around, there would be the risk that the utility might pick the wrong one. Eventually, however, IO.SYS was split into different versions in Windows Millennium, though hardly for reasons of space-saving (the logo is intact in the boot floppy version). This necessitated removing the /S option from FORMAT.COM and re-writing SYS.COM completely to extract the IO.SYS file from a CAB file instead of copying it from another drive, leaving those utilities unable to create bootable floppies. Were Windows 98 to have different versions of IO.SYS, it might have needed to do something similar, or perhaps even more complicated.


0 All measurements made with the pan-European English version.

1
  • 1
    Thanks for the insight, especially the part about localization! I have always thought that EBDs are language agnostic before reading your answer. Now I know (finally) what all those extra files aside from IO.SYS and COMMAND.COM on the XP bootdisk are.
    – Fred Qian
    Commented Nov 12, 2022 at 9:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .