I got xon/xoff flow control working in "dl -b" and disabled the per-byte sleep by default. It loads way faster now, the same as cat.

Now in bootstrap, by default it changes default baud to 9600, enables xon/xoff, no extra per-byte delay. All still overridable from the command line. And the BASIC prep prompt reflects whatever the actual baud in effect at the time is.

Outside of bootstrap, default baud is 19200, and neither xonoff nor rtscts is enabled, and only rtscts is possible to be enabled. (remember the server may serve other clients besides a 100)

Thanks for prodding me about that because man it's way faster now.

And not just that, but with the recent updates to co2ba, I was generating new basic code that was failing to load even with 8ms per byte extra delay. Even 10ms failed! Yet at the same time a plain cat at 9600 always worked perfect with the same file and zipped through in 7 seconds.

Now the bootstrapper in dl is working the same as cat, only with the dl extras like the progress display, serial setup, auto trailing ^Z only if needed, BASIC prep prompt.


--
bkw

On 3/10/26 22:31, B 9 wrote:
Nifty! I had been thinking about how to encode NULLs in a single byte since they are so much more common, but hadn’t known about the yEnc offset. Doing some histogram analysis on the most easily available batch <https://github.com/hackerb9/co2do/tree/histogram/histogram/kurtdekker/ co> of .CO files, it does not look like 42 is an optimal offset. I like the idea of a bespoke offset! Here’s a sample of a program which can determine that for you for a single .CO file or a whole directory of them: histco.py <https://github.com/hackerb9/co2do/blob/histogram/ histogram/histco.py>:

|$ ./histogram/histco.py testfiles/ALTERN.CO <http://ALTERN.CO> Unrotated: 4758 bytes. Can save 956 bytes (20.09%) Rotation +143 => 3802 bytes. Rotation of +42 would save 871 bytes (18.31%) |

|$ cd histogram/kurtdekker/co/ $ ../../histco.py Unrotated: 111237 bytes. Can save 18353 bytes (16.50%) Rotation +136 => 92884 bytes. Rotation of +42 would save 6696 bytes (6.02%) |

—b9

P.S. A possible lesson for us on rolling our own encoding: Searching for sample .CO files to test with my histogram program, I found a ZIP file of Kurt Dekker’s games on Bitchin 100 <https://bitchin100.com/m100-oss/ archive.html>. Kurt actually released those in his own DEC format <https://github.com/hackerb9/co2do/blob/histogram/histogram/kurtdekker/ util/FTU.TXT>. I downloaded the link labeled “everything in one BIG zip”, but it did not include any .CO files, so I rolled my own dec2co.sh <https://github.com/hackerb9/co2do/blob/histogram/histogram/kurtdekker/ dec2co.sh> program. Later, when I found that bitchin100 /did/ have the .CO files, merely misfiled. I was rather surprised to see that three of them did not exactly match mine. It seems there’s a bug in the tool Kurt released (FTU.BAS <https://github.com/hackerb9/co2do/blob/ histogram/histogram/kurtdekker/util/FTU.BAS>) which occasionally causes it to emit bytes beyond the length specified in the .CO file header.


On Mon, Mar 9, 2026 at 3:24 PM Brian K. White <[email protected] <mailto:[email protected]>> wrote:

    On 3/9/26 14:03, Brian K. White wrote:
     > Wow, I haven't tested this enough to push it up to github yet (I
    haven't
     > even tried loading the result on a 100 yet to make sure it actually
     > decodes correctly) but I think I just reduced the output .DO size
    from
     > 5305 to 4378 just by applying a static offset to all bytes before
    encoding.
     >
     > Almost a whole 1K out of 5 just from that!

    Ran ok. The decode time stayed the same, but the transfer time went
    down
    and the ram used went down of course.

-- bkw



--
bkw

Reply via email to