Dennis Nedry wrote:It may be possible from the hardware side to build a device that intercepts and successfully interprets these IWM signals to/from an ordinary floppy drive. To a certain extent, these signals should be predictable with a bit of research, so we would have some ability to double-check things.
The operation of the IWM when it comes to talking to floppy drives is well-described, so I don't see it being worth building a signal analyzer solely for that. There are already devices like the "SVD" which can be connected to an Apple Disk ][ controller and emulate a drive, and the data stream portion of the interface is the same for the Disk ][ and the Macintosh drives. (Where they differ is the use of the "control lines"... a Disk ][ uses the wires to send raw stepper-motor pulses to a completely "dumb" peripheral, while the Mac drive has those status registers and accepts "high-level" commands like "step" and "change step direction". Meanwhile, the Mac 400k drives added a "PWM" signal to control the speed of the motor. Ironically the 800k drives didn't use it.) It's reasonably safe to say there's enough documentation out there that if someone wanted really wanted to build a "Macintosh Disk Drive" emulator they could probably just go straight to prototype hardware without bothering with a protocol analyzer. (Particularly since in terms of hardware they'd basically amount to the same thing anyway.)
After that is mastered for both 400k and 800k, then switch to the HD-20 and speculate about how the signals are different.
Contrarywise, a signal analyzer *would* be useful if you found a *working* HD-20 to play with. Clearly the easiest way to get one would be to build a *floppy drive emulator* with a vastly oversized Flash memory (like an SD card) and get it working. Once you've nailed that down you add a "passthrough connector" that can duplicate all the signals sent through the device and log everything it sees in a RAM/flash buffer. Hook it up between a suitable Mac and an HD-20, put the drive through all its paces (formatting, reading, writing, whatever), and then get to work analyzing your logs. Once you think you've got some idea what you're doing then a few firmware changes to your floppy emulator should be able to turn it into an HD-20. Easy Peasy?
(No, not easy, it's a blooming heck of a lot of work. But it's the only way it'll get done if you restrict yourself to "public documentation" of the interface and clean-room reverse engineering techniques. Disassembling the software driver on the Mac side and the firmware of the HD-20 might let you skip a few steps.)
This stuff is from the mid 80s, it can't be TOO complicated. Heck, I see 7400 series DIPs in those pictures!
The real question is what that big square chip is. It has "Apple" written on it, which is worrisome. It could be something generic, but my gut feeling is that it's an ASIC, probably a gate array device. If that's the case a schematic derived from the circuit board isn't going to be that informative... you'll see a bunch of signals going in and out of that thing, but without knowing what it *does* you'll still be in the dark. On the bright side all/most of its logic *may* be dedicated to driving the hard disk drive. The patent document covering the disk drive itself is interesting reading. The interface seems to function a lot like a simplified version of ESDI
, in that it still requires a "host controller" to serialize the data stream, but the actual RLL encoding and data separation happen on the drive itself. In addition, the drive also has its own Z8 microcontroller which allows it to accept high-level-ish commands for head positioning. Thus the "host controller" may well fit into a single modestly-sized-for-1986-ASIC... and the more of that ASIC that's dedicated solely to being the hard disk controller the better.
(I'm also guessing that the RAM chip is used as a sector buffer for reading and writing to the drive since the data rate of the IWM isn't likely to be sufficient to provide the data stream directly.)
So... if all that supposition around the "mystery chip" is correct then it's possible the Mac interface may be composed entirely of the Z8, its program ROM, and the IWM. (I'm still guessing here that the IWM in the HD-20 is used as a UART to talk to the Mac. I'm really in love with that idea... it's just so wrong.) If that were all the case, and I'll grant that's a lot of guessing, duplicating the device as an updated version of the original hardware might be possible. They still sell enhanced Z8-family chips so if you were willing to pull an IWM from a dead Mac you might even be able to reuse the portions of the original code which spoke to the host Mac, only leaving you to rewrite the portion that spoke to the disk drive to use whatever your new storage medium is instead.
(Admittedly you probably wouldn't want to build a device that required pirating ICs from dead Macs but, eh, figured I'd mention the idea. A fast microcontroller like a Propeller could probably emulate an IWM easily enough.)
Anyway. We'll see just how for naught this discussion ends up being. Lots of ideas get thrown around, it's rare someone actually makes them happen.