 sttl TTY Structure
 pag

*
* TTY Structure
*
* A tty structure is required for each character type
* i/o device used for standard terminal i/o.
*

* struct tty

 org 0

tqin rmb 2 pointer to in q clist str
tqproc rmb 2 pointer to proccessed q clist str
tqout rmb 2 pointer to out q clist str
taddr rmb 2 device address
tflags rmb 1 mode flags
tdelay rmb 1 time out definitions
tdevic rmb 1 device name
tdel rmb 1 raw delimiter count
tcolm rmb 1 printing column
tbksp rmb 1 back space character
tcncl rmb 1 line cancel character
tbaud rmb 1 device baud rates
tbaud2 rmb 1 actual baud rate (for baud rate generator)
tstate rmb 1 internal state
tstate2 rmb 1 additional states
tconf rmb 1 command register image
tsold rmb 2 amount of output queue already "sold"

TTYSIZ equ *


* modes

RAW equ %00000001 raw or cooked mode
ECHO equ %00000010 echo characters
XTABS equ %00000100 expand tabs
LCASE equ %00001000 map to lower case
CRMOD equ %00010000 map NL to CR & LF
BSECH equ %00100000 backspace echo flag
SCHR equ %01000000 single character input
CNTRL equ %10000000 ignore control characters

* internal states

TIMOUT   equ %00000001 timeout in progress
HOLD     equ %00000010 output suspended
TOPEN    equ %00000100 terminal has been opened
TRANSPNT equ %00001000 Transparent mode
IXONXOF  equ %00010000 Use XON/XOFF to control input
XANY     equ %00100000 Allow any character to break HOLD
XONXOF   equ %01000000 XON/XOFF protocol
ESCOFF   equ %10000000 Disable ESC as HOLD character
*
PROTOCOL equ ESCOFF|XANY|XONXOF|IXONXOF|TRANSPNT

DSR_OK   equ %00000001 OK to send
SEND_XON equ %00000010 Send XON next
SEND_XOF equ %00000100 Send XOFF next
SEND_DLE equ %00001000 Send DLE next
XOF_SENT equ %00010000 We shut the other guy down
DLE_SENT equ %00100000 DLE sequence started
DLE_GOT  equ %01000000 DLE sequence received
