1INIT
2UTF8 1
3WANTSTATE
4
5!Implicit
6PUSH "ABC"
7  ?cursor = 0,3
8!Backspace
9PUSH "\b"
10  ?cursor = 0,2
11!Horizontal Tab
12PUSH "\t"
13  ?cursor = 0,8
14!Carriage Return
15PUSH "\r"
16  ?cursor = 0,0
17!Linefeed
18PUSH "\n"
19  ?cursor = 1,0
20
21!Backspace bounded by lefthand edge
22PUSH "\e[4;2H"
23  ?cursor = 3,1
24PUSH "\b"
25  ?cursor = 3,0
26PUSH "\b"
27  ?cursor = 3,0
28
29!Backspace cancels phantom
30PUSH "\e[4;80H"
31  ?cursor = 3,79
32PUSH "X"
33  ?cursor = 3,79
34PUSH "\b"
35  ?cursor = 3,78
36
37!HT bounded by righthand edge
38PUSH "\e[1;78H"
39  ?cursor = 0,77
40PUSH "\t"
41  ?cursor = 0,79
42PUSH "\t"
43  ?cursor = 0,79
44
45RESET
46
47!Index
48PUSH "ABC\eD"
49  ?cursor = 1,3
50!Reverse Index
51PUSH "\eM"
52  ?cursor = 0,3
53!Newline
54PUSH "\eE"
55  ?cursor = 1,0
56
57RESET
58
59!Cursor Forward
60PUSH "\e[B"
61  ?cursor = 1,0
62PUSH "\e[3B"
63  ?cursor = 4,0
64PUSH "\e[0B"
65  ?cursor = 5,0
66
67!Cursor Down
68PUSH "\e[C"
69  ?cursor = 5,1
70PUSH "\e[3C"
71  ?cursor = 5,4
72PUSH "\e[0C"
73  ?cursor = 5,5
74
75!Cursor Up
76PUSH "\e[A"
77  ?cursor = 4,5
78PUSH "\e[3A"
79  ?cursor = 1,5
80PUSH "\e[0A"
81  ?cursor = 0,5
82
83!Cursor Backward
84PUSH "\e[D"
85  ?cursor = 0,4
86PUSH "\e[3D"
87  ?cursor = 0,1
88PUSH "\e[0D"
89  ?cursor = 0,0
90
91!Cursor Next Line
92PUSH "   "
93  ?cursor = 0,3
94PUSH "\e[E"
95  ?cursor = 1,0
96PUSH "   "
97  ?cursor = 1,3
98PUSH "\e[2E"
99  ?cursor = 3,0
100PUSH "\e[0E"
101  ?cursor = 4,0
102
103!Cursor Previous Line
104PUSH "   "
105  ?cursor = 4,3
106PUSH "\e[F"
107  ?cursor = 3,0
108PUSH "   "
109  ?cursor = 3,3
110PUSH "\e[2F"
111  ?cursor = 1,0
112PUSH "\e[0F"
113  ?cursor = 0,0
114
115!Cursor Horizontal Absolute
116PUSH "\n"
117  ?cursor = 1,0
118PUSH "\e[20G"
119  ?cursor = 1,19
120PUSH "\e[G"
121  ?cursor = 1,0
122
123!Cursor Position
124PUSH "\e[10;5H"
125  ?cursor = 9,4
126PUSH "\e[8H"
127  ?cursor = 7,0
128PUSH "\e[H"
129  ?cursor = 0,0
130
131!Cursor Position cancels phantom
132PUSH "\e[10;78H"
133  ?cursor = 9,77
134PUSH "ABC"
135  ?cursor = 9,79
136PUSH "\e[10;80H"
137PUSH "C"
138  ?cursor = 9,79
139PUSH "X"
140  ?cursor = 10,1
141
142RESET
143
144!Bounds Checking
145PUSH "\e[A"
146  ?cursor = 0,0
147PUSH "\e[D"
148  ?cursor = 0,0
149PUSH "\e[25;80H"
150  ?cursor = 24,79
151PUSH "\e[B"
152  ?cursor = 24,79
153PUSH "\e[C"
154  ?cursor = 24,79
155PUSH "\e[E"
156  ?cursor = 24,0
157PUSH "\e[H"
158  ?cursor = 0,0
159PUSH "\e[F"
160  ?cursor = 0,0
161PUSH "\e[999G"
162  ?cursor = 0,79
163PUSH "\e[99;99H"
164  ?cursor = 24,79
165
166RESET
167
168!Horizontal Position Absolute
169PUSH "\e[5`"
170  ?cursor = 0,4
171
172!Horizontal Position Relative
173PUSH "\e[3a"
174  ?cursor = 0,7
175
176!Horizontal Position Backward
177PUSH "\e[3j"
178  ?cursor = 0,4
179
180!Horizontal and Vertical Position
181PUSH "\e[3;3f"
182  ?cursor = 2,2
183
184!Vertical Position Absolute
185PUSH "\e[5d"
186  ?cursor = 4,2
187
188!Vertical Position Relative
189PUSH "\e[2e"
190  ?cursor = 6,2
191
192!Vertical Position Backward
193PUSH "\e[2k"
194  ?cursor = 4,2
195
196RESET
197
198!Horizontal Tab
199PUSH "\t"
200  ?cursor = 0,8
201PUSH "   "
202  ?cursor = 0,11
203PUSH "\t"
204  ?cursor = 0,16
205PUSH "       "
206  ?cursor = 0,23
207PUSH "\t"
208  ?cursor = 0,24
209PUSH "        "
210  ?cursor = 0,32
211PUSH "\t"
212  ?cursor = 0,40
213
214!Cursor Horizontal Tab
215PUSH "\e[I"
216  ?cursor = 0,48
217PUSH "\e[2I"
218  ?cursor = 0,64
219
220!Cursor Backward Tab
221PUSH "\e[Z"
222  ?cursor = 0,56
223PUSH "\e[2Z"
224  ?cursor = 0,40
225