[comp.unix.xenix.sco] RTS/CTS-flow

news@norlin.se (news) (06/10/91)

I know this subject has been up before, but I still don't know the answer.
Probably most answers has been e-mailed to the poster directly.

  How can I use RTS/CTS-flow under SCO Xenix 2.3.3?

I think I know that the standard serial device drivers don't support 
hardware flow control, so...where can I get some that really does?

I am very greatful for all help I can get...


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* Stefan Norlin, Forma Data AB *                                              *
* Box 202, 126 02  HAGERSTEN   *   Nothing compares to a good ..ck!           *
* SWEDEN                       *   Ooops! Should be "hack", of course...:-)   *
* stefan@norlin.se             *                                              *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 

curt@cynic.wimsey.bc.ca (Curt Sampson) (06/11/91)

In article <108@norlin.se> news@norlin.se (news) writes:

>   How can I use RTS/CTS-flow under SCO Xenix 2.3.3?
> 
> I think I know that the standard serial device drivers don't support 
> hardware flow control, so...where can I get some that really does?

The sio driver in SCO Xenix 2.3.2 does support RTS/CTS flow control,
though in a different way than you might be used to.  (This is
probably true of all versions of SCO Xenix.)

The RTS/CTS control flow, when turned on, is implemented as follows:
When the computer has data to send it will raise RTS.  The computer
will then wait for the modem to raise CTS to indicate that the
modem is ready to receive data.  The computer will send data as
long as CTS is asserted, until it runs out of data, at which point
it will lower RTS until it has more data to send.

Obviously, this is only unidirectional flow control, with the modem
controlling the computer.  The CTS protocol can be turned on by
setting CTSFLOW, either by an "stty ctsflow" or by adding CTSFLOW
to the entry for that terminal type in the /etc/gettydefs file.
(Make sure you add it to the final-flags section as well as the
initial-flags section.) RTS can be enabled in the same way using
RTSFLOW.

This will do the job for most modems.  If you have a slower system,
though, you may need to implement bidirectional flow control.  CTS
is used in the same way, but the computer asserts RTS when it is
ready to receive data.  The modem will not send when RTS is not
asserted.  The standard SCO sio driver does not support this mode,
unfortunately.  Fortunately, though, there is a serial driver known
as FAS (Final Async Solution) that supports this bidirectional
RTS/CTS flow control as well as the more traditional SCO sio method
of flow control.  As an added bonus, it will also utilise the FIFO
buffers in your NS16550A UARTs, if you have them.  (If you have a
high-speed modem and you don't have it on an intelligent serial
board, you should have one of these.)

FAS does seem to have a problem with DTR.  The details of that are
available in a post I made here recently.  Hopefully that will be
resolved soon.

To find out where to get FAS via FTP, use archie.  Just telnet
quiche.cs.mcgill.edu and login as "archie".

cjs
-- 
                        | "This sound system comes to you with fuel injection.
Curt Sampson            |  Toes tapping, the unthinking masses dance to a new
curt@cynic.uucp         |  tune. . . . Undress yourself to this bastard.  Suck
curt@cynic.wimsey.bc.ca |  on this plan of noise, bimbo!"       --Gary Clail