| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- DEFINITION MODULE Ansi;
- (*
- ANSI escape sequences per docs/VT100-3.txt, docs/VT100.txt.
- Modern terminal superset: CSI cursor/erase/SGR/colors,
- DOS screen modes ESC[=, private modes ESC[?, print.
- Pure emitter, same pattern as VT100/VT52, plus
- Unbuffered/Buffered input-mode helpers (termios).
- *)
- TYPE
- Attr = (ResetA, BoldA, DimA, ItalicA, UnderlineA, BlinkA,
- InverseA, HiddenA, StrikeA);
- Color = (Black, Red, Green, Yellow, Blue, Magenta, Cyan, White,
- Default,
- BrightBlack, BrightRed, BrightGreen, BrightYellow,
- BrightBlue, BrightMagenta, BrightCyan, BrightWhite);
- (* Cursor *)
- PROCEDURE Home; (* ESC[H *)
- PROCEDURE Position(line, col : CARDINAL); (* ESC[line;colH *)
- PROCEDURE HVPosition(line, col : CARDINAL); (* ESC[line;colf *)
- PROCEDURE Up(n : CARDINAL); (* ESC[nA *)
- PROCEDURE Down(n : CARDINAL); (* ESC[nB *)
- PROCEDURE Right(n : CARDINAL); (* ESC[nC *)
- PROCEDURE Left(n : CARDINAL); (* ESC[nD *)
- PROCEDURE NextLine(n : CARDINAL); (* ESC[nE *)
- PROCEDURE PrevLine(n : CARDINAL); (* ESC[nF *)
- PROCEDURE ToColumn(n : CARDINAL); (* ESC[nG *)
- PROCEDURE CursorUpScroll; (* ESC M *)
- PROCEDURE SaveDEC; (* ESC 7 *)
- PROCEDURE RestoreDEC; (* ESC 8 *)
- PROCEDURE SaveSCO; (* ESC[s *)
- PROCEDURE RestoreSCO; (* ESC[u *)
- PROCEDURE RequestPosition; (* ESC[6n *)
- (* Erase *)
- PROCEDURE EraseDown; (* ESC[J / ESC[0J *)
- PROCEDURE EraseUp; (* ESC[1J *)
- PROCEDURE EraseScreen; (* ESC[2J *)
- PROCEDURE EraseSavedLines; (* ESC[3J *)
- PROCEDURE EraseLineRight; (* ESC[K / ESC[0K *)
- PROCEDURE EraseLineLeft; (* ESC[1K *)
- PROCEDURE EraseLine; (* ESC[2K *)
- (* SGR attributes *)
- PROCEDURE SGR(a : Attr);
- PROCEDURE SGRReset; (* ESC[0m *)
- PROCEDURE SGRResetBoldDim; (* ESC[22m *)
- PROCEDURE SGRResetItalic; (* ESC[23m *)
- PROCEDURE SGRResetUnderline;(* ESC[24m *)
- PROCEDURE SGRResetBlink; (* ESC[25m *)
- PROCEDURE SGRResetInverse; (* ESC[27m *)
- PROCEDURE SGRResetHidden; (* ESC[28m *)
- PROCEDURE SGRResetStrike; (* ESC[29m *)
- PROCEDURE SetAttr(a : Attr; fg, bg : Color); (* ESC[a;fg;bgm *)
- (* Colors *)
- PROCEDURE FG(c : Color); (* ESC[30..37/90..97/39m *)
- PROCEDURE BG(c : Color); (* ESC[40..47/100..107/49m *)
- PROCEDURE FG256(id : CARDINAL); (* ESC[38;5;IDm *)
- PROCEDURE BG256(id : CARDINAL); (* ESC[48;5;IDm *)
- PROCEDURE FGRGB(r, g, b : CARDINAL); (* ESC[38;2;r;g;bm *)
- PROCEDURE BGRGB(r, g, b : CARDINAL); (* ESC[48;2;r;g;bm *)
- (* DOS screen modes ESC[= *)
- PROCEDURE DosMode(v : CARDINAL); (* ESC[=vh, 0..7,13..19 *)
- PROCEDURE DosModeReset(v : CARDINAL); (* ESC[=vl *)
- PROCEDURE WrapOn; (* ESC[=7h *)
- PROCEDURE WrapOff; (* ESC[=7l, spec exception *)
- (* Private modes ESC[? *)
- PROCEDURE CursorInvisible; (* ESC[?25l *)
- PROCEDURE CursorVisible; (* ESC[?25h *)
- PROCEDURE ScreenSave; (* ESC[?47h *)
- PROCEDURE ScreenRestore; (* ESC[?47l *)
- PROCEDURE AltBufferOn; (* ESC[?1049h *)
- PROCEDURE AltBufferOff; (* ESC[?1049l *)
- (* Print *)
- PROCEDURE PrintScreen; (* ESC[i *)
- PROCEDURE PrintLine; (* ESC[1i *)
- PROCEDURE StopLog; (* ESC[4i *)
- PROCEDURE StartLog; (* ESC[5i *)
- (* Control chars *)
- PROCEDURE Bell; (* BEL 07 *)
- PROCEDURE Backspace; (* BS 08 *)
- PROCEDURE HTab; (* HT 09 *)
- PROCEDURE LineFeed; (* LF 10 *)
- PROCEDURE VTab; (* VT 11 *)
- PROCEDURE FormFeed; (* FF 12 *)
- PROCEDURE CarriageReturn; (* CR 13 *)
- (* Terminal input mode: call Unbuffered before reading device
- replies (e.g. CPR) so no RETURN key is needed; call
- Buffered afterwards to restore the saved state. *)
- PROCEDURE Unbuffered;
- PROCEDURE Buffered;
- END Ansi.
|