I've got a Fujitsu FM-7 with an external 5.25" floppy drive unit; it has a pair of 40-track, double-sided, double-density¹ drives. These use a fairly common low-level track format: the standard "IBM MFM" (as the HxC software calls it) encoding described in this answer, or in other words just like the IBM PC except with 256 byte instead of 512 byte sectors.

It would be handy if one of my modern Linux PCs could do read sector, write sector and track format operations on these disks.² (I am not concerned about anything beyond this; I am not looking for software that understands filesystem formats.) Ideally I'd have a choice of sector sizes (allowing me to use both the 256-bytes/sector formats used by the FM-7, the NEC PC-8001, and many other 8-bit machines, and the 512-bytes/sector formats used by the IBM PC and similar), but I'm open to solutions that use only one sector size of 128, 256 or 512 bytes.

The best approach I can think of off-hand is is to connect a floppy drive to a disk controller chip along the lines of a Fujitsu MB8877 or Western Digital WD1770 (which is actually exactly what my external drive unit does), and then program a microcontroller or Arduino board to handle the interface.³ It would exchange commands and sector data with the PC (probably just via a USB serial interface) and directly drive the low-level interaction (which is timing-dependent) with the disk controller chip.

Are there existing solutions out there that do this? What are my other options? An indication of approximate cost (for devices or major parts) would also be appreciated.

Most of my PCs are laptops, and I would prefer something that could work with those, but I do have both a Linux and a Windows desktop machine with PCI-X slots available, if necessary. Sadly, my main Linux desktop (using an ASUS P8H61MX motherboard), even though it's getting on more than ten years old, has no on-board floppy controller, but solutions using PC floppy controllers might be useful to others. (Or perhaps you can provide a pointer to a way to connect a floppy controller usable for this purpose to a modern PC.)

¹ Yes, I know that the drives and diskettes themselves are not double-density; it's the FM vs. MFM encoding that determines the density, but this phrasing seemed the easiest way to get across the information I'm trying to express.

² If a solution can't provide sector-level reads and writes to the disk itself, full-track reads and writes would also be acceptable, though not preferred. But that solution would also have to provide a way to get sectors out of the track, let me change or replace the data in them, and then write out the new track to the disk.

³ I'd also be happy to use a parallel port or GPIO interface on the PC itself for this, but I worry about timing problems even with a traditional parallel port, much less the USB versions I'd be using on my laptop.

  • Given your proposed solution, I take it you’re specifically interested in an external drive controller with a /dev/fd0-style interface, rather than a streaming controller such as a KryoFlux or SCP or FluxEngine, is that correct? – Stephen Kitt Jan 29 '20 at 5:43
  • @Stephen It sounds like you're talking about devices that would require I read and write only full tracks, rather than being able to read/write individual sectors (after the initial track format), is that right? It's not preferable, but I'm open to the idea. I'd kinda dismissed the KyroFlux because it's very expensive, but it sounds like the FluxEngine might work out just fine for me. I'll investigate it! – cjs Jan 29 '20 at 5:52
  • Yes, those devices are all track-based. – Stephen Kitt Jan 29 '20 at 6:00
  • 1
    What are you trying to achieve? Do you want to exchange floppies or floppy images between the FM-7 and your PC? The FM-7 has a serial interface, won't this be enough eventhough slow to transfer data? – the busybee Jan 29 '20 at 8:04
  • @thebusybee In this particular instance, I need to get data (particularly code I write) on to and off of my FM-7. If you want to buy me an FM-7 serial card, be my guest. That solution isn't exactly scalable when multiple different are involved, though. – cjs Jan 29 '20 at 9:48

Your Answer

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

Browse other questions tagged or ask your own question.