• Please review our updated Terms and Rules here

Introducing DiskArbiter - dual system real-time access to Shugart-type disk drives


Veteran Member
Apr 24, 2009
Canberra, Australia
Disk Arbiter

My Catheter project (earlier posts) worked as a brute-force way to connect an external controller to older floppy drives, within their original cabinet, without taking them out or opening the case to re-plug the edge connectors with a different cable.

"DiskArbiter" uses a small TTL adapter unit to take this to another level. The drives (eg 2 x Tandon TM100-2) stay in their closed case. A second controller (eg a standard PC/AT floppy drive cable) can be plugged into a permanent FDD header on the outside of the case. Both the "host" system ( S100, Tandy, any legacy system or drive expansion unit) and the "guest" system ( eg PC) can be attached to the pair of drives AT THE SAME TIME, enabling transfer of files between the diskette and a HDD on the guest system. My motive to build this adapter was the ability to quickly and easily access software on the vast Walnut Creek CDRom Archive and the like, hosted on a modern PC, and making available on old 360K 5.25" floppies.

DiskArbiter allows only one of the two controllers to access the diskette system at any given moment. So long as an FDD motor is running in response to one controller's command, the other controller attempting access will detect DISK NOT READY signals until the procedure has completed and the MOTOR ON signal has gone off (HIGH). Once MOTOR ON times out, the second controller can proceed with its command that will have been suspended while the relevant BIOS has kept it in a retry loop.


DiskArbiter is a stand-alone adapter that is independent of any system bus, and therefore can be used with any system capable of controlling Shugart-style floppy drives. It needs a 5v power supply that can be drawn from any source, including the power supplied to the drives themselves.

For the prototype, it suited me to build on a S100-bus prototype board from the N8VEM series. However, only the +5v power is drawn from the S100 bus connector (in this case, via a 7805 voltage regulator) and all other bus pins are unconnected. I also considered building it on a free-standing perf-board, drawing power from the FDD 5v supply. Power requirement is trivial.

View attachment 7305

This shows the DiskArbiter board in the first slot of the S100 bus, with the system FDC card next to it. The 34-pin cable from the pair of drives goes to the lower header (P3) in the middle of the DiskArbiter board, and the top center header (P1) links DiskArbiter to the host FDC. The top left header (P2) is extended to the external header on the rear of the cabinet.

View attachment 7304

This shows the external header plugged with the FDD cable from the "guest" PC. My schematic configures P2 for a standard AT cable without the "twist". If needed, P2 could be wired to reassign pins 12 and 14 for a "twist" header or for a second Shugart-standard controller identical to P1. If more flexible assignments are required, pins 10,12,14 and 16 could be assigned by a few DIP switches, but that is beyond my current or anticipated requirement.

View attachment 7306

Because this was constructed with point-to-point soldering, the components are spaced out more generously than a proper PCB layout.
The component count is quite low and the DiskArbiter circuit could probably be included in a S100 FDD controller card design, if a new card were being designed for PCB construction.

View attachment 7303

Here is the "ratsnest" view of the solder side of the card. It involved plenty of soldering practice and is not a pretty sight. To help with tracing the wires visually, I pulled individual strands from rainbow-style 16-way flat cable, though not with fully systematic color assignments. Generally the input and output of a particular gate use the same color. The VCC and power GND busses are on the component side of the board, except for the pullup circuit (5v/180R) that is needed for every input line of the adapter.

View attachment 7309

The schematic shows how DiskArbiter is based on the tri-state logic of the 74LS244 chip. When Controller A sends the MOTOR ON (MON) signal through P1 to initiate access to drive A or B, that signal is also passed through a 7404 inverter to switch off all the output gates associated with P2 (Controller B). The internal logic of the drives holds that MON signal active (LOW), through P3, for as long as necessary to complete the current instructions from Controller A. When MON times out and goes off (HIGH), then Controller B may access the drives, in which case all gates buffering Controller A are blocked.

The 74LS244 provides 2 Output Enable pins, each controlling the output of 4 gates. A high on those pins blocks the output of the relevant gates. This conveniently allows for 10 signals from each controller (P1 and P2) and 4 signals from the FDD (P3) to be blocked using 3 x 74LS244 chips and 1 x 74LS04 inverter.

The schematic shows the pullups as using 8-way resistor packs, which would be appropriate for a PCB. For the hand-knitted prototype, it was more practical to use discrete 180R resistors on each of the 24 input gates. More soldering practice!

Kicad CAD software

I can't speak too highly of the Kicad electronic CAD package that I learned to use on this relatively simple project. Kicad is free, it includes electrical rules checks for debugging schematics, you can create new components to add to extensive libraries, you can use the PCB layout tool to push connected components around and see what looks best for your wiring purposes, and you can take your design right through to PCB layout, automated trace-routing, and production of a set of standard files ready for PCB prototype or manufacture.