>> How to do it in code: >> >> If using hardware flow control, check RTS, if raised, raise CTS >> and start a timer for 1-3 msecs. > aren't RTS & CTS the wrong way round above? Which way 'round depends. RS-232 is not symmetrical. Is the PIC implementing RS-232 DTE (data terminal equipment, e.g. a PC) or DCE (data circuit-terminating equipment, e.g. modem)? In a DTE device, RTS (request to send) is an output which is asserted when the device wants to transmit. CTS (clear to send) is an input which is asserted by the other end (communications equipment) when it's OK to begin transmitting. In a DCE device, RTS is an input and CTS is an output. When dealing with RS-232 devices, you always have to keep the DTE/DCE distinction in mind. RTS & CTS go back to half-duplex communication systems. The modem actually needed the RTS signal to known when to disable it's demodulator and enable it's modulator. The modem would raise CTS when it was ready to begin transmitting data. This took 50-100 milliseconds. Then "fast turn-around" modems were developed that only took 8 milliseconds. Once high speed full-duplex models became economically feasible, the whole point became moot. And RTS/CTS started being used as a hardware flow control technique for locally connected devices. Lee Jones P.S. Another common hardware flow control is based on DTR (data terminal ready, DTE output) & DSR (data set ready, DTE input). ------------------------------------------------------------------- Jones Computer Communications lee@frumble.claremont.edu 509 Black Hills Dr, Claremont, CA 91711 voice: 909-621-9008 -------------------------------------------------------------------