Mac128 wrote:The HD20 is also designed to hold a 5.25" full height drive. The original Macintosh ROM contains a driver for the Apple Widget drive per Inside Macintosh...
Out of curiosity, where does it say that in "Inside Macintosh"? I have searched my PDF copy of volumes I-III and the only reference to a "Hard disk driver" is in reference to the soft-loaded ROM used in the *Macintosh XL* (Aka, the factory Hax0r-ed Lisa), not the "real" 64k ROM in the 128/512k. The Widget connected via an 8 bit parallel port rather than a crazy Rube-Goldberg floppy-UART nightmare thus I'd expect that any similarity between it and the HD-20 on a low-level driver level would be completely coincidental... although I do slightly wonder if the HD-20 software driver reuses the "Hard Disk" device identifier defined for the Macintosh XL Profile/Widget driver when it's loaded. (Apple says in the "writing device drivers" section never to reuse an identifier, but software companies that write the OS regularly break their own rules.)
Dennis Nedry wrote:... I have a Willem ROM programmer that supposedly can dump the 2764 ROM chip inside of the HD 20. Given that it's only 8 kilobytes, disassembly should at least be somewhat feasible and should shed some light on the Rodime and floppy interfaces. Once dumped, I shall certainly share the 8k file for others to poke around in. Theoretically, we can determine where the Z8 starts execution and disassemble from that point. From there we can determine what register is what, which ports correspond with what hardware, and form up all sorts of cool theories...
I really hate to be a skeptical buzzkill, but a number of people have promised at various times to build mass-storage devices to work on the original Mac, and it seems like they lose focus or get in over their heads pretty rapidly.
As I've unfortunately bad-tempered-ly expounded on before
the problem with all these schemes people have is that no one seems to actually want to glue their butt to a chair, read *all* the relevant sections of "Inside Macintosh" over and over again until they understand it, and fire up a compiler/assembler capable of producing "period-suitable" balls of code to write a device driver capable of emulating a hard-disk-ish like device through, say, a null-modem cable before running off and playing with the TinkerToys. Sure, disassembling the ROM containing the Z8 code might shed light on a few questions, like explaining in more detail how exactly Apple managed to use the IWM as a UART, and if you *really* want to try reverse-engineering the proprietary Rodime hard-drive connector instead of the IWM interface delving into it might reveal some details on how command flags were sent to the drive and how data was serialized/deserialized. However, well... if you think you're up to groking a disassembler listing *why not read a disassembly of the HD-20 driver*? It just took me all of five minutes to get semi-commented disassemblies of the Mac 128k and Plus ROMs thanks to this pre-assembled kit of tools
, so getting that code is a lot less work than actually tearing something apart.
(Of course, I am not a 68000 assembly programmer, and the driver is mixed in with, well, the entire contents of the Mac ROM but... it does appear based on my ignorant reading that the ".sony" floppy driver in the Plus has been extensively modified to support the HD-20 based on a comparison of the 64k ROM. If someone knowledgeable were to spend the time grokking this information they could probably determine exactly how the driver twiddles the bits on the IWM to figure out if an HD-20 is present and how data is transferred to it. Disassembling the stand-alone HD-20 init might also help. My guess is that the INIT probably just replaces the whole of the 64k's .sony driver with one similar to the Plus-es, but even if that's the case it would point out exactly what needs to be patched to replace the floppy driver and add HFS support.
Oh, and BTW, since this has come up in other discussions about making some mass-storage widget that would fit internally via the 68000 socket a disassembly should to answer the question of whether the ROM is extensible. I don't know about *general-case* extensibility, but one of the first things the Mac does on power-up is check a certain memory location to see if it contains a signature indicating "test software", and if so it jumps to an address... it's on the first page of the assembly listing. I would hazard a guess that devices like the Hyperdrive leveraged that hook to hijack the startup process unless finer-grained overrides exist within the individual initialization/boot code blocks.)
Anyway, good luck with your endeavors to be sure, but my position at this point is unless someone were willing to actually spend the time learning how a mass storage device for the Mac *works*, interface details aside, before jumping in they're seriously putting the cart before the horse. You can spend as many man hours as you like logging and oscilloscope-ing the interface to your heart's content, but unless you understand *what it's doing* before you try to figure out how it does it you'll be muddling around in the dark. It seems to me that the entire thought process behind these endeavors is that it's *impossible* for anyone to understand the Mac well enough to write a device driver for it and it would somehow be easier to reverse-engineer some antique and undocumented mass storage device perfectly enough that an existing driver could "just work" with your new hardware. "Wham, bam, thank you Ma'am, I just made myself a flash drive for my 64K ROM Mac without ever having to touch or understand 68k assembly or the Mac system software! Yay, that was easy!"
Color me unconvinced. If the HD-20 wasn't such a "black box" I'd consider it doable, but if the plan is to just haphazardly diddle with it and try to see a pattern in the bits without having the slightest idea what to expect I definitely wouldn't hold my breath waiting for success.