4

I have a SuperMicro P4SCA motherboard (manual) running FreeDOS 1.3. The motherboard has an onboard floppy controller as part of a W83627HG (datasheet). However, this floppy control fails to provide some functionality I need, so I purchased an Adaptec AHA-1522A (manual) ISA card, which has a DP8473 FDC (datasheet) that does provide the functionality I need. However, the AHA-1522A requires that the motherboard floppy controller be disabled to function correctly. Unfortunately, I have not found a way to disable the motherboard FDC. In particular, I did not see anything in the BIOS (Phoenix AwardBIOS) about disabling the FDC.

Is it possible to do this and, if so, how? Is this necessarily a BIOS setting, or is it possible to do from DOS? Do I maybe need to update my BIOS? I can post pictures of relevant BIOS pages, if desired.

10
  • 1
    IIRC that's a Pentium 4 board ca 2010 - long way to go to make it on topic for RC.SE.
    – Raffzahn
    Feb 6 at 21:30
  • Maybe, but considering the post is about FDCs and FreeDOS, it would seem out of place on a more modern forum.
    – MattHusz
    Feb 6 at 21:56
  • 4
    I would argue that at this point, anything involving floppies is retro — and we allow questions about modern hardware to use floppies on modern systems (Greaseweazle etc.). So I would say this is question is OK, albeit unlikely to get a productive answer unless someone has figured out to configure the W83627HG to disable its floppy controller. Feb 6 at 22:14
  • 1
    @MattHusz MS-DOS would still not make it an RC.SE question. The way it's described the question is not about any MS-DOS feature but about the modern board, its modern BIOS and your wish to manipulate either (or both).
    – Raffzahn
    Feb 6 at 23:13
  • 1
    @another-dave I wasn't able to get that to work. When I set both types to 'None' and plug the drive into the AHA-1522A and use ImageDisk's testfdc, I see the message "BIOS reports drive A: as Not installed." If I leave the original BIOS setting (and plug the drive into the AHA), I get a message about "No FDC interrupt". I suppose it's possible the AHA-1522A is faulty, but I see a message about it's BIOS during boot.
    – MattHusz
    Feb 6 at 23:39

1 Answer 1

3

You have already identified the Super I/O chip, and found the datasheet.

The datasheet describes on p. 80 how to get into "extended function mode", which is needed to access the control register.

Bit 0 of register CR22 is called "FDCPDN", which translatse to floppy-disk-controller power-down, so I assume if you write a zero to that bit, then the floppy part will power down.

Other functionality is register CR30 ("activation control" for the logical device of the floppy, possible you have to disable this, too).

You can also use register CR60 and CR61 to set the base address of the floppy controller, so if this is exposed in your BIOS, you could also use this to move the floppy controller away from the port range occupied by the external controller.

If neither disabling the floppy nor setting the base address is not possible with your BIOS, then maybe this functionality is not included in your BIOS.

So finding a BIOS update which would include this functionality would be best (but that's unlikely).

You could also try to modify the BIOS yourself, which would be the next best solution, but that's a lot of work, as you first need to reverse-engineer the BIOS: Find the code that initializes the Super I/O chip, and modify the values written to disable the floppy.

In principle, you could also write a small assembler program that does it after you boot from the harddisk. However, that would mean that during power-up both floppies react to the floppy port addresses, which is not ideal, and may screw up the configuration process, so you also may have to properly initialize the floppy controller and corresponding BIOS RAM locations after your powered down the onboard controller.

All of these require that you are skilled in assembler programming.


I also had a look at the AHA-1522A manual, and it looks like you cannot adjust the base address of the floppy controller on that card (which would have been another way to resolve the port conflict).

In case you come across any port base settings: The first floppy controller is typically at 0x3f0, the second at 0x370.

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.