• Please review our updated Terms and Rules here

Looking for BIOS from a four-drive floppy controller

Malvineous

Experienced Member
Joined
Jun 18, 2010
Messages
119
Location
Brisbane, Australia
Hi all,

I'm interested in trying to get more than two floppy drives into the same PC.

I don't have a four-drive floppy controller, but I have found a generic two-drive ISA card that can operate as a secondary floppy controller.

Unfortunately I'm not having much luck getting DOS to see the drives on the secondary controller. There's no BIOS on it, which leaves me with options like SDRIVE.SYS. SDRIVE manages to switch the motor on for the fourth drive, but only when a third drive is connected and that's as far as it gets. The drive motor never goes off again and the first two floppies on the primary controller stop working (whether I tell SDRIVE to handle the primary drives or not.)

I have read that people with dedicated four-drive controllers have had much more success when using cards with their own dedicated BIOS, so I am wondering whether one of these BIOSes may work with a generic floppy controller operating at the secondary port address.

Does anyone know whether BIOS images from these controllers are available online? I know there are a lot of motherboard BIOSes out there but I don't really know where to start looking for floppy controller BIOS images.

Thanks for any info!
 
I have a 4-drive floppy controller with a BIOS. It's in this archive, in images\fdc344.bin.

The drive type is set with jumpers on the card. The BIOS does work with a generic floppy controller (I have used it to get 1.44mb support on a 5150) but without the jumpers you will have to hack it and hard code the drive types. Otherwise I think it defaults to 360K. Or possibly none, I don't really remember... If you can't figure it out let me know, I have a disassembly somewhere where I documented most things.
 
The problem is that if you have a floppy card at a secondary address, you can't simply use a 4 drive controller to accommodate 2 drives on one controller and 2 on another, secondary controller. Most FDCs with a secondary address port option have to share DMA and IRQ with the primary, so the BIOS needs to know how to disable one FDC to get to the other, and vice-versa.

I do have BIOS roms for both the Compaticard IV and the Sysgen Omnibridge, if that's any use.

I think that I've saved the BIOS source for the 4-drive SMSC controller, if that helps. It'll take awhile to find it, but I know that I've got it.
 
Thanks for the quick responses! My thinking behind this request is that a four-drive controller has a better chance of being configurable to the secondary IO address, and if that is the case, the BIOS from that controller would be more likely to check the secondary address for the existence of a controller. If I can find a BIOS that looks for a secondary controller, then there's a chance (depending on the hardware interface), that it might be able to drive my two-drive controller sitting at that secondary address.

The question is then whether the controller BIOS can coexist with (or even replace) the original BIOS floppy routines, which is a requirement in my case since there will be two disks on each of the two controllers.

If you have any ROMs it would be great if you could post them, because I'm fairly sure I'm looking for a needle in a haystack :)

Source code could be very useful too, depending on what hardware chips it is designed for - I don't know whether these four-drive controllers used standard chips or whether they had custom ones. If they use the standard interface then there's a good chance it'll work with my generic ISA card as long as I can point the I/O to the secondary address.
 
@Plasma: I tried your FDC344 BIOS and it looks like it only probes the primary controller - it picked up my 1.44MB drive as a 1.2MB (as expected with no way of setting jumpers) however it didn't attempt to probe the secondary controller.

If you happened to have any disassembly that shows port addresses let me know, although the BIOS seems pretty small so I wonder whether all it does is tweak some values for floppy drives 3 and 4 before passing control on to the existing BIOS, rather than implementing full software support for the floppy controller.

EDIT: Forgot to mention the reason I suspect this is because if you set drive A and B to "None" in the system BIOS, then the FDC344 comes up saying no drives found.
 
Last edited:
@Plasma: I tried your FDC344 BIOS and it looks like it only probes the primary controller - it picked up my 1.44MB drive as a 1.2MB (as expected with no way of setting jumpers) however it didn't attempt to probe the secondary controller.

If you happened to have any disassembly that shows port addresses let me know, although the BIOS seems pretty small so I wonder whether all it does is tweak some values for floppy drives 3 and 4 before passing control on to the existing BIOS, rather than implementing full software support for the floppy controller.

EDIT: Forgot to mention the reason I suspect this is because if you set drive A and B to "None" in the system BIOS, then the FDC344 comes up saying no drives found.

Well I spent several hours last night looking for my documented disassembly on my hard drives (mainly for my own purposes, it was part of a larger project I want to continue) but I can't find it. I think it was on a VM image that got deleted. Which is quite a bummer because I spent a couple weeks on it and had it assembling with TASM.

But if you start by running it through Sourcer (disassembler) that should give you some idea of what's happening.
 
My advice is to make up a "switch" card that extends the 2-drive to a 4-drive unit. It used to be done with 5170 type controllers quite a bit. Essentially, you intercept port 3F2 accesses and then provide the extra motor and drive signals, adding another cable for drives 2 and 3. You still have one FDC, but with lines diverted as appropriate. Pretty simple--just an address decoder, latch and random logic.

At least you wouldn't have to deal with the support/non-support of extra FDCs.
 
Back
Top