Some errors are better
It has been quite a long time since I had some spare time to work on my still-not-working SD card interface for the Apple II.
After rewriting almost all of the VHDL code for the card's CPLD it still would not boot and most of the time crashed with a more ore less garbled message of "Unable to load ProDOS". The fact that this message is shown at all means that at least the first block of the volume is loaded and executed. But the messed up message indicates an issue in the transmission either from card to CPLD or from CPLD to the computer. I checked the data coming from the card and it seems fine.
Thanks to Protek over at the Applefritter forum, I found a step into the right direction. He built a card from my design and uses a quite old version of my sources, that was sort of working. He swapped the 74HCT type bus transceiver for a 74LS type and instantly got better results.
I tried the same and got better results, too. Well sort of. The "Unable to load ProDOS" message is now stable. But hey, it's an improvement! I don't understand why, but there seem to be some subtle timing differences between HCT and LS that I missed. Strangely, in one of the TechNotes for the GS, Apple suggest to use either HCT or LS types.
Maybe I should call a colleague from a previous job, I'm sure he has an explanation for that. He really knows about electronic design and used to work for IBM in the 80s. One of his designs was a Video-Overlay card that was used to display Btx on the original PC and XT. Btx was an (overpriced) online service in Germany prior to the internet.
The fact that the error message is now stable means that I can focus on the real cause. I think there may be something wrong with the block addressing, but I can't put my finger on it right now. It sounds weird, but some errors are "better" than others.