For loaing into BASIC, use a bootstrapper to send the file, which inserts a
delay in between each byte exactly to avoid that problem.

http://github.com/bkw777/tsend for windows
or http://github.com/bkw777/dlplus for anything else.

Loading a file directly into BASIC is not like a normal plain data transfer
that merely copies data, it's essentially typing into the interactive
interpreter, which means the interpreter does work on each byte entered,
and the amount of work varies depending on the code being entered, what
part of a line it is in, what part of a statement it is in, and what kind
of statement, etc.

So some bytes are simply stored and takes no time and it's ready for the
next byte quickly. Some bytes trigger some work behind the scenes and it's
not ready for the next byte for several ms. But the sending side has no way
to know that (the software-only flow control doesn't work well enough) and
just sends bytes without stopping or pausing.

Some serial comm programs have an advanced setting for inserting a delay
between each byte, but only some, and even some that have it, don't apply
it consistently. TeraTerm has a setting for that, but it only applies to
the terminal window, not to file transfers. If you set that setting, and
then used the file transfer dialog to do an ascii transfer, it does not
apply the per-byte sleep. You have to paste the file into the terminal
window to mimic typing it.

I think another way to handle it is just send the file at a lower baud rate
like 4800 or 1200 instead of 19200. But for some reason I've never actually
tried that for loading into BASIC, just when using TELCOM to access another
machine like a bbs, so I can't say for sure if that actually eliminates the
problem reliably.

For loading into BASIC I always use a bootstrapper which is designed just
for that.

Both programs above include a little helper/reminder prompt showing you the
exact RUN:.. command to type in BASIC to receive the file and run it on the
spot, but you can just use LOAD in place of RUN.

And really, I only use a bootstrapper when I want to run-and-discard the
program, generally for installers.

If I just want to copy a file to the 100, I use TPDD. Use the boostrapper
just to install TS-DOS or TEENY or DSKMGR, then use dlplus (link above) or
LaddieAlpha (link below)on the pc side and ts-dos etc on the 100 to
transfer any kind of file in either direction with no worries about baud
rates or corruption or errors.

And really, the even better answer is to get a REX# and have ts-dos in rom
instead of in ram. Installing ts-dos in ram consumes 5k or so of ram. TEENY
is smaller but less convenient.

http://bitchin100.com/wiki/index.php?title=LaddieCon#LaddieAlpha

http://bitchin100.com/wiki/index.php?title=REXsharp

-- 
bkw

On Sat, Oct 22, 2022, 1:33 AM r Gi <[email protected]> wrote:

> I am repeatedly getting a DS ERROR most of the time when I try to load a
> program. It happens a short time after starting the upload. Any help would
> be appreciated
>

Reply via email to