srowe wrote:
That implies to me that the LSR read is erroneously returning Data Ready = 1.
Or, when you attempt to read the LSR you're actually reading something else. If so, maybe "UARTBASE+LSREG" doesn't return the right value. You don't show the part of your code where those are defined. (The part you did show looks fine.) But a more likely explanation is that address lines A2, A1 and A0 have gotten shuffled around when the circuit was built.
Besides address lines, it's also worth checking that the data lines don't have any wires crossed. A good way to check is by having the VIC-20 transmit (you said transmit seems to work) 0x01, 0x02, 0x04, 0x08, 0x10 etc to see if they arrive intact at the other end. This is a better test than eyeballing the schematic and doc (which conceivably may have a typo).
Quote:
I get occasional mismatches between what I write and what I read.
This too could perhaps be the result of accessing a different register than intended (since, as noted, most have split personalities for read and write). I admit this part sounds unlikely. Instead might there be a flaky (intermittent) connection somewhere?
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html