home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
TURBOM2
/
TELE.LBR
/
TELE.MZD
/
TELE.MOD
Wrap
Text File
|
2000-06-30
|
4KB
|
173 lines
IMPLEMENTATION MODULE Tele;
(* Some graphics functions for the Televideo 955 terminal *)
(* Glenn Brooke 6/18/87 *)
FROM Terminal IMPORT GotoXY;
PROCEDURE GraphicModeOn;
(* turns on graphics characters *)
BEGIN
WRITE(CHR(27),"$")
END GraphicModeOn;
PROCEDURE GraphicModeOff;
(* back to ASCII characters *)
BEGIN
WRITE(CHR(27),"%")
END GraphicModeOff;
PROCEDURE Bell;
BEGIN
WRITE(CHR(7))
END Bell;
PROCEDURE LockKeyboard;
(* prevents keyboard use *)
BEGIN
WRITE(CHR(27),"#")
END LockKeyboard;
PROCEDURE UnlockKeyboard;
(* releases keyboard to user *)
BEGIN
WRITE(CHR(27),'"')
END UnlockKeyboard;
PROCEDURE Columns(x : CARDINAL);
(* select 80 or 132 columns *)
BEGIN
IF x = 132 THEN
WRITE(CHR(27),"[","=","3","h")
ELSE WRITE(CHR(27),"[","=","3","l") (* default is 80 columns *)
END
END Columns;
PROCEDURE EraseToEndOfPage;
(* erases screen from cursor position to end of screen *)
BEGIN
WRITE(CHR(27),"y")
END EraseToEndOfPage;
PROCEDURE HalfIntensity;
BEGIN
WRITE(CHR(27),"[","=","5","h")
END HalfIntensity;
PROCEDURE FullIntensity;
BEGIN
WRITE(CHR(27),"[","=","5","l")
END FullIntensity;
PROCEDURE CharAttribOff;
(* terminal attributes set to not take up a character space *)
BEGIN
WRITE(CHR(27),"F","1")
END CharAttribOff;
PROCEDURE CharAttribOn;
BEGIN
WRITE(CHR(27),"F","0")
END CharAttribOn;
PROCEDURE LightBackground;
BEGIN
WRITE(CHR(27),"b")
END LightBackground;
PROCEDURE DarkBackground;
BEGIN
WRITE(CHR(27),"d")
END DarkBackground;
PROCEDURE CursorAttrib(p : CARDINAL);
(* sets cursor style
p = 0 cursor not displayed
1 blinking block cursor
2 steady block cursor
3 blinking underscore cursor
4 steady underscore cursor *)
BEGIN
WRITE(CHR(27),".");
CASE p Of
0 : WRITE("0") |
1 : WRITE("1") |
2 : WRITE("2") |
3 : WRITE("3") |
4 : WRITE("4") |
ELSE WRITE("2") (* the default *)
END
END CursorAttrib;
PROCEDURE ReverseBackground;
BEGIN
WRITE(CHR(27),"G","4")
END ReverseBackground;
PROCEDURE Underline;
BEGIN
WRITE(CHR(27),"G","8")
END Underline;
PROCEDURE ReverseUnderline;
BEGIN
WRITE(CHR(27),"G","<")
END ReverseUnderline;
PROCEDURE ReverseBlink;
BEGIN
WRITE(CHR(27),"G","6")
END ReverseBlink;
PROCEDURE Invisible;
BEGIN
WRITE(CHR(27),"G","1")
END Invisible;
PROCEDURE BoxScreen(Heavy:Boolean;Bright : Boolean);
(* draws heavy or light, half-intensity or full-intensity
box around entire screen *)
(* --- suggest you call ClearScreen first! *)
VAR i : CARDINAL;
BEGIN
CharAttribOff;
GraphicModeOn;
IF Bright THEN FullIntensity ELSE HalfIntensity END;
(* draw box around screen *)
GotoXY(1,1);
FOR i := 1 TO 78 DO (* top line *)
IF Heavy THEN WRITE("_") ELSE WRITE("p") END;
END;
GotoXY(1,23);
FOR i := 1 TO 78 DO (* bottom line *)
IF Heavy THEN WRITE("_") ELSE WRITE("q") END;
END;
FOR i := 1 TO 23 DO (* left and right sides *)
GotoXY(1,i); IF Heavy THEN WRITE("_") ELSE WRITE("j") END;
GotoXY(78,i); IF Heavy THEN WRITE("_") ELSE WRITE("j") END;
END; (* for *)
GraphicModeOff;
IF NOT(Bright) THEN FullIntensity END;
CharAttribOn
END BoxScreen;
PROCEDURE WriteReversed(s : ARRAY OF CHAR);
(* write string s in reversed mode of background -- good for error msgs *)
BEGIN
CharAttribOff;
ReverseBackground;
WRITE(s);
ReverseBackground;
CharAttribOn
END WriteReversed;
END Tele.