minow@decvax.UUCP (Martin Minow) (11/09/83)
Here is the communication line strategy we are using in DECtalk. The communications line input buffer (before any command parsing) is 256 + 64 bytes long. When 64 bytes have been stored in the buffer, the terminal device handler sends XOFF to the host. There is then room for about 1/4 second of data at the maximum line data rate of 9600 Baud. When there are fewer than 16 bytes left in the buffer, the device handler sends XON to the host. The NUL character (Ascii 00) is discarded immediately on input; it is never stored in the buffer. Sending XOFF/XON is done outside the normal output buffering mechanism -- if they are to be sent, they will be the next character written to the device UART. Running along side of all of this is a finite state machine that watches the modem control inputs (CTS, DCD, DSR) and generates the appropriate modem control output signals (RTS, DTR). This machine is normally driven by change of state interrupts from the UART; however, it is also driven by timers in some cases (to handle the 2 second minimum DSR true/DSR false/DSR true requirement of modems in the UK, and the 500 ms. and 30 sec. disconnect watchdogs required to prevent screwing up modems in Germany. A combination of change of state interrupts and a timer handle the 2 second DCD negated before disconnect requirement. Modem control signals (DTR, DSR) are NEVER used for flow control, because this will hang up any device that properly implements the CCITT modem control standards. Sadly, many devices in the United States do not work properly. Martin Minow Dave Conroy decvax!minow decvax!dgc PS: JSOL, feel free to reprint this in TELECOM.
jlw@ariel.UUCP (11/11/83)
If you delete ASCII nulls from the stream before they are buffered, how do you add the necessary delays so that terminals can recover from long operations such as screen clearing, usw? Are these delays built into the final driver? Can they be changed? How about a 'termcap' like capability? Joseph L. Wood, III AT&T Information Systems Laboratories, Holmdel (201) 834-3759 ariel!jlw