Browse code

(screen.tal) Optimizations

neauoire authored on 06/03/2022 19:00:02
Showing 1 changed files
... ...
@@ -59,45 +59,35 @@ BRK
59 59
 
60 60
 @on-frame ( -> )
61 61
 
62
+	AUTO-X
62 63
 	.count LDZ2 INC2 [ DUP2 ] .count STZ2
63
-	
64 64
 	.center/x LDZ2 #0048 ++ .Screen/x DEO2
65 65
 	.center/y LDZ2 #0050 -- .Screen/y DEO2
66
-
67
-	( color ) #01 STH
68
-
69 66
 	SWP
70 67
 	DUP #04 SFT [ #00 SWP ] #30 SFT2 ;font-hex ++ .Screen/addr DEO2
71
-	( draw ) STHkr .Screen/sprite DEO
68
+	#01 .Screen/sprite DEO
72 69
 	#0f AND [ #00 SWP ] #30 SFT2 ;font-hex ++ .Screen/addr DEO2
73
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
74
-	( draw ) STHkr .Screen/sprite DEO
70
+	#01 .Screen/sprite DEO
75 71
 	DUP #04 SFT [ #00 SWP ] #30 SFT2 ;font-hex ++ .Screen/addr DEO2
76
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
77
-	( draw ) STHkr .Screen/sprite DEO
72
+	#01 .Screen/sprite DEO
78 73
 	#0f AND [ #00 SWP ] #30 SFT2 ;font-hex ++ .Screen/addr DEO2
79
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
80
-	( draw ) STHr .Screen/sprite DEO
74
+	#01 .Screen/sprite DEO
81 75
 
82 76
 BRK
83 77
 
84 78
 @draw-table ( -- )
85 79
 	
86
-	#10 #00
87
-	&loop
88
-		DUP #30 SFT #00 SWP ;font-hex ++ .Screen/addr DEO2
89
-		( x-axis )
90
-		DUP #30 SFT #00 SWP
91
-		.center/x LDZ2 #0040 -- ++ .Screen/x DEO2
92
-		.center/y LDZ2 #0050 -- .Screen/y DEO2
93
-		( draw ) #01 .Screen/sprite DEO
94
-		( y-axis )
95
-		DUP #30 SFT #00 SWP
96
-		.center/y LDZ2 #0040 -- ++ .Screen/y DEO2
97
-		.center/x LDZ2 #0050 -- .Screen/x DEO2
98
-		( draw ) #01 .Screen/sprite DEO
99
-		INC GTHk ,&loop JCN
100
-	POP2
80
+	.center/x LDZ2 #0040 -- .Screen/x DEO2
81
+	.center/y LDZ2 #0050 -- .Screen/y DEO2
82
+	;font-hex .Screen/addr DEO2
83
+	#f6 .Screen/auto DEO
84
+	#01 .Screen/sprite DEO
85
+	.center/x LDZ2 #0050 -- .Screen/x DEO2
86
+	.center/y LDZ2 #0040 -- .Screen/y DEO2
87
+	;font-hex .Screen/addr DEO2
88
+	#f5 .Screen/auto DEO
89
+	#01 .Screen/sprite DEO
90
+	AUTO-NONE
101 91
 
102 92
 RTN
103 93
 
... ...
@@ -125,7 +115,7 @@ RTN
125 115
 			[ .center/y LDZ2 #0040 -- ++ ] STH2
126 116
 		( x ) DUP #03 AND [ #00 SWP ] #40 SFT2 #0040 ++
127 117
 			[ .center/x LDZ2 #0008 ++ ++ ]
128
-		STH2r STHr #00 ;draw-circle JSR2
118
+		STH2r STHr #00 ,draw-circle JSR
129 119
 		INC GTHk ,&loop JCN
130 120
 	POP2
131 121
 	
... ...
@@ -140,12 +130,29 @@ RTN
140 130
 			[ .center/y LDZ2 ++ ] STH2
141 131
 		( x ) DUP #03 AND [ #00 SWP ] #40 SFT2 #0040 ++
142 132
 			[ .center/x LDZ2 #0008 ++ ++ ]
143
-		STH2r STHr #80 ;draw-circle JSR2
133
+		STH2r STHr #80 ,draw-circle JSR
144 134
 		INC GTHk ,&loop JCN
145 135
 	POP2
146 136
 	
147 137
 RTN
148 138
 
139
+@draw-circle ( x* y* color depth -- )
140
+	
141
+	ADD STH
142
+	;preview_icn .Screen/addr DEO2
143
+	.Screen/y DEO2
144
+	.Screen/x DEO2
145
+	AUTO-X
146
+	STHr .Screen/sprite DEOk
147
+	AUTO-Y
148
+	SWP #10 + SWP DEOk
149
+	.Screen/x DEI2k #0008 -- ROT DEO2
150
+	AUTO-X
151
+	SWP #10 + SWP DEOk
152
+	SWP #10 + SWP DEO
153
+
154
+RTN
155
+
149 156
 @draw-autobytes ( -- )
150 157
 
151 158
 	.center/x LDZ2 #0090 ++ .Screen/x DEO2
... ...
@@ -174,35 +181,15 @@ RTN
174 181
 
175 182
 RTN
176 183
 
177
-@draw-circle ( x* y* color depth -- )
178
-	
179
-	ADD STH
180
-	;preview_icn .Screen/addr DEO2
181
-	.Screen/y DEO2
182
-	.Screen/x DEO2
183
-
184
-	#00 STHkr + .Screen/sprite DEO
185
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
186
-		#10 STHkr + .Screen/sprite DEO
187
-	.Screen/x DEI2 #0008 -- .Screen/x DEO2
188
-	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
189
-		#20 STHkr + .Screen/sprite DEO
190
-	.Screen/x DEI2 #0008 ++ .Screen/x DEO2
191
-		#30 STHr + .Screen/sprite DEO
192
-
193
-RTN
194
-
195 184
 @draw-pixels ( -- )
196 185
 	
197 186
 	.center/y LDZ2 #0040 -- .Screen/y DEO2
198 187
 	.center/x LDZ2 #0048 ++ .Screen/x DEO2
199
-		#00 .Screen/pixel DEO
200
-	.center/x LDZ2 #0049 ++ .Screen/x DEO2
201
-		#01 .Screen/pixel DEO
202
-	.center/x LDZ2 #004a ++ .Screen/x DEO2
203
-		#02 .Screen/pixel DEO
204
-	.center/x LDZ2 #004b ++ .Screen/x DEO2
205
-		#03 .Screen/pixel DEO
188
+	AUTO-X
189
+	#00 .Screen/pixel DEO
190
+	#01 .Screen/pixel DEO
191
+	#02 .Screen/pixel DEO
192
+	#03 .Screen/pixel DEO
206 193
 
207 194
 RTN
208 195