DEFINITION MODULE FOR "C" tvtty; (* Minimal libc binding used by the terminal backend. This is the only non-Modula-2 dependency of the TVision-style library: the ISO language has no way to put a tty in raw mode or to query its size, so we call tcgetattr/tcsetattr/ioctl/read/write directly. Everything else is plain GNU Modula-2. *) FROM SYSTEM IMPORT ADDRESS; EXPORT UNQUALIFIED tcgetattr, tcsetattr, ioctl, read, write, signal, fopen, fgets, fputs, fputc, fclose; PROCEDURE tcgetattr(fd : INTEGER; termios : ADDRESS) : INTEGER; PROCEDURE tcsetattr(fd, action : INTEGER; termios : ADDRESS) : INTEGER; PROCEDURE ioctl(fd : INTEGER; request : CARDINAL; arg : ADDRESS) : INTEGER; PROCEDURE read(fd : INTEGER; buf : ADDRESS; count : CARDINAL) : INTEGER; PROCEDURE write(fd : INTEGER; buf : ADDRESS; count : CARDINAL) : INTEGER; PROCEDURE signal(sig : INTEGER; handler : ADDRESS) : ADDRESS; PROCEDURE fopen(path, mode : ARRAY OF CHAR) : ADDRESS; PROCEDURE fgets(buf : ADDRESS; n : INTEGER; f : ADDRESS) : ADDRESS; PROCEDURE fputs(s : ARRAY OF CHAR; f : ADDRESS) : INTEGER; PROCEDURE fputc(c : INTEGER; f : ADDRESS) : INTEGER; PROCEDURE fclose(f : ADDRESS) : INTEGER; END tvtty.