floobydust wrote:
Well, as for a drop-in replacement of the 6551, I can't ever see that happening. The same goes for the register set as well, unless someone opted to make something custom... and I don't see that happening either. Even trying to build up a drop-in PCB with SMT logic would be difficult as the 6551 only uses 2 address lines and most modern UARTs have at least 3 address lines.
Well, as a stepping stone, I have created a 6551 plug in module that adds 230K, 115K, and 57.6K to the device without changing the footprint or the register numbers.
It uses a CPLD to redefine one of the registers (the bps rate reg)It extends the baud rate selection bits by 1 bit, using up the RXC bit and turning it into another 16 bps rate selections. I use 3 of them for the additional bps rates, storing them in the CPLD but sending 'b10000 to the 6551 so it uses the /16 bps rate setting. I then use the internally stored bits to set the divisor of the counter that feeds the XTAL pin on the 6551 to set the correct rate.
I also use bps rate 'b00000 to "lock" the bps rate if you want to set a faster rate and then use an older program. Setting the correct bps rate and then "locking" it will prevent any attempts to write to the register until unlocked or hard reset.
The above requires a 6551A as a minimum to be plugged into it, but can fit it in any 6551 socket.
Still no FIFOs and such, but it's a start.
Jim