I encountered these issues when trying to speed up IDIOT's serial I/O.
I got to 7200 Bd. with an un-modded IDIOT at 4.91MHz. I wanted to get to
9600 or 19200 Bd. Tried messing around with modded bit-bang serial routines.
big PITA with no noticeable benefit. Finally found that Jameco had a few
CDP1854 UARTS. So Patched IDIOT to talk thru the UART. Got IDIOT working,
Experimented with baud rated and throughput. I got maybe a few percent
faster load times at 9600 with the UART than I did with the bit-banger
at 7200. Plus I had to add a millisecond of inter-character (plus whatever
delay already in the terminal program) to avoid overrun. I concluded that
the limiting factor was CPU throughput, not serial throughput. Note that
with well-crafted code the throughput can be improved. Witness David
4.91 MHz was the fastest I could go with my limited set of oscillators
at hand. My Elf will not run correctly at 9.8304 MHz. I'm running
IDIOT out of a 150-ns. AT28C256. Faster EEPROMS are not as common. That
leaves the hi address latches. The 4042's used in "vintage" designs
are slow. The modern 74HC373 has delays of maybe 1/10 those of the 4042.
Modern RAM is also much faster than the vintage stuff. Research in this
group suggests that 10 MHz is not unreasonable for the CPU clock, and
IDIOT at 9600 Bd. with bit-bang serial is plausible.
Takeaway- use fast parts and juice up the clock!