Posted By
GeorgeHug on 2021-11-30 22:51:07
| Re: Could someone run test software for me?
Yes, the 6551 is working as it should, but it's not the 6551 that should turn off interrupts when there's nothing left to send. The IRQ servicing routine should do that. But the Plus/4 Kernal doesn't do that. It just lets the transmit interrupts flow at the byte rate (1920 times per second at 19,200 baud) even if nothing is going on.
The other major shortcoming is that the Kernal provides for a single byte transmit queue - literally the outgoing byte and a flag byte indicating there's a byte to send. So when that second interrupt is triggered, there's NEVER another byte to send. If there was even a 10-byte queue, the terminal software could keep it filled, and transmission would be continuous, with only one interrupt per byte, as God intended. So I thought I would fix what I can. I can't fix the buffer because there's no memory allocated to it. But maybe I can fix the other stuff in case some of the terminal software authors might want to fix their code.
If you're game, I may have a couple more test files to run tomorrow. Thanks very much for helping out.
|