Off and on throughout my Build 4 troubleshooting journey I kept wondering if the PLD was the underlying issue. While a PLD is handy for making after the fact changes to your build’s memory map, it also has a handy feature I hadn’t thought of before. Since the PLD brings control input and output signals to a common location, it’s a simple matter to replace the PLD with an external address decoding circuit if needed for testing or some other reason.
I did just this in my Build 4 troubleshooting in an effort to get my build closer to that of Build 3, which I knew worked fine with a 65816 and 12 ns RAM.
Here is an image of Build 4 with the PLD replace by the same address decoding circuit as I used in Build 3.
I did a good bit of the Build 4 troubleshooting with some version of the above setup. Of course, I found out later that the PLD wasn’t the problem at all. But it’s good to know that you’re not stuck if you suspect problems with your PLD.