Browse code

Housekeeping on a few examples

Devine Lu Linvega authored on 14/07/2022 21:57:56
Showing 9 changed files
... ...
@@ -217,7 +217,7 @@ JMP2r
217 217
 	( z = a )
218 218
 	,&a LDR DUP ,&z STR
219 219
 	( a = z ^ t ^ (z >> 1) ^ (t << 1) )
220
-	DUP #10 SFT EOR SWP DUP #01 SFT EOR EOR
220
+	DUP DUP ADD EOR SWP DUP #01 SFT EOR EOR
221 221
 	DUP ,&a STR
222 222
 
223 223
 JMP2r
... ...
@@ -88,15 +88,15 @@ JMP2r
88 88
 	( load ) STH ,&y STR2 ,&x STR2 .line/y STZ2 .line/x STZ2
89 89
 	,&x LDR2 .line/x LDZ2 SUB2 ;abs2 JSR2 .line/dx STZ2
90 90
 	#0000 ,&y LDR2 .line/y LDZ2 SUB2 ;abs2 JSR2 SUB2 .line/dy STZ2
91
-	#ffff #00 .line/x LDZ2 ,&x LDR2 ;lts2 JSR2 #10 SFT2 ADD2 ,&sx STR2
92
-	#ffff #00 .line/y LDZ2 ,&y LDR2 ;lts2 JSR2 #10 SFT2 ADD2 ,&sy STR2
91
+	#ffff #00 .line/x LDZ2 ,&x LDR2 ;lts2 JSR2 DUP2 ADD2 ADD2 ,&sx STR2
92
+	#ffff #00 .line/y LDZ2 ,&y LDR2 ;lts2 JSR2 DUP2 ADD2 ADD2 ,&sy STR2
93 93
 	.line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2
94 94
 	&loop
95 95
 		.line/x LDZ2 DUP2 .Screen/x DEO2 [ LIT2 &x $2 ] EQU2
96 96
 		.line/y LDZ2 DUP2 .Screen/y DEO2 [ LIT2 &y $2 ] EQU2
97 97
 			STHkr .Screen/pixel DEO
98 98
 			AND ,&end JCN
99
-		.line/e1 LDZ2 #10 SFT2 DUP2
99
+		.line/e1 LDZ2 DUP2 ADD2 DUP2
100 100
 		.line/dy LDZ2 ;lts2 JSR2 ,&skipy JCN
101 101
 			.line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2
102 102
 			.line/x LDZ2 [ LIT2 &sx $2 ] ADD2 .line/x STZ2
... ...
@@ -35,13 +35,13 @@ BRK
35 35
 		STH2k #0000 EQU2 ,&flip-x JCN
36 36
 		STH2kr [ LIT2 &hit-hor $2 ] EQU2 ,&flip-x JCN
37 37
 	&no-x
38
-	STH2r [ #00 .dvd/dx LDZ ] #10 SFT2 ADD2 #ffff ADD2 .dvd/x STZ2
38
+	STH2r [ #00 .dvd/dx LDZ ] DUP2 ADD2 ADD2 #ffff ADD2 .dvd/x STZ2
39 39
 	( y )
40 40
 	.dvd/y LDZ2
41 41
 		STH2k #0000 EQU2 ,&flip-y JCN
42 42
 		STH2kr [ LIT2 &hit-ver $2 ] EQU2 ,&flip-y JCN
43 43
 	&no-y
44
-	STH2r [ #00 .dvd/dy LDZ ] #10 SFT2 ADD2 #ffff ADD2 .dvd/y STZ2
44
+	STH2r [ #00 .dvd/dy LDZ ] DUP2 ADD2 ADD2 #ffff ADD2 .dvd/y STZ2
45 45
 	#01 ,draw-dvd JSR
46 46
 
47 47
 BRK
... ...
@@ -168,7 +168,7 @@ JMP2r
168 168
 	LITr 00
169 169
 	#0800
170 170
 	&loop
171
-		#00 OVR #10 SFT2 ;&mask ADD2 LDA2 [ LIT2 &origin $2 ]
171
+		#00 OVR DUP2 ADD2 ;&mask ADD2 LDA2 [ LIT2 &origin $2 ]
172 172
 		ROT ADD STH ADD STHr ;get-cell JSR2 STH ADDr
173 173
 		INC GTHk ,&loop JCN
174 174
 	POP2
... ...
@@ -187,11 +187,11 @@ JMP2r
187 187
 	#00 .Screen/auto DEO
188 188
 	#4000
189 189
 	&ver
190
-		#00 OVR #10 SFT2 .anchor/y LDZ2 ADD2 .Screen/y DEO2
190
+		#00 OVR DUP2 ADD2 .anchor/y LDZ2 ADD2 .Screen/y DEO2
191 191
 		STHk
192 192
 		#4000
193 193
 		&hor
194
-			#00 OVR #10 SFT2 .anchor/x LDZ2 ADD2 .Screen/x DEO2
194
+			#00 OVR DUP2 ADD2 .anchor/x LDZ2 ADD2 .Screen/x DEO2
195 195
 			DUP STHkr ;get-cell JSR2 INC .Screen/pixel DEO
196 196
 			INC GTHk ,&hor JCN
197 197
 		POP2
... ...
@@ -30,7 +30,7 @@ BRK
30 30
 @on-frame ( -> )
31 31
 
32 32
 	.Controller/button DEI 
33
-	DUP #00 NEQ ,&continue JCN
33
+	DUP ,&continue JCN
34 34
 		POP BRK
35 35
 		&continue
36 36
 	( clear )
... ...
@@ -201,7 +201,7 @@ JMP2r
201 201
 
202 202
 @transform ( xy cell -- cell )
203 203
 
204
-	DUP #00 NEQ ,&no-null JCN NIP NIP JMP2r &no-null
204
+	DUP ,&no-null JCN NIP NIP JMP2r &no-null
205 205
 	DUP #03 NEQ ,&no-head JCN POP POP2 #02 JMP2r &no-head
206 206
 	DUP #02 NEQ ,&no-tail JCN POP POP2 #01 JMP2r &no-tail
207 207
 	DUP #01 NEQ ,&no-cond JCN POP
... ...
@@ -118,7 +118,7 @@ JMP2r
118 118
 	;selector-icn .Screen/addr DEO2
119 119
 	STHkr .Screen/sprite DEO
120 120
 
121
-	.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
121
+	.Screen/y DEI2k #0008 ADD2 ROT DEO2
122 122
 	.selection LDZ GET-NOTE STHr ,draw-byte JSR
123 123
 
124 124
 JMP2r
... ...
@@ -131,7 +131,7 @@ BRK
131 131
 
132 132
 	( y ) .modpad-frame/y LDZ2 SUB2 #24 SFT2 NIP STH
133 133
 	( x ) .modpad-frame/x LDZ2 SUB2 #04 SFT2
134
-	( lookup ) STHr ADD #10 SFT2 ;keypad/ops ADD2 LDA2 JSR2
134
+	( lookup ) STHr ADD DUP2 ADD2 ;keypad/ops ADD2 LDA2 JSR2
135 135
 	;draw-bitpad JSR2
136 136
 	#00 .Mouse/state DEO POP2
137 137
 
... ...
@@ -141,7 +141,7 @@ BRK
141 141
 
142 142
 	POP2
143 143
 	.input-frame/x LDZ2 SUB2 #03 SFT2 NIP
144
-	DUP #00 NEQ ,&no-push JCN
144
+	DUP ,&no-push JCN
145 145
 		;do-push JSR2 &no-push
146 146
 	DUP #01 NEQ ,&no-pop JCN
147 147
 		;do-pop JSR2 &no-pop
... ...
@@ -183,7 +183,7 @@ JMP2r
183 183
 
184 184
 @push ( value* -- )
185 185
 
186
-	( store ) .stack/length LDZ #10 SFT .stack/items ADD STZ2
186
+	( store ) .stack/length LDZ DUP ADD .stack/items ADD STZ2
187 187
 	( INCZ ) .stack/length LDZk INC SWP STZ
188 188
 	( reset ) #0000 .input/value STZ2
189 189
 	#00 ;draw-input JSR2
... ...
@@ -193,8 +193,8 @@ JMP2r
193 193
 
194 194
 @pop ( -- value* )
195 195
 
196
-	.stack/length LDZ #01 SUB #10 SFT .stack/items ADD LDZ2
197
-	( clear ) #0000 [ .stack/length LDZ #01 SUB #10 SFT .stack/items ADD ] STZ2
196
+	.stack/length LDZ #01 SUB DUP ADD .stack/items ADD LDZ2
197
+	( clear ) #0000 [ .stack/length LDZ #01 SUB DUP ADD .stack/items ADD ] STZ2
198 198
 	( DECZ ) .stack/length LDZk #01 SUB SWP STZ
199 199
 	#01 ;draw-input JSR2
200 200
 	;draw-stack JSR2
... ...
@@ -396,7 +396,7 @@ JMP2r
396 396
 		.input-frame/x LDZ2 #0018 ADD2 .Screen/x DEO2
397 397
 		#00 OVR #30 SFT2 .input-frame/y LDZ2 ADD2 #004c SUB2 .Screen/y DEO2
398 398
 		( color ) DUP #08 .stack/length LDZ SUB #01 SUB GTH STH
399
-		( value ) DUP #10 SFT .stack/items ADD [ #10 .stack/length LDZ #10 SFT SUB SUB ] LDZ2
399
+		( value ) DUP DUP ADD .stack/items ADD [ #10 .stack/length LDZ DUP ADD SUB SUB ] LDZ2
400 400
 			STHr ;draw-number JSR2
401 401
 		INC GTHk ,&loop JCN
402 402
 	POP2
... ...
@@ -144,15 +144,15 @@ JMP2r
144 144
 	( load ) STH ,&y STR2 ,&x STR2 .line/y STZ2 .line/x STZ2
145 145
 	,&x LDR2 .line/x LDZ2 SUB2 ;abs2 JSR2 .line/dx STZ2
146 146
 	#0000 ,&y LDR2 .line/y LDZ2 SUB2 ;abs2 JSR2 SUB2 .line/dy STZ2
147
-	#ffff #00 .line/x LDZ2 ,&x LDR2 ;lts2 JSR2 #10 SFT2 ADD2 ,&sx STR2
148
-	#ffff #00 .line/y LDZ2 ,&y LDR2 ;lts2 JSR2 #10 SFT2 ADD2 ,&sy STR2
147
+	#ffff #00 .line/x LDZ2 ,&x LDR2 ;lts2 JSR2 DUP2 ADD2 ADD2 ,&sx STR2
148
+	#ffff #00 .line/y LDZ2 ,&y LDR2 ;lts2 JSR2 DUP2 ADD2 ADD2 ,&sy STR2
149 149
 	.line/dx LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2
150 150
 	&loop
151 151
 		.line/x LDZ2 DUP2 .Screen/x DEO2 [ LIT2 &x $2 ] EQU2
152 152
 		.line/y LDZ2 DUP2 .Screen/y DEO2 [ LIT2 &y $2 ] EQU2
153 153
 			STHkr .Screen/pixel DEO
154 154
 			AND ,&end JCN
155
-		.line/e1 LDZ2 #10 SFT2 DUP2
155
+		.line/e1 LDZ2 DUP2 ADD2 DUP2
156 156
 		.line/dy LDZ2 ;lts2 JSR2 ,&skipy JCN
157 157
 			.line/e1 LDZ2 .line/dy LDZ2 ADD2 .line/e1 STZ2
158 158
 			.line/x LDZ2 [ LIT2 &sx $2 ] ADD2 .line/x STZ2
... ...
@@ -172,12 +172,12 @@ JMP2r
172 172
 	#3c00
173 173
 	&loop
174 174
 		( dots )
175
-		#00 OVR #10 SFT2 ;table ADD2 LDA2
175
+		#00 OVR DUP2 ADD2 ;table ADD2 LDA2
176 176
 			#0018 ;circle JSR2
177 177
 			.Screen/x DEO2 .Screen/y DEO2 #01 .Screen/pixel DEO
178 178
 		( markers )
179 179
 		DUP #05 ;mod JSR2 ,&no-marker JCN
180
-			#00 OVR #10 SFT2 ;table ADD2 LDA2
180
+			#00 OVR DUP2 ADD2 ;table ADD2 LDA2
181 181
 			STH2k #0018 ;circle JSR2 SWP2
182 182
 			STH2r #001c ;circle JSR2 SWP2
183 183
 				#01 ;draw-line JSR2
... ...
@@ -189,14 +189,14 @@ JMP2r
189 189
 
190 190
 @make-needles ( -- )
191 191
 
192
-	[ #00 .DateTime/second DEI #1e ADD #3c ;mod JSR2 ] #10 SFT2 ;table ADD2 LDA2
192
+	[ #00 .DateTime/second DEI #1e ADD #3c ;mod JSR2 ] DUP2 ADD2 ;table ADD2 LDA2
193 193
 		#00a0 ,circle JSR .needles/zx STZ2 .needles/zy STZ2
194
-	[ #00 .DateTime/second DEI ] #10 SFT2 ;table ADD2 LDA2
194
+	[ #00 .DateTime/second DEI ] DUP2 ADD2 ;table ADD2 LDA2
195 195
 		#0020 ,circle JSR .needles/sx STZ2 .needles/sy STZ2
196
-	[ #00 .DateTime/minute DEI ] #10 SFT2 ;table ADD2 LDA2
196
+	[ #00 .DateTime/minute DEI ] DUP2 ADD2 ;table ADD2 LDA2
197 197
 		#0022 ,circle JSR .needles/mx STZ2 .needles/my STZ2
198 198
 	[ #00 .DateTime/hour DEI #0c ;mod JSR2 #20 SFTk NIP ADD ]
199
-	( minute offset ) [ #00 .DateTime/minute DEI #0f DIV ADD2 ] #10 SFT2 ;table ADD2 LDA2
199
+	( minute offset ) [ #00 .DateTime/minute DEI #0f DIV ADD2 ] DUP2 ADD2 ;table ADD2 LDA2
200 200
 		#002a ,circle JSR .needles/hx STZ2 .needles/hy STZ2
201 201
 
202 202
 JMP2r