[comp.sys.amiga] Synchronizing Basic & C via messages

john13@garfield.UUCP (John Russell) (01/18/88)

A seemingly undocumented function of modem operation under Amigabasic is its
automatic flow control -- a ^S from the other end can lock up a terminal or
BBS program that's written in Basic, with no hope of recovery unless the other
side sends a ^Q. This reminds me of the old PAR: <-> PRT: problems, the driver
does _more_ than you want it to on certain occasions.

This has only recently become a problem; a certain assh*le has decided to cause
problems for a local BBS by calling in and doing this, and at 2400 baud which
means not just anyone can "unlock" the system by calling in.

What I would like to do is to set up a running C program that would be
signalled by the Basic program, and would then print a string to the serial
port. The flow control only takes effect if you write to the serial port from
Basic.

I have the C code for this pretty much done, aside from a few details that
depend on input from the Basic program (eg what baud rate to open the serial
device, is the address of the string static or passed for each write via a
message).

Does anyone have examples of a similar implementation, whereby a Basic program
signals a task? I'm thinking in terms of how the various structures are
defined, and the best way to encode data that the task might need. Since this
would have to be called for every character to be echoed back it would need
to be very efficient.

Please send any replies dealing with the C aspect of this scheme to me
(john13@garfield.uucp, ...utai!garfield!john13), and any information on an
implementation of the Basic side to joseph@garfield. It's important that this
be finished quickly since the board is currently not very safe from a
deliberate attack via this method.

John
-- 
"Let's get those teabags outta here and replace them with some REAL Americans!"
			-- (Canadian) Paul Schaeffer has members of the British
			   nobility physically ejected from the Late Night crowd