5

I have an old PC from the 90s. When I boot DOS from floppy, everything works fine. I have just installed Windows 98 SE and for some reason, the 3.5 inch floppy drive is showing as 5.25 inch drive. It also freezes when I try to open it.

The computer is in a factory configuration hardware-wise: the original drives, and even the cables are factory-sealed to them. This was not happening with the original installation of Windows 98.

What could be the cause, and ideally, how to fix this?

9
  • 2
    I don't really remember, but is there some BIOS setting for what type of drive you have connected? Apr 4 at 22:02
  • The bios setting is also correctly set to 3.5 inch. More importantly, the previous installation of Windows 98 worked without problem with the same settings.
    – Ondrej
    Apr 4 at 22:11
  • 1. some BIOSes have an option about FDD reporting to windows hidden in advanced or other tab (not the main one) try to play with that if you got it. 2. what FDD you got? 3.5" can be any 720K/1.44M/2.88M/120M they look the same but they not so try to look at the drive sticker and google the markings (if type is not written directly on it)... 3. what driver you got installed for you FDC/FDD in windows? You can manually reinstall it and chose the correct driver if you got the install disk for windows. Is it ISA or PCI ... there where tools for PCI that list all the devices with their IDs
    – Spektre
    Apr 5 at 8:21
  • Those can be used to directly search for correct driver... for ISA you could uses some system info tools for MS-DOS that do the same ... (like old benchmarks or sys analyser ...HWINFO)
    – Spektre
    Apr 5 at 8:25
  • Strangely, after removing the floppy drive and restarting, I stiľ see the floppy drive in explorer. I no longer have it (or any other floppy drive) in device manager though. I do have the drive in ezplorer showing as 5.25 and can now load it, even though it is really 3.5 inch. Ot reads the contents of the 3.5 inch drive but I am not able to format it as one - clicking the format command in explorer brings up the format dialog for 5.25. What now?
    – Ondrej
    Apr 6 at 18:32
6

The question doesn’t really describe the circumstances in enough detail to confidently tell what is actually going on. Despite this, there are still a number of things that can be tried to remedy the problem. Climbing the ladder of abstraction, they are as follows:

  • Check the BIOS. In many BIOSes there is a setting in which the user can specify what kinds of floppy drives are attached to the system. It is next to impossible to give general advice about how to find the relevant setting in the setup program, since it varies depending on the BIOS vendor. However, it should be at least relatively easy to diagnose whether this is in fact the problem.

    Boot your system into ‘Command prompt only’ mode (press F8 during boot and choose that option from the menu). Then launch debug. At the - prompt you will get, run these commands:

    o 70 10
    i 71
    

    This reads off the floppy setting directly from the RTC NVRAM. On a correctly configured system with a single 1440 KiB drive, this should output 40 (30 for a 720 KiB drive, 50 for a 2880 KiB drive). The value 00 indicates no floppy drives. To quit the debug session, use the command q.

    You may attempt to overwrite the BIOS setting yourself from the debug prompt:

    o 70 10
    o 71 40
    

    This will, however, only take effect after a reboot, and that’s if the BIOS does not clear all settings because of a checksum mismatch. For this reason, using the BIOS’s built-in setup program is preferable.

  • Check the drive type detected by DOS. When even DOS drivers have trouble accessing the disk, it may help to override DOS’s own drive type detection. To check whether DOS detects the drive type correctly, again, open a debug session and run this:

    a 100
    mov ax,440d
    mov bl,1       ; ← drive letter number
    mov cx,860
    mov dx,1000
    int 21
    
    f 1000 100f 00
    g 10d
    d 1000 100f
    

    The blank line is important. The value assigned to the BL register is the ordinal number of the drive letter (1=A, 2=B, 3=C, etc). After running the above, you will obtain a dump like this:

    11D0:1000  00 09 00 00 50 00 00 00-02 02 01 00 02 F0 00 80   ....P...........
                  ↑↑
    

    The second byte in the dump corresponds to the floppy drive type detected by DOS; for a 1440 KiB drive it should be 07; here, 09 denotes a 2880 KiB drive. If this value is incorrect, you can try overriding the DOS-detected drive type with a DRIVPARM= directive in CONFIG.SYS. The use of the directive is described in Microsoft Knowledge Base article Q96769 (the DRIVER.SYS part is not applicable to Windows). You will notice the /D: option takes the drive letter number shifted by 1, while /F: option takes the same kind of drive type number that is returned above.

    The DRIVPARM= directive will have no effect on native Windows drivers, so you will have to enable the real-mode mapper as per the next point if you want this setting to influence Windows.

  • Check Windows drivers. When native storage device drivers are not available, Windows will fall back to using the real-mode mapper for the drive – which is to say, it will delegate disk accesses to DOS and BIOS interrupt handlers. The real-mode mapper is slower than native drivers, but since you mentioned that floppy access from DOS works fine, this may be a valid strategy.

    Open the Device Manager, select the floppy drive and/or floppy controller and then either remove the driver entirely or open properties and tick the ‘Disable in this hardware profile’ checkbox. If you ever decide to bring the driver back, you can untick the checkbox or re-install the driver with the ‘Add New Hardware’ wizard.

6
  • Thank you! This is by far the most helpful and informative answer I have ever got on Stack Exchange. By the way, I succeeded by following the last bullet point and the linked Q96769 article. Thank you again.
    – Ondrej
    Apr 8 at 17:59
  • 1
    @Ondrej I’d find this a rather unsatisfactory resolution, though. We still haven’t learnt why the drive was misidentified in the first place. (I suspect it might be a hardware fault, and it’s only an accident that this coincided with the OS upgrade.) Apr 8 at 19:47
  • So far, I only have a few theories. The PC was originally running Windows 98 and I was replacing it with another installation of Windows 98 (SE), so it's not much of an upgrade. However, I do not know if the original installation was or was not using special drivers or configuration of config.sys. Sadly, I did not image the drive before erasing it. The thing I know for certain is that the drive was functioning on the original OS installation, was also functioning in the OS and that the hardware cabling was not touched since manufacture.
    – Ondrej
    Apr 9 at 7:04
  • @Ondrej Hardware may still degrade over time even if it was never put apart, simply from normal use (or flaws it had to begin with). Capacitor leaks, cables wearing out from bending, dust disturbing circuits, broken contacts, and so on. If everything used to work without any extra configuration, I’d seriously look into it. Apr 9 at 11:58
  • right, of course, but tye drive was working on the oroginal installation right before I reinstalled it, so I would take hardware degradation as very unlikely.
    – Ondrej
    Apr 9 at 16:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.