| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- DEFINITION MODULE Regis;
- (*
- ReGIS vector graphics (DEC VT125/VT240/VT340; xterm built with
- --enable-regis-graphics; contour).
- Grounding: VT330/VT340 Programmer Reference Manual Vol.2, via the
- contour ReGIS reference. Canvas 800x480, origin top-left, Y down.
- [x,y] absolute, signed [+-dx,+-dy] relative. Commands emitted
- uppercase (ReGIS is case-insensitive). Wrap pictures in
- Enter ... Exit (DCS ... ST).
- L (Load charset) intentionally omitted: recognised but not
- rendered by common emulators.
- *)
- PROCEDURE Enter; (* DCS 1 p : reset graphics state + clear canvas *)
- PROCEDURE EnterResume; (* DCS p : resume, keep previous state *)
- PROCEDURE Exit; (* ST : back to text mode *)
- PROCEDURE ScreenErase; (* S(E) *)
- PROCEDURE AddressWindow(x0, y0, x1, y1 : CARDINAL); (* S(A[x0,y0][x1,y1]) *)
- PROCEDURE MoveTo(x, y : CARDINAL); (* P[x,y] absolute, no drawing *)
- PROCEDURE MoveRel(dx, dy : INTEGER); (* P signed relative *)
- PROCEDURE LineTo(x, y : CARDINAL); (* V[x,y] *)
- PROCEDURE LineRel(dx, dy : INTEGER); (* V signed relative *)
- PROCEDURE Dot; (* V[] plot one dot *)
- PROCEDURE Rect(x0, y0, x1, y1 : CARDINAL); (* outline via P+V *)
- PROCEDURE Circle(edgeX, edgeY : CARDINAL); (* C[x,y], centre = cursor *)
- PROCEDURE CircleCenter(cx, cy : CARDINAL); (* C(C)[cx,cy] *)
- PROCEDURE Arc(degrees : INTEGER; x, y : CARDINAL); (* C(A deg)[x,y] *)
- PROCEDURE FillTriangle(x1, y1, x2, y2 : CARDINAL);
- (* F(V[x1,y1][x2,y2]), cursor is the first vertex *)
- PROCEDURE TextOut(s : ARRAY OF CHAR); (* T'...' ; avoid quotes in s *)
- PROCEDURE TextSize(n : CARDINAL); (* T(Sn), 0..16 *)
- PROCEDURE TextSizeWH(w, h : CARDINAL);(* T(S[w,h]) custom cell *)
- PROCEDURE TextDir(deg : CARDINAL); (* T(D..), 45-degree steps *)
- PROCEDURE TextSlant(deg : CARDINAL); (* T(I..) italic slant *)
- PROCEDURE UseColor(reg : CARDINAL); (* W(I reg), 0..15 *)
- PROCEDURE ColorName(c : CHAR); (* W(I(c)), D R G B C Y M W *)
- PROCEDURE SetRGB(reg, r, g, b : CARDINAL); (* S(M reg(R..G..B..)), 0..100 *)
- PROCEDURE SetHLS(reg, h, l, s : CARDINAL); (* S(M reg(H..L..S..)) *)
- PROCEDURE BgRegister(reg : CARDINAL); (* S(I reg) background *)
- PROCEDURE WriteOverlay; (* W(V) default *)
- PROCEDURE WriteReplace; (* W(R) *)
- PROCEDURE WriteComplement; (* W(C) *)
- PROCEDURE WriteErase; (* W(E) *)
- PROCEDURE Pattern(n : CARDINAL); (* W(P n), 0..9, 1 = solid *)
- PROCEDURE PatternBits(s : ARRAY OF CHAR); (* W(P bits), custom 0/1 string *)
- PROCEDURE LineWidth(n : CARDINAL); (* W(L n) pixels *)
- PROCEDURE PVMult(n : CARDINAL); (* W(M n) pixel-vector multiplier *)
- PROCEDURE ShadeOn; (* W(S1) *)
- PROCEDURE ShadeOff; (* W(S0) *)
- PROCEDURE ShadeRefY(y : CARDINAL); (* W(S[,y]) horizontal reference *)
- PROCEDURE MacroDef(name : CHAR); (* @:X ... *)
- PROCEDURE MacroEnd; (* @; *)
- PROCEDURE MacroRun(name : CHAR); (* @X *)
- PROCEDURE MacroClearAll; (* @. *)
- PROCEDURE ReportPosition; (* R(P) send-only; read reply unbuffered *)
- PROCEDURE ReportError; (* R(E) send-only *)
- PROCEDURE Unbuffered;
- PROCEDURE Buffered;
- END Regis.
|