blob: c1f2791d00b034a0db7073a3b17839c29b761bd6 [file] [log] [blame]
Bram Moolenaare4f25e42017-07-07 11:54:15 +02001INIT
2UTF8 1
3WANTSTATE s
4
5!Linefeed
6PUSH "\n"x24
7 ?cursor = 24,0
8PUSH "\n"
9 scrollrect 0..25,0..80 => +1,+0
10 ?cursor = 24,0
11
12RESET
13
14!Index
15PUSH "\e[25H"
16PUSH "\eD"
17 scrollrect 0..25,0..80 => +1,+0
18
19RESET
20
21!Reverse Index
22PUSH "\eM"
23 scrollrect 0..25,0..80 => -1,+0
24
25RESET
26
27!Linefeed in DECSTBM
28PUSH "\e[1;10r"
29 ?cursor = 0,0
30PUSH "\n"x9
31 ?cursor = 9,0
32PUSH "\n"
33 scrollrect 0..10,0..80 => +1,+0
34 ?cursor = 9,0
35
36!Linefeed outside DECSTBM
37PUSH "\e[20H"
38 ?cursor = 19,0
39PUSH "\n"
40 ?cursor = 20,0
41
42!Index in DECSTBM
Bram Moolenaare4f25e42017-07-07 11:54:15 +020043PUSH "\e[9;10r"
Bram Moolenaard8637282020-05-20 18:41:41 +020044PUSH "\e[10H"
Bram Moolenaare4f25e42017-07-07 11:54:15 +020045PUSH "\eM"
46 ?cursor = 8,0
47PUSH "\eM"
48 scrollrect 8..10,0..80 => -1,+0
49
50!Reverse Index in DECSTBM
51PUSH "\e[25H"
52 ?cursor = 24,0
53PUSH "\n"
54 # no scrollrect
55 ?cursor = 24,0
56
57!Linefeed in DECSTBM+DECSLRM
58PUSH "\e[?69h"
59PUSH "\e[3;10r\e[10;40s"
60PUSH "\e[10;10H\n"
61 scrollrect 2..10,9..40 => +1,+0
62
63!IND/RI in DECSTBM+DECSLRM
64PUSH "\eD"
65 scrollrect 2..10,9..40 => +1,+0
66PUSH "\e[3;10H\eM"
67 scrollrect 2..10,9..40 => -1,+0
68
69!DECRQSS on DECSTBM
70PUSH "\eP\$qr\e\\"
71 output "\eP1\$r3;10r\e\\"
72
73!DECRQSS on DECSLRM
74PUSH "\eP\$qs\e\\"
75 output "\eP1\$r10;40s\e\\"
76
77!Setting invalid DECSLRM with !DECVSSM is still rejected
78PUSH "\e[?69l\e[;0s\e[?69h"
79
80RESET
81
82!Scroll Down
83PUSH "\e[S"
84 scrollrect 0..25,0..80 => +1,+0
85 ?cursor = 0,0
86PUSH "\e[2S"
87 scrollrect 0..25,0..80 => +2,+0
88 ?cursor = 0,0
89PUSH "\e[100S"
90 scrollrect 0..25,0..80 => +25,+0
91
92!Scroll Up
93PUSH "\e[T"
94 scrollrect 0..25,0..80 => -1,+0
95 ?cursor = 0,0
96PUSH "\e[2T"
97 scrollrect 0..25,0..80 => -2,+0
98 ?cursor = 0,0
99PUSH "\e[100T"
100 scrollrect 0..25,0..80 => -25,+0
101
102!SD/SU in DECSTBM
103PUSH "\e[5;20r"
104PUSH "\e[S"
105 scrollrect 4..20,0..80 => +1,+0
106PUSH "\e[T"
107 scrollrect 4..20,0..80 => -1,+0
108
109RESET
110
111!SD/SU in DECSTBM+DECSLRM
112PUSH "\e[?69h"
113PUSH "\e[3;10r\e[10;40s"
114 ?cursor = 0,0
115PUSH "\e[3;10H"
116 ?cursor = 2,9
117PUSH "\e[S"
118 scrollrect 2..10,9..40 => +1,+0
119PUSH "\e[?69l"
120PUSH "\e[S"
121 scrollrect 2..10,0..80 => +1,+0
122
123!Invalid boundaries
124RESET
125
126PUSH "\e[100;105r\eD"
127PUSH "\e[5;2r\eD"
128
129RESET
130WANTSTATE -s+me
131
132!Scroll Down move+erase emulation
133PUSH "\e[S"
134 moverect 1..25,0..80 -> 0..24,0..80
135 erase 24..25,0..80
136 ?cursor = 0,0
137PUSH "\e[2S"
138 moverect 2..25,0..80 -> 0..23,0..80
139 erase 23..25,0..80
140 ?cursor = 0,0
141
142!Scroll Up move+erase emulation
143PUSH "\e[T"
144 moverect 0..24,0..80 -> 1..25,0..80
145 erase 0..1,0..80
146 ?cursor = 0,0
147PUSH "\e[2T"
148 moverect 0..23,0..80 -> 2..25,0..80
149 erase 0..2,0..80
150 ?cursor = 0,0
Bram Moolenaard8637282020-05-20 18:41:41 +0200151
152!DECSTBM resets cursor position
153PUSH "\e[5;5H"
154 ?cursor = 4,4
155PUSH "\e[r"
156 ?cursor = 0,0