var
endofline : [STATIC] VARYING[2] of char;
BEGIN
endofline.body[1] := chr(carriagereturn);
endofline.body[2] := chr(linefeed);
endofline.length := 2;
putstringtoterminal(endofline, cursorrow, cursorcolumn, false, false);
positioncursor(cursorrow + 1, 1)
END;
[GLOBAL] PROCEDURE ttyreadln( VAR string : VARYING [limit] of char );
FUNCTION LIB$GET_SCREEN(VAR inputtext : VARYING [lim1] OF CHAR;
promptstring : VARYING [lim2] OF CHAR; VAR outlen : wordinteger := %IMMED 0) : integer; extern;
VAR
len : wordinteger;
prompt : [STATIC] VARYING [2] OF CHAR := '>';
BEGIN
terminalerror := lib$get_screen(string, prompt, len);
ttywriteln
END;
[GLOBAL] PROCEDURE findcursor( var line, column : integer );
BEGIN
line := cursorrow;
column := cursorcolumn;
END;
[GLOBAL] FUNCTION terminalerrorcode : integer;
BEGIN
terminalerrorcode := terminalerror;
END;
[GLOBAL] PROCEDURE ttywritestring( string : VARYING [limit] OF CHAR);
BEGIN
putstringtoterminal(string, cursorrow, cursorcolumn, false, false);
END;
[GLOBAL] PROCEDURE ttywriteint( int : integer );
const
maxintchars = 20;
var
s : varying[maxintchars] of char;
BEGIN
writev(s, int:1);
ttywritestring( s )
END;
[GLOBAL] PROCEDURE ttywritereal( floating : real; fieldwidth,
ndigits : integer);
const
maxfieldwidth = 30;
var
s : varying[maxfieldwidth] of char;
BEGIN
writev(s, floating:fieldwidth:ndigits);
ttywritestring( s )
END;