For no particular reason, I'd like to finish up a problem I discovered 30 years ago, but never did anything about fixing. It involves the Commodore Plus/4 computer, which some may recall was the only CBM computer that had a real 6551 ACIA instead of bit-banging RS232. Because of a programming error in rom, null bytes could not be received. Any null byte coming in from the modem would be added to the input queue as a duplicate of the most recent non-null byte. That would make file transfers virtually impossible.
In addition, the rom provides for a single-byte transmit queue, and if my understanding of the 6551 interrupt process is correct, there would be back-to-back double interrupts generated for each transmitted byte. And finally, transmit interrupts are left running all the time, which at high baud rates would leave the computer little time to do anything else.
Of course nobody is still using a Plus/4 (never did really), but I was curious whether I could write an alternate IRQ servicing routine that would solve these problems. Just because. Anyway, I have a couple of test programs I need somebody to run on a Plus/4 for me and report the results.
It's amazing to me that CBM went to such trouble and expense to include a 6551 in this machine, but did such a lousy job in the servicing code. It's as though they never even tested it.