Modula-2 || Compiler & Tools || Library || Search Engine
CONST (* input modes *) ignbrk = { 31 }; (* ignore break condition *) brkint = { 30 }; (* signal interrupt on break *) ignpar = { 29 }; (* ignore characters with parity errors *) parmrk = { 28 }; (* mark parity errors *) inpck = { 27 }; (* enable input parity check *) istrip = { 26 }; (* strip character *) inlcr = { 25 }; (* map NL to CR on input *) igncr = { 24 }; (* ignore CR *) icrnl = { 23 }; (* map CR to NL on input *) iuclc = { 22 }; (* map upper-case to lower-case on input *) ixon = { 21 }; (* enable start/stop output control *) ixany = { 20 }; (* enable any character to restart output *) ixoff = { 19 }; (* enable start/stop input control *) (* output modes *) opost = { 31 }; (* postprocess output *) olcuc = { 30 }; (* map lower case to upper on output *) onlcr = { 29 }; (* map NL to CR-NL on output *) ocrnl = { 28 }; (* map CR to NL on output *) onocr = { 27 }; (* no CR output at column 0 *) onlret = { 26 }; (* NL performs CR function *) ofill = { 25 }; (* use fill characters for delay *) ofdel = { 24 }; (* fill is DEL, else NUL *) (* delays for newline *) nldly = { 23 }; (* mask for new-line delays *) nl0 = { }; nl1 = { 23 }; (* delays for carriage return *) crdly = { 21, 22 }; (* mask *) cr0 = { }; cr1 = { 22 }; cr2 = { 21 }; cr3 = { 21, 22 }; (* delays for tabs *) tabdly = { 19, 20 }; (* mask *) tab1 = { 20 }; tab2 = { 19 }; tab3 = { 19, 20 }; (* expand tabs to spaces *) (* delays for backspaces *) bsdly = { 18 }; (* mask *) bs0 = { }; bs1 = { 18 }; (* delays for vertical tabs *) vtdly = { 17 }; (* mask *) vt0 = { }; vt1 = { 17 }; (* delays for form feeds *) ffdly = { 16 }; ff0 = { }; ff1 = { 16 }; (* control modes *) cbaud = { 28..31 }; (* mask *) b0 = {}; b50 = { 31 }; b75 = { 30 }; b110 = { 29, 30 }; b134 = { 29 }; b150 = { 29, 31 }; b200 = { 29, 30 }; b300 = { 29..31 }; b600 = { 28 }; b1200 = { 28, 31 }; b1800 = { 28, 30 }; b2400 = { 28, 30, 31 }; b4800 = { 28, 29 }; b9600 = { 28, 29, 31 }; exta = { 28..30 }; extb = { 28..31 }; csize = { 26, 27 }; (* mask for character size *) cs5 = {}; cs6 = { 27 }; cs7 = { 26 }; cs8 = { 26, 27 }; cstopb = { 25 }; (* send two stop bits, else one *) cread = { 24 }; (* enable receiver *) parenb = { 23 }; (* parity enable *) parodd = { 22 }; (* odd parity, else even *) hupcl = { 21 }; (* hang up on last close *) clocal = { 20 }; (* local line, else dial-up *) (* line modes *) isig = { 31 }; (* enable signals *) icanon = { 30 }; (* canonical input (erase and kill processing) *) xcase = { 29 }; (* canonical upper/lower presentation *) echo = { 28 }; (* enable echo *) echoe = { 27 }; (* echo erase character as BS-SP-BS *) echok = { 26 }; (* echo NL after kill character *) echonl = { 25 }; (* echo NL *) noflsh = { 24 }; (* disable flush after interrupt or quit *) TYPE ControlChars = (vintr, vquit, verase, vkill, veof, veol, veol2, vswtch); CONST vmin = veof; vtime = veol; TYPE ControlCharsRange = [MIN(ControlChars)..MAX(ControlChars)]; TYPE InputModes = BITSET; TYPE OutputModes = BITSET; TYPE ControlModes = BITSET; TYPE LineModes = BITSET; TYPE TermIO = RECORD inputmodes: InputModes; outputmodes: OutputModes; controlmodes: ControlModes; linemodes: LineModes; linedisc: CHAR; cc: ARRAY ControlCharsRange OF CHAR; END; PROCEDURE SetTermIO(fd: CARDINAL; termio: TermIO) : BOOLEAN; PROCEDURE GetTermIO(fd: CARDINAL; VAR termio: TermIO) : BOOLEAN; PROCEDURE Baudrate(termio: TermIO) : CARDINAL;
Modula-2 || Compiler & Tools || Library || Search Engine