Yes, just barely.
The basic reason why phantom floppy drives appear in Windows 9x comes down to a convergence of three factors:
- Windows 9x, though it has its own native, protected-mode disk drivers, can still fall back to using DOS drivers if no native driver successfully reclaims responsibility for a given disk drive. Therefore, if MS-DOS detects a floppy drive and allocates a drive letter for it, but no native floppy drivers successfully load later, Windows will simply continue using DOS drivers to access that drive. Disabling this behaviour is nigh-impossible, and the end-result would probably not be recognisable as Windows 9x any more; it’s pretty much inherent to the operating system’s design.
- MS-DOS 7.x and earlier will allocate a drive letter for a floppy drive even if one is not reported as present by the BIOS firmware. This has been fixed in MS-DOS 8.0, upon which Windows Millennium is based, with some caveats (some of the less-official versions of the kernel stashed away in CAB files on the installation CD do not have the fix applied). However…
- BIOS firmware does not always report the absence of a floppy drive consistently, even when all configuration options to that effect (if any are available) are set correctly; e.g. some may report presence of floppy drives in interrupt 0x11, but zero floppy drives from interrupt 0x13 service 8. Some require having an additional ‘Report no FDD to Win 95’ option enabled; others don’t offer the option to disable the floppy drive at all, especially laptops, presumably in order for a floppy drive later hot-plugged into an extension bay to be available.
As such, the goal is to disable the DOS floppy driver. To that end, you should be able to assemble my NOFDD program on your machine and run it from DOS mode to disable the floppy drive. I am not sure if this counts as an ‘additional tool’; although it is not a binary that comes with the stock system, it’s also not something you have to download or copy from somewhere else, but a program you can generate yourself entirely on your machine, using only utilities coming with a vanilla DOS/Windows installation.
All that remains is to set up the program to run at boot-up. Under MS-DOS 5.0 up to version 7.x, this can be done by simply adding an INSTALL=
directive to CONFIG.SYS. However, the vestigial MS-DOS 8.0 kernel used in a standard installation of Windows Millennium does not support custom DOS drivers at all. As such, applying this solution requires hacking the system to re-enable that support, and this is where most of the difficulty lies.
Though patching the system in the usual way usually involves external tools, for the most part that can be side-stepped by extracting versions of IO.SYS
and COMMAND.COM
found inside the CAB file TOOLS\NETTOOLS\FAC\LTOOLS.DTA
found on the Windows Millennium installation CD. Extracting those files can be done with Microsoft’s own EXTRACT.EXE
, which also comes with Windows itself. There is also REGENV32.EXE
to take care of, but you can patch it using MS-DOS Editor’s binary file mode: create a backup copy of C:\WINDOWS\SYSTEM\REGENV32.EXE
, then in a command prompt launch EDIT /78 C:\WINDOWS\SYSTEM\REGENV32.EXE
and replace occurrences of _:\AUTOEXEC.BAT
and _:\CONFIG.SYS
with other file paths of exactly the same length.
I suppose writing a VxD driver would be a cleaner solution for that particular version of Windows, but that would be more involved, and definitely violate your ‘no additional tools’ requirement.
0 This has the side effect of changing the bootup message to say ‘Now preparing to start your new computer...’, but you can probably live with that. The standard route has a similar side effect anyway.