[comp.sys.atari.st] Reliable 9600 bps... ?

FXDDR@ALASKA.BITNET (Don Rice UAF CSG-West Ridge) (06/11/88)

I'm doing some data logging with the ST, collecting binary data from a
9600 bps serial source and storing it.  The data comes in short bursts
(a few K) with long pauses between them.

The program I wrote sets the iorec to 30K, much larger than I'll need,
and uses Bconin and Bconstat to read in the data.  It works fine for short
bursts, but when the bursts are longer (1-2K or more) a few bytes are
lost from each burst.  After checking around it appears that the missing
bytes are being missed by the interrupt routine and are never making it
to the iorec.  The program is very simple...no exotic interrupts or timers,
just capturing a burst and writing it to disk.

So it would appear that the RS-232 handler is a bit too slow to run at
9600 bps continuously.  However, when I use UniTerm in DCM mode, no bytes
are lost from the burst.  Apparently Simon is dealing with the problem.
It looks easy enough...a very short assembler routine installed by a call
to mfpint.  What I haven't found yet is the "correct" way to find and
save the pointer to the original RS-232 handler so that it can be restored
afterwards.  I'd hoped that mfpint might return the original but that
doesn't seem to happen.

Any solutions or suggestions would be appreciated.

Thanks,
Don Rice
FXDDR@ALASKA.bitnet