mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 06:22:25 +00:00
173 lines
4.2 KiB
Modula-2
173 lines
4.2 KiB
Modula-2
MODULE crt;
|
|
|
|
IMPORT VT100, Platform, Out, Strings;
|
|
|
|
CONST
|
|
|
|
(* Foreground and background color constants *)
|
|
Black* = 0;
|
|
Blue* = 1;
|
|
Green* = 2;
|
|
Cyan* = 3;
|
|
Red* = 4;
|
|
Magenta* = 5;
|
|
Brown* = 6;
|
|
LightGray* = 7;
|
|
|
|
(* Foreground color constants *)
|
|
DarkGray* = 8;
|
|
LightBlue* = 9;
|
|
LightGreen* = 10;
|
|
LightCyan* = 11;
|
|
LightRed* = 12;
|
|
LightMagenta* = 13;
|
|
Yellow* = 14;
|
|
White* = 15;
|
|
|
|
(* Add-in for blinking *)
|
|
Blink* = 128;
|
|
|
|
PROCEDURE EraseDisplay*;
|
|
BEGIN
|
|
VT100.ED(2);
|
|
END EraseDisplay;
|
|
|
|
PROCEDURE ClrScr*;
|
|
BEGIN
|
|
VT100.ED(2);
|
|
END ClrScr;
|
|
|
|
PROCEDURE ClrEol*;
|
|
BEGIN
|
|
VT100.EL(0);
|
|
END ClrEol;
|
|
|
|
PROCEDURE cursoroff*;
|
|
BEGIN
|
|
VT100.DECTCEMl;
|
|
END cursoroff;
|
|
|
|
PROCEDURE cursoron*;
|
|
BEGIN
|
|
VT100.DECTCEMh;
|
|
END cursoron;
|
|
|
|
PROCEDURE Delay*(ms: INTEGER);
|
|
BEGIN Platform.Delay(ms) END Delay;
|
|
|
|
PROCEDURE GotoXY* (x, y: INTEGER);
|
|
BEGIN
|
|
VT100.CUP (y, x);
|
|
END GotoXY;
|
|
|
|
PROCEDURE HighVideo*;
|
|
VAR tmpstr: ARRAY 5 OF CHAR;
|
|
BEGIN
|
|
COPY (VT100.CSI, tmpstr);
|
|
Strings.Append(VT100.Bold, tmpstr);
|
|
Out.String(tmpstr);
|
|
END HighVideo;
|
|
|
|
PROCEDURE DelLine*;
|
|
BEGIN
|
|
VT100.EL(2);
|
|
END DelLine;
|
|
|
|
PROCEDURE InsLine*;
|
|
BEGIN
|
|
VT100.SCP;
|
|
Out.Ln;
|
|
VT100.RCP;
|
|
END InsLine;
|
|
|
|
PROCEDURE LowVideo*;
|
|
VAR tmpstr : ARRAY 7 OF CHAR;
|
|
BEGIN
|
|
COPY (VT100.CSI, tmpstr);
|
|
Strings.Append(VT100.ResetBold, tmpstr);
|
|
Out.String(tmpstr);
|
|
END LowVideo;
|
|
|
|
PROCEDURE NormVideo*;
|
|
VAR tmpstr : ARRAY 7 OF CHAR;
|
|
BEGIN
|
|
COPY(VT100.CSI, tmpstr);
|
|
Strings.Append(VT100.ResetAll, tmpstr);
|
|
Out.String(tmpstr);
|
|
END NormVideo;
|
|
|
|
PROCEDURE TextBackground*(color : SHORTINT);
|
|
BEGIN
|
|
IF color = Black THEN
|
|
VT100.SetAttr(VT100.BBlack)
|
|
ELSIF color = Blue THEN
|
|
VT100.SetAttr(VT100.BBlue)
|
|
ELSIF color = Green THEN
|
|
VT100.SetAttr(VT100.BGreen)
|
|
ELSIF color = Cyan THEN
|
|
VT100.SetAttr(VT100.BCyan)
|
|
ELSIF color = Red THEN
|
|
VT100.SetAttr(VT100.BRed)
|
|
ELSIF color = Magenta THEN
|
|
VT100.SetAttr(VT100.BMagenta)
|
|
ELSIF color = Brown THEN
|
|
VT100.SetAttr(VT100.BYellow)
|
|
ELSIF color = LightGray THEN
|
|
VT100.SetAttr(VT100.BLightGray)
|
|
ELSIF color = DarkGray THEN
|
|
VT100.SetAttr(VT100.BDarkGray)
|
|
ELSIF color = LightBlue THEN
|
|
VT100.SetAttr(VT100.BLightBlue)
|
|
ELSIF color = LightGreen THEN
|
|
VT100.SetAttr(VT100.BLightBlue)
|
|
ELSIF color = LightCyan THEN
|
|
VT100.SetAttr(VT100.BLightCyan)
|
|
ELSIF color = LightRed THEN
|
|
VT100.SetAttr(VT100.BLightRed)
|
|
ELSIF color = LightMagenta THEN
|
|
VT100.SetAttr(VT100.BLightMagenta)
|
|
ELSIF color = Yellow THEN
|
|
VT100.SetAttr(VT100.BLightYellow)
|
|
ELSIF color = White THEN
|
|
VT100.SetAttr(VT100.BWhite)
|
|
END;
|
|
END TextBackground;
|
|
|
|
PROCEDURE TextColor*(color : SHORTINT);
|
|
BEGIN
|
|
IF color = Black THEN
|
|
VT100.SetAttr(VT100.Black)
|
|
ELSIF color = Blue THEN
|
|
VT100.SetAttr(VT100.Blue)
|
|
ELSIF color = Green THEN
|
|
VT100.SetAttr(VT100.Green)
|
|
ELSIF color = Cyan THEN
|
|
VT100.SetAttr(VT100.Cyan)
|
|
ELSIF color = Red THEN
|
|
VT100.SetAttr(VT100.Red)
|
|
ELSIF color = Magenta THEN
|
|
VT100.SetAttr(VT100.Magenta)
|
|
ELSIF color = Brown THEN
|
|
VT100.SetAttr(VT100.Yellow)
|
|
ELSIF color = LightGray THEN
|
|
VT100.SetAttr(VT100.LightGray)
|
|
ELSIF color = DarkGray THEN
|
|
VT100.SetAttr(VT100.DarkGray)
|
|
ELSIF color = LightBlue THEN
|
|
VT100.SetAttr(VT100.LightBlue)
|
|
ELSIF color = LightGreen THEN
|
|
VT100.SetAttr(VT100.LightBlue)
|
|
ELSIF color = LightCyan THEN
|
|
VT100.SetAttr(VT100.LightCyan)
|
|
ELSIF color = LightRed THEN
|
|
VT100.SetAttr(VT100.LightRed)
|
|
ELSIF color = LightMagenta THEN
|
|
VT100.SetAttr(VT100.LightMagenta)
|
|
ELSIF color = Yellow THEN
|
|
VT100.SetAttr(VT100.LightYellow)
|
|
ELSIF color = White THEN
|
|
VT100.SetAttr(VT100.White)
|
|
END;
|
|
END TextColor;
|
|
|
|
END crt.
|