[Coco] Which version of C?

Gene Heskett gheskett at wdtv.com
Wed Jan 14 20:01:43 EST 2015


On Wednesday, January 14, 2015 07:26:23 PM K. Pruitt did opine
And Gene did reply:
> > On Monday, January 12, 2015 05:08:39 AM K. Pruitt did opine
> 
> > And Gene did reply:
>  <SNIP>
> 
> >> >> But the best optimizer is the human brain. By interrupting the
> >> >> compiler and inspecting the assembly code as it would be sent to
> >> >> c.asm (or rma today) and spend some time looking for bit shift
> >> >> loops that shift by 8 one way or the other, nuke that code and
> >> >> sub a tfr, clear statement pair in its place. That is one of
> >> >> the tricks that took rzsz from just barely keeping up with a
> >> >> 2400 baud modem, aka 240 bytes a second to nearly 720 bytes a
> >> >> second running on a 6309. That, and changing to a table lookup
> >> >> crc which is much faster than calculating it.
> >> >> 
> >> >> Cheers, Gene Heskett
> >> > 
> >> > Wow, Gene, I almost understood about 80% of that.  I normally
> >> > only understand about half of what you're saying.  But I always
> >> > flag your messages as important because even understanding only
> >> > half of what you're talking about is like walking through a gold
> >> > mine with nuggets strewn about just waiting to be picked up. 
> >> > Eventually I'll understand even more of the gems you share here.
> >> >  Thanks for doing so.  I wrote an Xmodem CRC utility for OS-9
> >> > years ago and the math was so extensive and honestly way above
> >> > my head (polynomials?) and that actually helped me understand
> >> > your code optimization comments. I'm still very fond of using
> >> > tables instead of cycle-eating math when I can.
> >> > 
> >> > By the way, my thanks also goes out to Robert Gault and a quite a
> >> > few others here for all the great help you guys share here.
> >> 
> >> Ah!  I had to consult Leventhal's book, but I now get what you're
> >> saying.  I don't think I've ever used the TFR instruction before.
> >> You can bet I'll be playing with it now.
> > 
> > The somewhat funny part of that was that before I started building
> > rzsz for coco's, a fellow named Paul Jerkatis was trying to do it,
> > and failing.
> 
> I was able to do it (xmodem) because I waited for the high speed T2
> drivers to show up.
> 
> I had no idea you wrote rzsz.  I literally used those daily for years
> for all my uploading and downloading. So thanks!

Oh good heavens no!  Chuck Foresburg at Omen Technology wrote that, but 
eventually took it out of Public View about 15 or more years ago.  All I 
really did was make the c.prep Mathew T. wrote and I find tuned, and 
Willard Goosey has further tuned on it, work well enough to keep track of 
a source file conglomeration that totalled something over 34k for either 
rz or sz.

I did do some stuff in my builds that Chuck wasn't doing, mainly beause 
the table lookup method of crc calculations was yet to be published, when 
we acquired the 3.3.6 src's, and some hand optimizations at the assembly 
language point, but with those exceptions, it was all Chucks code, not 
mine.

The table lookup crc method opened the door to doing a whole 256 byte 
packet at once, rather than its present character by character method as 
the characters come in.  So it could then process the whole sectors data 
in one crc call, which would have had to be 30% faster than its current 
byte at a time method, but I never got around to seeing if I could setup 
a couple buffers and try it.  I think it holds promise of at least 
keeping up with a 9600 baud circuit (on a 6309) if it was done that way.

Sadly there are enough "enhancements" to it on other platforms now that 
its difficult to use unless I restrict the transmission window to 256 
bytes.  The Tim K. version seems to be what linux grew up with, and its 
capable of sending 8 kilobyte blocks, which of course overwhelms the coco 
because the 7 wire flow controls don't work anymore.  When it was called 
SACIA on the coco nearly 20 years ago, it worked flawlessly because there 
was some sort of magic in the driver that was triggered by a bit in the 
descriptor, which when combined with a couple cut & pastes in the 232 
packs wiring to work around the fact that the SC6551 is itself, buggier 
than a 10 day old roadkill carcass.  Bruce Isted worked that patch out 
and it worked flawlessly for me in the mid 90's.  My pack has the 
hardware hack already done, so I suppose if I ever get done with the 
current Mahogany and Ebony sawdust project, I should setup something that 
will let me build a recent nitro9 boot, but using the old modules so I 
can check if it still works with the right code.

So many projects, so little remaining time...

As for rzsz, the 3.3.6 srcs are downloadable from my web page, so if 
anybody feels froggy, jump right in. It won't bither me a bot.

Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
US V Castleman, SCOTUS, Mar 2014 is grounds for Impeaching SCOTUS


More information about the Coco mailing list