It was thus said that the Great Roger Merchberger once
stated:
Rumor has it that Richard may have mentioned
these words:
OK, in some threads I've seen the curmudgeons
shake their head back
and forth and bemoan how people don't write finely tuned hand assembly
code anymore.
Drivewire for the Tandy CoCo1/2/3 (
http://www.cloud9tech.com.) use
hand-tuned assembly for the serial routines on the bit-banger (one bit of a
PIA, toggled by software) port - they acheive 38400bps on a .89Mhz 6809
(CoCo1/2), and 57600 on a 1.78Mhz 6809 (CoCo3). I've booted NitrOS9 on my
machine, and it's pretty durned quick. Not *quite* as fast as the floppy
drive (and certainly not as fast as the CF memory card I have on the IDE
bus ;-) but awfully handy! (Oh, and check out the SuperBoard project...)
Really? I did the math once and found that 19200 was about the
theoretical maximum one could get on a Coco 1/2---but I suppose if you
unrolled the loop to read a byte you could, maybe, get a bit faster at the
expense of space ... hmm ... as I'm doing it, yes, I think it is possible by
unrolling the loops, but the timing is *very* tight.
The speech in vintage (1980-ish) Williams arcade pieces takes
the same approach -- using the 6809's accumulator to shift
the bits out to the CVSD. As a result, nothing gets done
while the sound card is speaking -- and the quality of the
speech suffers (all to save a 12c shift register :< )
<shrug>
--don