DigitalDunc wrote:
Well, My hardware works but I used the W65C51 and wish I'd used something else. The damn things as buggy as a jungle. Any suggestions?
As Garth noted, the TxD status bit is stuck, which means interrupt-driven transmission is going to be a problem. There is discussion around here on workarounds involving delay loops in the transmit code. As far as is known, the stuck TxD status bit errata is unique to the WDC version of the 65C51. The older Rockwell 65C51, which can be gotten through eBay and other sources, works as advertised but is constrained to a relatively low Ø2 clock rate. That, of course, shouldn't be an issue for you at this stage of your project.
Something for future thought is that there is a wide variety of UARTs that can be interfaced to the 65xx bus. I and several others have used the NXP UARTs, such as the 26C92 and 28L92, both dual channel units. Another member, André Fachat, has used the 16C550, which is the UART often found in PC hardware. Maxim makes a number of UARTs as well. So your options are not limited by any means, and these non-65xx UARTs are known to be bug-free and generally perform better than the 65C51.