| ... | ... |
@@ -183,7 +183,7 @@ JMP2r |
| 183 | 183 |
|
| 184 | 184 |
;sprite/length LDA2 |
| 185 | 185 |
( don't let length go below 0 ) |
| 186 |
- DUP2 #0000 EQU2 ,&bail JCN |
|
| 186 |
+ ORAk #00 EQU ,&bail JCN |
|
| 187 | 187 |
( clear the old sprite location ) |
| 188 | 188 |
DUP2 #0001 SUB2 #30 SFT2 ;sprite/array ADD2 |
| 189 | 189 |
( top ) |
| ... | ... |
@@ -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 DUP ADD EOR SWP DUP #01 SFT EOR EOR |
|
| 220 |
+ DUPk ADD EOR SWP DUP #01 SFT EOR EOR |
|
| 221 | 221 |
DUP ,&a STR |
| 222 | 222 |
|
| 223 | 223 |
JMP2r |
| ... | ... |
@@ -43,22 +43,22 @@ BRK |
| 43 | 43 |
STHk |
| 44 | 44 |
#00 .timer LDZ [ #00 STHkr INC #07 AND #60 SFT ADD2 ] #00ff AND2 ;table ADD2 LDA #01 SFT |
| 45 | 45 |
#00 .timer LDZ [ #00 STHkr #60 SFT ADD2 ] #00ff AND2 ;table ADD2 LDA #02 SFT [ #00 STHkr #62 SFT2 ADD2 ] |
| 46 |
- .cube/v0 STHr #10 SFT ADD STZ2 |
|
| 46 |
+ .cube/v0 STHr DUP ADD ADD STZ2 |
|
| 47 | 47 |
INC GTHk ,&loop JCN |
| 48 | 48 |
POP2 |
| 49 | 49 |
( vertices ) |
| 50 | 50 |
#0800 |
| 51 | 51 |
&ver-loop |
| 52 |
- DUP #10 SFT .cube ADD LDZ2 ;draw-vertex JSR2 |
|
| 52 |
+ DUP DUP ADD .cube ADD LDZ2 ;draw-vertex JSR2 |
|
| 53 | 53 |
INC GTHk ,&ver-loop JCN |
| 54 | 54 |
POP2 |
| 55 | 55 |
( lines ) |
| 56 | 56 |
#0400 |
| 57 | 57 |
&line-loop |
| 58 | 58 |
STHk |
| 59 |
- .cube/v0 STHkr #10 SFT ADD .cube/v0 STHkr INC #03 AND #10 SFT ADD ,trace JSR |
|
| 60 |
- .cube/v0 STHkr #10 SFT ADD .cube/v4 STHkr #10 SFT ADD ,trace JSR |
|
| 61 |
- .cube/v4 STHkr #10 SFT ADD .cube/v4 STHr INC #03 AND #10 SFT ADD ,trace JSR |
|
| 59 |
+ .cube/v0 STHkr DUP ADD ADD .cube/v0 STHkr INC #03 AND DUP ADD ADD ,trace JSR |
|
| 60 |
+ .cube/v0 STHkr DUP ADD ADD .cube/v4 STHkr DUP ADD ADD ,trace JSR |
|
| 61 |
+ .cube/v4 STHkr DUP ADD ADD .cube/v4 STHr INC #03 AND DUP ADD ADD ,trace JSR |
|
| 62 | 62 |
INC GTHk ,&line-loop JCN |
| 63 | 63 |
POP2 |
| 64 | 64 |
|
| ... | ... |
@@ -22,7 +22,7 @@ |
| 22 | 22 |
#00 .DateTime/minute DEI #60 SFT2 EOR2 |
| 23 | 23 |
#00 .DateTime/hour DEI #c0 SFT2 EOR2 ;prng/x STA2 |
| 24 | 24 |
#00 .DateTime/hour DEI #04 SFT2 |
| 25 |
- #00 .DateTime/day DEI #10 SFT2 EOR2 |
|
| 25 |
+ #00 .DateTime/day DEI DUP2 ADD2 EOR2 |
|
| 26 | 26 |
#00 .DateTime/month DEI #60 SFT2 EOR2 |
| 27 | 27 |
.DateTime/year DEI2 #a0 SFT2 EOR2 ;prng/y STA2 |
| 28 | 28 |
;prng/x LDA2 ;prng/y LDA2 EOR2 |
| ... | ... |
@@ -160,7 +160,7 @@ |
| 160 | 160 |
( rabbit is in-between two frames ) |
| 161 | 161 |
#08 OVR SUB ,&from-weight STR |
| 162 | 162 |
,&to-weight STR ( color n / frame ) |
| 163 |
- #00 SWP #10 SFT2 ;rabbits ADD2 #00c8 #00 STHr MUL2 ADD2 ( color from-addr* ) |
|
| 163 |
+ #00 SWP DUP2 ADD2 ;rabbits ADD2 #00c8 #00 STHr MUL2 ADD2 ( color from-addr* ) |
|
| 164 | 164 |
LDA2k STH2 #00c8 ADD2 LDA2 |
| 165 | 165 |
&draw ( color to-x to-y / from-x from-y ) |
| 166 | 166 |
STHr ,&mix JSR LIT2 &yoffset $2 ADD2 .Screen/y DEO2 |
| ... | ... |
@@ -181,7 +181,7 @@ |
| 181 | 181 |
&static ( color n counter / frame ) |
| 182 | 182 |
INCr |
| 183 | 183 |
POP |
| 184 |
- #00 SWP #10 SFT2 ;rabbits ADD2 #00c8 #00 STHr MUL2 ADD2 |
|
| 184 |
+ #00 SWP DUP2 ADD2 ;rabbits ADD2 #00c8 #00 STHr MUL2 ADD2 |
|
| 185 | 185 |
LDA2 STH2k |
| 186 | 186 |
,&draw JMP |
| 187 | 187 |
|
| ... | ... |
@@ -168,7 +168,7 @@ JMP2r |
| 168 | 168 |
LITr 00 |
| 169 | 169 |
#0800 |
| 170 | 170 |
&loop |
| 171 |
- #00 OVR DUP2 ADD2 ;&mask ADD2 LDA2 [ LIT2 &origin $2 ] |
|
| 171 |
+ #00 OVRk 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 DUP2 ADD2 .anchor/y LDZ2 ADD2 .Screen/y DEO2 |
|
| 190 |
+ #00 OVRk ADD2 .anchor/y LDZ2 ADD2 .Screen/y DEO2 |
|
| 191 | 191 |
STHk |
| 192 | 192 |
#4000 |
| 193 | 193 |
&hor |
| 194 |
- #00 OVR DUP2 ADD2 .anchor/x LDZ2 ADD2 .Screen/x DEO2 |
|
| 194 |
+ #00 OVRk 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 |
| ... | ... |
@@ -217,8 +217,8 @@ JMP2r |
| 217 | 217 |
( bl ) #0001 SUB2 LDAk #03 NEQ JMP INCr |
| 218 | 218 |
( bc ) INC2 LDAk #03 NEQ JMP INCr |
| 219 | 219 |
( br ) INC2 LDA #03 NEQ JMP INCr |
| 220 |
- STHkr #02 EQU STHr #01 EQU #0000 GTH2 |
|
| 221 |
- #10 SFT INC JMP2r |
|
| 220 |
+ STHkr #02 EQU STHr #01 EQU ORA |
|
| 221 |
+ DUP ADD INC JMP2r |
|
| 222 | 222 |
&no-cond |
| 223 | 223 |
( unknown ) |
| 224 | 224 |
NIP NIP |
| ... | ... |
@@ -81,7 +81,7 @@ BRK |
| 81 | 81 |
#03 STHkr #03 SFT #01 AND DUP ADD SUB .Screen/sprite DEO |
| 82 | 82 |
|
| 83 | 83 |
( buttons ) |
| 84 |
- .center/y LDZ2 #0000 ADD2 .Screen/y DEO2 |
|
| 84 |
+ .center/y LDZ2 .Screen/y DEO2 |
|
| 85 | 85 |
.center/x LDZ2 #0018 ADD2 .Screen/x DEO2 |
| 86 | 86 |
;controller-icn/button .Screen/addr DEO2 |
| 87 | 87 |
#03 STHkr #01 SFT #01 AND SUB .Screen/sprite DEO |
| ... | ... |
@@ -89,7 +89,7 @@ BRK |
| 89 | 89 |
;font-hex #0058 ADD2 .Screen/addr DEO2 |
| 90 | 90 |
#03 .Screen/sprite DEO |
| 91 | 91 |
|
| 92 |
- .center/y LDZ2 #0000 ADD2 .Screen/y DEO2 |
|
| 92 |
+ .center/y LDZ2 .Screen/y DEO2 |
|
| 93 | 93 |
.center/x LDZ2 #0024 ADD2 .Screen/x DEO2 |
| 94 | 94 |
;controller-icn/button .Screen/addr DEO2 |
| 95 | 95 |
#03 STHr #01 AND SUB .Screen/sprite DEO |
| ... | ... |
@@ -30,14 +30,14 @@ BRK |
| 30 | 30 |
.a LDZ2 #ffff EQU2 ,&input JCN |
| 31 | 31 |
.b LDZ2 #ffff EQU2 ,&output JCN |
| 32 | 32 |
( SUBLEQ ) |
| 33 |
- .b LDZ2 STH2k ,&get JSR .a LDZ2 ,&get JSR SUB2 STH2r #10 SFT2 ;program ADD2 STA2 |
|
| 33 |
+ .b LDZ2 STH2k ,&get JSR .a LDZ2 ,&get JSR SUB2 STH2r DUP2 ADD2 ;program ADD2 STA2 |
|
| 34 | 34 |
( SET ) |
| 35 | 35 |
.b LDZ2 ,&get JSR #0001 SUB2 #8000 LTH2 ,&end JCN POP2 .c LDZ2 &end |
| 36 | 36 |
|
| 37 | 37 |
JMP2r |
| 38 | 38 |
&input ( -- ) JMP2r |
| 39 | 39 |
&output ( -- ) .a LDZ2 ,&get JSR NIP #18 DEO JMP2r |
| 40 |
- &get ( a* -- b* ) #10 SFT2 ;program ADD2 LDA2 JMP2r |
|
| 40 |
+ &get ( a* -- b* ) DUP2 ADD2 ;program ADD2 LDA2 JMP2r |
|
| 41 | 41 |
|
| 42 | 42 |
@program ( hello world ) |
| 43 | 43 |
000f 0011 ffff 0011 ffff ffff 0010 0001 |
| ... | ... |
@@ -172,12 +172,12 @@ JMP2r |
| 172 | 172 |
#3c00 |
| 173 | 173 |
&loop |
| 174 | 174 |
( dots ) |
| 175 |
- #00 OVR DUP2 ADD2 ;table ADD2 LDA2 |
|
| 175 |
+ #00 OVRk 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 DUP2 ADD2 ;table ADD2 LDA2 |
|
| 180 |
+ #00 OVRk ADD2 ;table ADD2 LDA2 |
|
| 181 | 181 |
STH2k #0018 ;circle JSR2 SWP2 |
| 182 | 182 |
STH2r #001c ;circle JSR2 SWP2 |
| 183 | 183 |
#01 ;draw-line JSR2 |
| ... | ... |
@@ -207,7 +207,7 @@ JMP2r |
| 207 | 207 |
.Screen/y .lines/addr STZ |
| 208 | 208 |
|
| 209 | 209 |
&draw-line ( v1* v2* -- ) |
| 210 |
- OVR2 OVR2 LTH2 #01 JCN SWP2 |
|
| 210 |
+ LTH2k #01 JCN SWP2 |
|
| 211 | 211 |
STH2 |
| 212 | 212 |
|
| 213 | 213 |
&loop |
| ... | ... |
@@ -231,7 +231,7 @@ JMP2r |
| 231 | 231 |
JMP2r |
| 232 | 232 |
|
| 233 | 233 |
@modf ( dividend* divisor* SUB2 remainder* quotient* ) |
| 234 |
- OVR2 OVR2 DIV2 STH2k MUL2 SUB2 STH2r JMP2r |
|
| 234 |
+ DIV2k STH2k MUL2 SUB2 STH2r JMP2r |
|
| 235 | 235 |
|
| 236 | 236 |
@mul2hi ( a* b* -- product-top-16-bits* ) |
| 237 | 237 |
( |