One of the good things about being in 2020 is the ease of getting custom PCBs. I made my first ISA card last summer and for the next round I decided to try a zorro slot card for my A2000.
I tried to rework the A500IDE project from aminet into a zorro card, using the same addressing scheme so that the same driver would work. I used a pair of 74ls138 instead of the '688 because I already had some and didn't want to pay the shipping cost to get a '688 here just to build the prototype. I found out that the A2000 motherboard doesn't allow cards to use the reserved $Dxxxxx space though, so I had to change it to use the autoconfig space even though it is not autoconfig capable. It is now $82xxxx and I patched the driver to use the new address.
At first I couldn't figure out how to mount or format the drive with ide.device even though the identify utility correctly returned the disk info (after patching the addresses in it, and disabling the '030 data cache anyway). But then I found this link with a newer version of the ide.device
http://nuclear.mutantstargoat.com/hw/amiga/a500hdd/files/ This is one is funny because it uses a fully unrolled loop (256 copies) of MOVE instructions to read/write sectors. Only 16-bit moves though, as back-to-back accesses caused by 32-bit moves supposedly caused data loss (I wonder if only certain HDDs may be affected?). After patching this one, I am up and running with my trusty old Quantum Fireball CR6. Data transfer speed is measuring up to 2.1MB/sec. I copied the entire contents of my 260MB SCSI over to the IDE and haven't seen any errors so far.
I have never used the FAT95 driver before but if that can also work with this type of interface it could be very convenient indeed.
How do drivers normally deal with memory-mapped I/O vs. the CPU data cache on Amiga? I did a little research on this and didn't find any good solution short of monkeying with the MMU. Disabling and then re-enabling the data cache every time the driver is called seems like it would be a huge time waster? I also found out that '030s have a write-allocate mode and that Amiga uses this for some reason (?)
The other thing I am wondering about is patching the motherboard ROM to make this a bootable device (ie. insert the driver into kickstart). Has anyone done this before? I saw a page that mentioned someone had patched in an A600 scsi.device to use an A600-compatible (like Gayle or whatever) IDE interface on an A500. Of course this one needs a different driver than that but I like the idea of using a modified motherboard ROM, since putting a boot ROM onto a zorro card doesn't seem to be possible without implementing autoconfig.