Huh, I hadn't seen those before. Is
this what you're describing?I'm trying to sort out some of the details of the interface.
It'll probably need some changes to show up in the right place for the Mac's address space.
Yeah, that's a good example. (I've also seen ones targeted at Atari STs, but more often interfaces for that machine tag onto its ASCI port, which is basically just a general purpose parallel port.)
IDE in theory should be a pretty low-hanging fruit.
As this page detailing the construction of an 8 bit IDE interface for a Z-80 based computer lays out it's a fairly forgiving interface which can be driven by simple polling if you want to ignore the interrupt and DMA features. (Using it that way is fairly slow, but it's basically on par with the early Mac's SCSI implementations.) Decoding the entire 68000 bus "from scratch" to lay out an IDE port shouldn't take more than around... half a dozen 74HC-series chips, give or take. Possibly less if you find some way to be "clever". (IE, take advantage of some existing decoding/chip selects.) Most of those "parasite" designs compress some of the logic into PAL/GAL/CPLDs to shrink the board size, but if programming them is off the table it's still reasonable to ponder doing it entirely in discrete logic.
So, tossing *this* out there: for the original 68000 machines (128k/512k at least) in addition to the "68000 parasite" route of getting the needed signals there were expansion boards which sat in the ROM sockets. Apparently on those early machines the ROMs are not isolated behind a one-way buffer so you can "see" writes on the data lines through said sockets. So... for instance,
as discussed on this forum a while back, there were SCSI controllers that were stuck in the ROM sockets. I have a copy of the .PDF that's the topic of that thread, and the interface between the ROM sockets and the NCR 5380 SCSI chip used only two 74LS10s as decoding glue. Comparing that schematic to the minimal requirements necessary for an IDE interface it *appears* to me you could wire up an IDE drive almost as simply.*
(* For details, the Bass-SCSI leverages some of the very sloppy decoding logic Apple used in the original Macs, which resulted in the 64/128k of ROM occupying 4MB of space but actually only "present" in parts of it. I can't tell for sure why Apple did this without more detailed schematics, but it appears that the output enable/chip enable lines on the ROMs are connected in such a way that OE is selected for the entire 4MB block but CE is tied to A20, so that the ROM will only be active every other megabyte. The Bass-SCSI thus sets itself up so it's selected whenever OE is *and* whenever the ROM is not, so it's visible at 0x5000xx vs 0x40xxxx for the ROMs. Since there is no read/write lines present at the ROM sockets it leverages a sort of ugly hack using the A4 address line to map out the 8 registers on the SCSI chips so to read a register you address it at one location, to write it you touch it 8 locations away. Further, for writes a flying wire to pin 7 on the 68000 is used to determine if the 68000 is actually writing something on the bus.
Also worth noting is that the 5380 SCSI chip is only 8 bits wide, so this interface only tapped the data lines from one socket.)
To convert this to IDE in principle you could grab the other 8 bits from the other ROM socket, wire up the IDE address lines just like the SCSI chip's port address lines, and... perhaps use one more address line to generate the chip select signal that lets you hit the top 8 of the 16 IDE registers. You'd probably also want to tie the RESET line to some appropriate pin inside the Mac. Now of course this is ignoring some possibly important details, like whether you'll need some additional flip-flops or buffers to ensure the signals are sufficiently "valid" when doing I/O. (That 8-bit IDE page calls out some gotchyas in that area.) But... even then you're probably still in the "half a dozen chips" ballpark. From that point it should all be software.
Of course, this all said there might be easier hardware solutions than IDE. For instance, implementing an SPI bus to talk to an SD card would in theory only require 4 I/O pins you can bitbang. (Along with suitable voltage level conversion.) For something like that I sort of wonder if you could piggyback another VIA on top of one of the existing ones in the Mac and trivially decode it to give you a couple 8 bit ports to play with. Then you could either bitbang SPI directly, or use a port to talk to an AVR which acts as your disk controller. The resulting setup would probably manage to be at least somewhat faster than something connected via serial.
Anyway, blawblaw, dumb ideas.