Browse code

More loop optimisations

Andrew Alderwick authored on 26/08/2021 23:11:33
Showing 1 changed files
... ...
@@ -126,72 +126,72 @@ RTN
126 126
 	
127 127
 	( draw hor line )
128 128
 	#0000 .Screen/x DEO2 .center/y LDZ2 .Screen/y DEO2
129
-	#0000 .Screen/width DEI2 ( from/to )
129
+	.Screen/width DEI2 #0000 ( to/from )
130 130
 	&draw-hor
131 131
 		( draw ) #01 .Screen/pixel DEO
132
-		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/x DEO2 SWP2
133
-		LTH2k ,&draw-hor JCN
132
+		( incr ) #0002 ADD2 DUP2 .Screen/x DEO2
133
+		GTH2k ,&draw-hor JCN
134 134
 	POP2 POP2
135 135
 
136 136
 	( draw ver line )
137 137
 	.center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2
138
-	#0000 .Screen/height DEI2 ( from/to )
138
+	.Screen/height DEI2 #0000 ( to/from )
139 139
 	&draw-ver
140 140
 		( draw ) #02 .Screen/pixel DEO
141
-		( incr ) SWP2 #0002 ADD2 DUP2 .Screen/y DEO2 SWP2
142
-		LTH2k ,&draw-ver JCN
141
+		( incr ) #0002 ADD2 DUP2 .Screen/y DEO2
142
+		GTH2k ,&draw-ver JCN
143 143
 	POP2 POP2
144 144
 
145 145
 	( draw blending modes )
146 146
 	;preview_icn .Screen/addr DEO2
147 147
 	#0010 .Screen/y DEO2
148
-	#00 #08
148
+	#0800
149 149
 	&draw-pixel1
150
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
151
-		( draw ) OVR .Screen/pixel DEO
152
-		( incr ) SWP INC SWP
153
-		LTHk ,&draw-pixel1 JCN
154
-	POP POP
150
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
151
+		( draw ) DUP .Screen/pixel DEO
152
+		( incr ) INC
153
+		GTHk ,&draw-pixel1 JCN
154
+	POP2
155 155
 	#0018 .Screen/y DEO2
156
-	#00 #08
156
+	#0800
157 157
 	&draw-pixel2
158
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
159
-		( draw ) OVR #08 ADD .Screen/pixel DEO
160
-		( incr ) SWP INC SWP
161
-		LTHk ,&draw-pixel2 JCN
162
-	POP POP
158
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
159
+		( draw ) DUP #08 ADD .Screen/pixel DEO
160
+		( incr ) INC
161
+		GTHk ,&draw-pixel2 JCN
162
+	POP2
163 163
 	#0020 .Screen/y DEO2
164
-	#00 #08
164
+	#0800
165 165
 	&draw-icn1
166
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
167
-		( draw ) OVR #00 ADD .Screen/sprite DEO
168
-		( incr ) SWP INC SWP
169
-		LTHk ,&draw-icn1 JCN
170
-	POP POP
166
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
167
+		( draw ) DUP .Screen/sprite DEO
168
+		( incr ) INC
169
+		GTHk ,&draw-icn1 JCN
170
+	POP2
171 171
 	#0028 .Screen/y DEO2
172
-	#00 #08
172
+	#0800
173 173
 	&draw-icn2
174
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
175
-		( draw ) OVR #08 ADD .Screen/sprite DEO
176
-		( incr ) SWP INC SWP
177
-		LTHk ,&draw-icn2 JCN
178
-	POP POP
174
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
175
+		( draw ) DUP #08 ADD .Screen/sprite DEO
176
+		( incr ) INC
177
+		GTHk ,&draw-icn2 JCN
178
+	POP2
179 179
 	#0030 .Screen/y DEO2
180
-	#00 #08
180
+	#0800
181 181
 	&draw-chr1
182
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
183
-		( draw ) OVR #80 ADD .Screen/sprite DEO
184
-		( incr ) SWP INC SWP
185
-		LTHk ,&draw-chr1 JCN
186
-	POP POP
182
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
183
+		( draw ) DUP #80 ADD .Screen/sprite DEO
184
+		( incr ) INC
185
+		GTHk ,&draw-chr1 JCN
186
+	POP2
187 187
 	#0038 .Screen/y DEO2
188
-	#00 #08
188
+	#0800
189 189
 	&draw-chr2
190
-		( move ) OVR #30 SFT #00 SWP #0010 ADD2 .Screen/x DEO2
191
-		( draw ) OVR #88 ADD .Screen/sprite DEO
192
-		( incr ) SWP INC SWP
193
-		LTHk ,&draw-chr2 JCN
194
-	POP POP
190
+		( move ) #00 OVR #30 SFT #0010 ADD2 .Screen/x DEO2
191
+		( draw ) DUP #88 ADD .Screen/sprite DEO
192
+		( incr ) INC
193
+		GTHk ,&draw-chr2 JCN
194
+	POP2
195 195
 
196 196
 RTN
197 197
 
... ...
@@ -287,19 +287,19 @@ RTN
287 287
 @fill-rect ( x1* y1* x2* y2* color -- )
288 288
 	
289 289
 	.color STZ
290
-	( x1 x2 y1 y2 ) ROT2 SWP2
290
+	STH2 ROT2 ROT2 STH2 ( x2 x1 / y2 y1 )
291 291
 	&ver
292
-		( save ) OVR2 .Screen/y DEO2
293
-		STH2 STH2 OVR2 OVR2
292
+		( save ) STH2kr .Screen/y DEO2
293
+		OVR2 OVR2
294 294
 		&hor
295
-			( save ) OVR2 .Screen/x DEO2
295
+			( save ) DUP2 .Screen/x DEO2
296 296
 			( draw ) .color LDZ .Screen/pixel DEO
297
-			( incr ) SWP2 INC2 SWP2
298
-			LTH2k ,&hor JCN
299
-		POP2 POP2 STH2r STH2r
300
-		( incr ) SWP2 INC2 SWP2
301
-		LTH2k ,&ver JCN
302
-	POP2 POP2 POP2 POP2
297
+			( incr ) INC2
298
+			GTH2k ,&hor JCN
299
+		POP2 POP2
300
+		( incr ) INC2r
301
+		GTH2kr STHr ,&ver JCN
302
+	POP2 POP2 POP2r POP2r
303 303
 
304 304
 RTN
305 305