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