Alarm Siren wrote:
the bit responsible for allowing access to these registers (Bit 7 of LCR) seems to be stuck high. Which doesn't make sense
When you suggest it's "stuck high," do you mean the UART pin
actually drives d7 of the CPU data bus high when LCR is read? Certainly that could be true, and maybe this is something you already checked. Anyway, I'm wondering whether perhaps the pin is actually floating (high impedance) when LCR is read. (Indeed, maybe it's floating when
any of the UART's registers is read). But even a floating line on the CPU data bus will read as high (or low) if that's the previous state to which it was driven. (Capacitance at work.
) And this could be misleading.
d7 of the CPU data bus could be floating due to a failed bond wire inside the UART chip...
or due to a bad connection externally between the UART and the CPU. Measuring from the CPU end, I suggest you somehow verify that actual current is delivered. You could attach a pulldown resistor
at the CPU end and use a scope to watch the voltage on the pulldown when LCR gets read. Or, stop the CPU clock (or pull RDY low) when LCR gets read; then just use a VOM or DMM from the CPU's d7 to ground to verify actual current flow.
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html