Note: The information below is probably more applicable to Windows 95 and 98 than Millennium in particular; I have discovered the latter actually seems to handle the lack of a floppy drive fine, with sufficiently well-behaved BIOS firmware. More research is needed, but I currently lack the time for it. Nevertheless, I am leaving this answer up in case someone finds it useful.
Yes, just barely.
The basic problem is twofoldreason why phantom floppy drives appear in Windows 9x comes down to a convergence of three factors:
- MS-DOS, and therefore versions of Windows based on it, will assume the presence of a floppy drive even if one is not reported as present by the firmware. This is because DOS was originally written for systems which definitely had at least one floppy drive, but not necessarily any interrupt services for probing drive presence and type (interrupt 0x13 service 0x15 and service 8). Therefore, if the firmware reports there is no floppy drive present, DOS will simply interpret this as the respective firmware services not being reliable and will assume the presence of one 40-track 5¼″ drive. This assumption has not been updated in later versions, since even by the time of Windows 9x floppy-less systems were a relative rarity.
- 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 that DOS claimsletter for a floppy drive even if one is not reported as existingpresent 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 MillenniumDOS/Windows installation. Once it’s created, all
All that remains is to ensure that itset up the program to run before Windows startsat boot-up. Under MS-DOS 5.0 up to version 7.x, for examplethis can be done by putting it insimply adding an INSTALL=
directive in CONFIG.SYS
to CONFIG.
There is a complicationSYS. However, though:the vestigial MS-DOS 8.0 kernel used in a standard installation of Windows Millennium in particular has been designed to make it very hard to rundoes not support custom DOS software before Windows startsdrivers at all. To actually get As such, applying this solution requires hacking the NOFDD program to run at system startup, you will have to re-enable that support, and this is where most of the difficulty lies.
Though hackpatching the system to re-enable CONFIG.SYS
and AUTOEXEC.BAT
processingin the usual way. 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.