The other thread also reminded me that CTS rising cuts off a transmitted byte if one is being transmitted. At least that is "easily" fixed, as suggested in the other thread, wire the incoming CTS to DSR instead, and poll DSR in the driver instead.
Code:
SERTX: PHA
; whatever TXRDY bugfix here
SERLP2: LDA ACIASTATUS
AND #%01000000 ; Read CTS via DSR line
BNE SERLP2
PLA
STA ACIADATA
RTS
|
TxD+---------->- TXD
|
DSR+--<--+
| |
CTS+--0v +----<- CTS
|
Edit: Being bit 6 could even do BIT ACIASTATUS:BVS SERLP2