A working serial port!
Tracking down the problem
Fixing this involved a bit of head-scratching when trying to track down the problem. All logic signals seemed to be correct going to the chip but it never seemed to asserting DTACK after the chip select.
It seemed to be that the duart was not functioning even after replacing it with a known working one. I had checked that it was getting a clock signal briefly but I had only checked that it was present. Seeing that everything else seemed that it was correct then I thought it must be down to the clock.
Testing with the scope immediatly highlighted one issue, the frequency shown was around about 80Khz rather than the expected 3.68Mhz clock. Suspecting that the crystal could be at fault it was replaced for another but that was showing the exact same fault.
If it wasn’t the crystal at fault then it has to be the capacitors on there, maybe one of them was faulty? Checking them both with a meter was showing between 1-1.5nF which is way outside the 30pF that it was supposed to be. A quick cap replacement and checking the clock again and it’s now showing the correct frequency and the code is running so the duart was responding now.
Connecting the serial port and opening a terminal on the PC and we see the message above being printed. Next step is to test the Static RAM is working correctly and then to write a serial bootloader to allow programs to be sent from the PC rather than having to re-program the ROMs every time.