VT100.def 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. DEFINITION MODULE VT100;
  2. (*
  3. Strict DEC VT100 escape sequences.
  4. No VT52 compat, no DOS screen modes, no xterm extensions,
  5. no colors. Pure CSI/ESC emitter, plus Unbuffered/Buffered
  6. input-mode helpers (termios) for reading device replies.
  7. Reference: DEC VT100 User Guide (EK-VT100-UG).
  8. *)
  9. (* SGR - character attributes (VT100: 0,1,4,5,7 only) *)
  10. PROCEDURE ResetAttributes; (* SGR0 ESC[0m *)
  11. PROCEDURE Bold; (* SGR1 ESC[1m *)
  12. PROCEDURE Underline; (* SGR4 ESC[4m *)
  13. PROCEDURE Blink; (* SGR5 ESC[5m *)
  14. PROCEDURE Reverse; (* SGR7 ESC[7m *)
  15. (* Cursor movement *)
  16. PROCEDURE CursorHome; (* ESC[H *)
  17. PROCEDURE CursorPosition(line, col : CARDINAL); (* CUP ESC[line;colH *)
  18. PROCEDURE HVPosition(line, col : CARDINAL); (* HVP ESC[line;colf *)
  19. PROCEDURE CursorUp(n : CARDINAL); (* CUU ESC[nA *)
  20. PROCEDURE CursorDown(n : CARDINAL); (* CUD ESC[nB *)
  21. PROCEDURE CursorRight(n : CARDINAL); (* CUF ESC[nC *)
  22. PROCEDURE CursorLeft(n : CARDINAL); (* CUB ESC[nD *)
  23. (* Scroll / line movement *)
  24. PROCEDURE Index; (* IND ESC D *)
  25. PROCEDURE ReverseIndex; (* RI ESC M *)
  26. PROCEDURE NextLine; (* NEL ESC E *)
  27. (* Cursor save / restore (DEC) *)
  28. PROCEDURE SaveCursor; (* DECSC ESC 7 *)
  29. PROCEDURE RestoreCursor; (* DECRC ESC 8 *)
  30. (* Erase in line / screen *)
  31. PROCEDURE ClearLineRight; (* EL0 ESC[K / ESC[0K *)
  32. PROCEDURE ClearLineLeft; (* EL1 ESC[1K *)
  33. PROCEDURE ClearLine; (* EL2 ESC[2K *)
  34. PROCEDURE ClearScreenDown; (* ED0 ESC[J / ESC[0J *)
  35. PROCEDURE ClearScreenUp; (* ED1 ESC[1J *)
  36. PROCEDURE ClearScreen; (* ED2 ESC[2J *)
  37. (* Scrolling region *)
  38. PROCEDURE SetScrollRegion(top, bottom : CARDINAL); (* DECSTBM ESC[top;bottomr *)
  39. (* Tabs *)
  40. PROCEDURE TabSet; (* HTS ESC H *)
  41. PROCEDURE TabClear; (* TBC ESC[g / ESC[0g *)
  42. PROCEDURE TabClearAll; (* TBC ESC[3g *)
  43. (* Double-size / alignment *)
  44. PROCEDURE DoubleHeightTop; (* DECDHL ESC#3 *)
  45. PROCEDURE DoubleHeightBottom; (* DECDHL ESC#4 *)
  46. PROCEDURE SingleWidth; (* DECSWL ESC#5 *)
  47. PROCEDURE DoubleWidth; (* DECDWL ESC#6 *)
  48. PROCEDURE ScreenAlign; (* DECALN ESC#8 *)
  49. (* LNM / DEC private modes *)
  50. PROCEDURE SetNewLine; (* LNM ESC[20h *)
  51. PROCEDURE ResetNewLine; (* LNM ESC[20l *)
  52. PROCEDURE SetAppCursorKeys; (* DECCKM ESC[?1h *)
  53. PROCEDURE SetCursorKeys; (* DECCKM ESC[?1l *)
  54. PROCEDURE SetANSI; (* DECANM ESC[?2h *)
  55. PROCEDURE SetVT52; (* DECANM ESC[?2l *)
  56. PROCEDURE Set132Columns; (* DECCOLM ESC[?3h *)
  57. PROCEDURE Set80Columns; (* DECCOLM ESC[?3l *)
  58. PROCEDURE SetSmoothScroll; (* DECSCLM ESC[?4h *)
  59. PROCEDURE SetJumpScroll; (* DECSCLM ESC[?4l *)
  60. PROCEDURE SetReverseScreen; (* DECSCNM ESC[?5h *)
  61. PROCEDURE SetNormalScreen; (* DECSCNM ESC[?5l *)
  62. PROCEDURE SetRelativeOrigin; (* DECOM ESC[?6h *)
  63. PROCEDURE SetAbsoluteOrigin; (* DECOM ESC[?6l *)
  64. PROCEDURE SetAutoWrap; (* DECAWM ESC[?7h *)
  65. PROCEDURE ResetAutoWrap; (* DECAWM ESC[?7l *)
  66. PROCEDURE SetAutoRepeat; (* DECARM ESC[?8h *)
  67. PROCEDURE ResetAutoRepeat; (* DECARM ESC[?8l *)
  68. PROCEDURE SetInterlace; (* DECINLM ESC[?9h *)
  69. PROCEDURE ResetInterlace; (* DECINLM ESC[?9l *)
  70. (* Keypad *)
  71. PROCEDURE SetAltKeypad; (* DECKPAM ESC= *)
  72. PROCEDURE SetNumKeypad; (* DECKPNM ESC> *)
  73. (* Character sets *)
  74. PROCEDURE SetUK_G0; (* ESC(A *)
  75. PROCEDURE SetUS_G0; (* ESC(B *)
  76. PROCEDURE SetGraphics_G0;(* ESC(0 *)
  77. PROCEDURE SetAlt_G0; (* ESC(1 *)
  78. PROCEDURE SetAltGraph_G0;(* ESC(2 *)
  79. PROCEDURE SetUK_G1; (* ESC)A *)
  80. PROCEDURE SetUS_G1; (* ESC)B *)
  81. PROCEDURE SetGraphics_G1;(* ESC)0 *)
  82. PROCEDURE SetAlt_G1; (* ESC)1 *)
  83. PROCEDURE SetAltGraph_G1;(* ESC)2 *)
  84. PROCEDURE Shift2; (* SS2 ESC N *)
  85. PROCEDURE Shift3; (* SS3 ESC O *)
  86. (* Reports / identification / reset *)
  87. PROCEDURE RequestDeviceStatus; (* DSR ESC[5n *)
  88. PROCEDURE RequestCursorPosition; (* DSR ESC[6n, response ESC[line;colR *)
  89. PROCEDURE Identify; (* DA ESC[c *)
  90. PROCEDURE Identify2; (* DA ESC[0c *)
  91. PROCEDURE ResetTerminal; (* RIS ESC c *)
  92. (* LEDs / confidence tests *)
  93. PROCEDURE LedsOff; (* DECLL ESC[0q *)
  94. PROCEDURE Led1; (* DECLL ESC[1q *)
  95. PROCEDURE Led2; (* DECLL ESC[2q *)
  96. PROCEDURE Led3; (* DECLL ESC[3q *)
  97. PROCEDURE Led4; (* DECLL ESC[4q *)
  98. PROCEDURE TestPowerUp; (* DECTST ESC[2;1y *)
  99. PROCEDURE TestLoopback; (* DECTST ESC[2;2y *)
  100. PROCEDURE TestPowerRepeat; (* DECTST ESC[2;9y *)
  101. PROCEDURE TestLoopRepeat; (* DECTST ESC[2;10y *)
  102. (* Terminal input mode: call Unbuffered before reading device
  103. replies (e.g. CPR) so no RETURN key is needed; call
  104. Buffered afterwards to restore the saved state. *)
  105. PROCEDURE Unbuffered;
  106. PROCEDURE Buffered;
  107. END VT100.