Regis.def 3.1 KB

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