Macintosh Disk Daisy Chaining
Floppy Emu was originally developed to be purely a floppy disk emulator for the Macintosh. More recently, I added the ability to emulate a hard disk too, for those Mac models that support Apple’s original HD20 hard drive. This enabled the use of much larger disk images up to 2 GB, but it also enabled another feature that’s been unexplored until now: daisy chaining!
With a standard Macintosh floppy drive, there can only be one drive per floppy port. There’s only a single ENABLE signal at each port, and the Mac ROM only expects to find one drive on each port. So you can have one drive on the external floppy port (if the Mac has one), and one drive on the internal floppy port, and that’s all. If you somehow brewed up a custom splitter cable to connect two floppy drives to a single floppy port, it definitely wouldn’t work, and would cause electrical contention that might damage the drives or the Mac. This would be true whether you used Floppy Emus, or real floppy drives.
When Apple introduced the HD20 external hard drive in 1985, the situation changed. An often-overlooked feature of the HD20 is the floppy-out connector on the back of the drive. Combined with new HD20-aware code in the Macintosh ROM, this made it possible to daisy chain multiple drives together for the first time. Floppy drives were still “dumb” and didn’t understand daisy chaining, but you could build a chain of one or more HD20 drives, with an optional floppy drive at the end of the chain. Aha!
Signaling
To support daisy chaining multiple drives on a single port with a single ENABLE signal, Apple used a trick. The ENABLE signal from the Mac’s floppy port was connected to the first drive in the chain. That drive used internal logic to generate a new ENABLE signal, which it passed to the second drive in the chain. The second drive did the same for the third, and so on. As long as things worked correctly, only one drive at a time would ever see ENABLE asserted, so the drives could coexist happily on a shared port.
To select the next drive in the chain, the Mac asserted and then deasserted another signal called LSTRB, while keeping ENABLE asserted the whole time. The drive that believed it was currently enabled was supposed to see this, disable itself, and enable the next drive. When ENABLE was finally deasserted, all drives would disable themselves. When ENABLE was later asserted again, the first drive in the chain became enabled, and the process began anew.
This daisy chaining technique was mentioned in a dusty old HD20 document I found, but I was never able to get it to work as described in the document. Only after a lot of trial and error, and reverse engineering of the HD20 code in the Macintosh ROM, was I finally able to get daisy chaining working with the Floppy Emu.
Why?
Is daisy chaining actually useful for computer collectors in 2015, or just a novelty? I can see two scenarios where it would be helpful:
With a Mac 128K or 512K, to use one Emu as a floppy source for loading Apple’s HD20 Init, and a second Emu in HD20 mode as a boot volume. Since the Mac 128K and 512K don’t have built-in ROM support for HD20, they normally can’t boot directly from an HD20 without a real floppy disk with the HD20 Init on it.- With any Mac, to use one Emu in HD20 mode as a primary boot disk, and a second Emu in any mode as a tool for transferring files between Macs or between a PC and a Mac.
The Daisy Chain Board
To make daisy chaining easy, I designed the daisy chain adapter board pictured above. Plug the adapter into your Mac, either directly at the external floppy port, or with a cable to the internal floppy port. Then connect two drives to the DISK 1 and DISK 2 connections, and an extra wire to disk 1’s TP1 output, and you’ll be in daisy chaining heaven. Or link a second adapter board at DISK 2 to create an even longer daisy chain. Although it looks like a Y-splitter, topologically the enable signals form a daisy chain.
I was unsure how popular daisy chaining might be, so I only had a few samples of this board made. If you might be interested in buying a daisy chain adapter board, please let me know. If there’s sufficient interest, I’ll build more.
Maybe Don’t Try This At Home
Building your own daisy chaining setup requires some non-standard connections and custom wiring between two or more Emu boards. Damage to the Emus or the Mac is definitely possible if you botch this, so be extra careful to check your connections, and don’t proceed if you’re uncertain about your ability to do it correctly.
Briefly, all the drives should be connected as a shared bus, with the same floppy cable signals going to each one, except for the ENABLE signal. The ENABLE signal from the Mac should be connected to the ENABLE input of the first drive. The TP1 test point of the first drive should then be connected to the ENABLE input of the second drive. TP1 of the second drive should connect to the ENABLE input of the third drive, and so on.
You’ll find TP1 on your Floppy Emu board near the bottom left corner of the LCD’s overhang. It’s an unlabeled metal-ringed hole just below the 10×2 black plastic IDC connector.
If you’re building a custom cable using standard IDC-20 flat ribbon cable, ENABLE is on pin 14. Pin 1 on the cable is colored red, so start at the red end and count 14 wires to locate ENABLE. Count twice, cut once!
Important Notes
- Be sure you’re using the latest HD20-aware firmware for the Emu, which as of this moment is HD20-0.7A-F14.5. You can download the firmware here.
- The first Emu in the chain must be in HD20 hard disk emulation mode (or a real HD20 if you’ve got one). You can string together more HD20 mode Emus if you’d like. The chain can end with zero or one Emus in floppy mode, or a real floppy drive. If there is a floppy-mode Emu, it must be at the end of the chain.
- In order for daisy chaining to work, your Mac must have HD20 support in ROM, or boot from a disk that contains Apple’s HD20 Init. The supported machines are the Mac 128K and 512K (with HD20 Init), 512Ke, Plus, SE, Classic, Classic II, Portable, IIci, IIsi, and LC (but not LC-II or LC-III).
- The topology and total length of the daisy chain cables is important. Longer cables with forking paths will cause signal reflections and delays that may cause the Emus to work intermittently when daisy chained, or not at all.
3 Comments so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
It’s not as useful as it could be with a stock 128k/512k (64k roms)… At boot time the mac doesn’t know anything about HD20 or daisy chaining possibility… So when I turn on my 512, it waits for a floppy disk but if I have a real or emulated floppy drive behind the HD20, it isn’t recognized before mac loads the proper code 🙁 Internal drive (or external with no HD20 in chain) can boot this mac!
Good point! I hadn’t thought of that, and I can’t think of a work-around offhand. So for those machines, you would still need to have an internal floppy or floppy emu, then you could have a daisy chain on the external floppy port.
This is fantastic. I have an authentic HD20 and 800K external floppy connected to my 512Ke, and I’d love to install an EMU internally in front of the internal drive.