For the Retrochallenge 2022/10, I am continuing the work I left off in RC 2018 and 2019: The CAT-644 microcomputer. I have not touched this project since 2019, other than to move the box it is stored in.
I was having trouble getting the SDCard to work reliably... Sometimes it would complete several block read/writes in a row, sometimes it would timeout waiting for a command response... I spent a few days after the retrochallenge looking into it, and found a small bug. This fix is included on the github link... The SD Card CS line was not being properly released after a block transfer. It had been commented out! While previously debugging the SDCard in isolation, with the VGA driver not running, this had been commented out, and causes no problems when the screen isn't being drawn! But... when the display is being refreshed, some 'garbage' was being sent to the SD Card and it was returning error responses. If the garbage contains something that accidently looks like the beginning of a command, the real command got lost in it (as perhaps misframed as an argument to the garbage command)... the SD Card never sees the command sent, so it never responds. After fixing that, the SDCard works perfectly fine now, even with the display being drawn.