• Please review our updated Terms and Rules here

Add Floppy Support to modern ISA SBC

I tried DOSFDRV.SYS with /P:370 switch and the QuadFlop ROM enabled and disabled, and it still fails to load both ways.

Again double-checking, did you flip the physical switch to move the hardware to the secondary position?

Also, according to the docs the secondary address is 3F0, not 370?
 
Ok, I got wayyyyy off the beaten path with this whole QuadFlop board from the beginning, I conflated parts of this with Sergey's other project the "Monster floppy" and in my head I had this idea that the Quad Flop had 2 floppy controllers in one chip, and when the physical io-select switch is in the OFF position, one controller will be at 3F0 and the other will be at 370. But there are not two controllers built into this chip, there are simply two floppy headers, one to plug in drives 1&2 the other for drives 3&4.
All I need to do is change my config.sys and point DOSFDRV driver to the primary FDC at 3F0h, but specify the unit number as 2 and the driver will load and present my 360K floppy that's pinned to DS3 as Drive D: I can format and copy files to/from now.

...but I learned a lot of cool things, I discovered maxtherabbit's super useful driver, and that I can use the SUNIX driver to access the built in flashfloppy that's on thei board. Thank you everyone for sticking with me on this, the right brain cell finally fired when I read the previous post from Eudimorphodon
 
FWIW, the "primary" address it refers to is 1F0h, IE, the standard location for a floppy drive. Going back and looking through your screenshots from earlier I'm a little puzzled about your screenshot from the 286 that shows Sergey's BIOS saying the controller was at 3F0, was that an autodetect that matched the actual switch position, or did you set that in the BIOS setup? I'm kind of wondering if there's been a mismatch this whole time and maybe the BIOS extension *will* work if you have it actually matching the switch position.

Anyway, yes. Back in the Pleistocene epoch it was usual for floppy controllers to support four drives. The original "Shugart" wiring scheme put all four drives on one physical cable, but there were wrinkles to this. (Only the first three positions were fully standardized for 5.25" drives originally, so sometimes you had to hack the drive or cable to connect the fourth select to the correct wire for your controller, and this scheme also used a single motor control signal which ran all 4 drives at once.) IBM decided for "reasons" to come up with their scheme that allowed separate motor control and simplified drive jumpering, but effectively limits you to two drives per chain, so the controller in the IBM PC and XT had two separate physical connectors each of which supported two drives. That's what this controller replicates, except on the IBM controller the second connector was external, in the form of a 37 pin D-sub connector. Most third party controllers dropped the external port pretty early on, as did IBM with the AT.

What's kind of confusing, though, is the PC never really had *BIOS* support for those other two possible drives, so to use them you needed a driver. That was *one* of the possible uses of the "DRIVER.SYS" that was included with MS-DOS 3.x. (Some OEM DOS manuals even document the /f: switches for 8" drives; for instance, it's in the Commodore MS-DOS 3.2 manual. By DOS 3.3 they usually only documented the setting for "normal" drives.)

Anyway, yes. The text about supporting '8 drives' on the BIOS and product pages assumes two controllers, one at 1F0 and the other at 3F0, each of which has two drives on two chains, total of 8.

(Edit: I blew it on which address was primary verses secondary for floppy drives...)
 
Last edited:
No! Primary FDC is 03f0, secondary is 0370, tertiary, I believe is 0360 (rare). 01f0 is hard disk primary, not floppy. See: http://samfreetime.blogspot.com/2012/10/bios-inout-port-map.html
Ralf Brown has a similar list on github, but it's very detailed and almost 10K lines long.

Doh. You're right, I got mixed up as to which address was the primary. But in my defense about 1F0h, this is in the product page for the floppy controller in question here:

DIP Position 5 – *0x3F0(on) / 0x1F0(off) – IO Select sets the IO address for the floppy controller.

My apologies to the OP for "correcting" him on 370h, I assume the card came with a manual (or its BIOS selection) has the right address in it. Looking at Sergey's monster floppy it does indeed use 370h for the secondary address. I'm going to *guess* this texelec card does as well given conflicting with the primary hard disk would be a pretty major booboo.
 
I'm happy to report that things are straightened out, I can use the TexElec card with the DOSFDRV driver controlling drives 3&4 as DOS letters E; F: and 22disk and IMD can control drives 1&2 on the TexElec. I can also boot from USB 3.5 floppy and access the USB 3.5 floppy as DOS letter A: even if I'm not booted from it. It gives me the best of all worlds. One thing to comment on, drive 4's spindle motor is always on, even during POST, it never shuts off, the drive still reads/write ok when booted though.
 
FWIW, this does at least prove that the ISA bridge implementation of the Vortex86 SoC has pretty good compatibility. Might be fun to mess around with other devices that are known to fail on most other post-early-2000’s chipsets and see what the limits are.
 
Back
Top