| ... | ... |
@@ -24,18 +24,19 @@ |
| 24 | 24 |
#02ff .System/g DEO2 |
| 25 | 25 |
#024f .System/b DEO2 |
| 26 | 26 |
( resize ) |
| 27 |
- #00c0 .Screen/width DEO2 |
|
| 28 |
- #00c0 .Screen/height DEO2 |
|
| 27 |
+ #00c0 |
|
| 28 |
+ DUP2 .Screen/width DEO2 |
|
| 29 |
+ .Screen/height DEO2 |
|
| 29 | 30 |
( vectors ) |
| 30 | 31 |
;on-frame .Screen/vector DEO2 |
| 31 | 32 |
;on-mouse .Mouse/vector DEO2 |
| 32 | 33 |
;on-control .Controller/vector DEO2 |
| 33 | 34 |
( glider ) |
| 34 |
- #0703 ;set-cell JSR2 |
|
| 35 |
- #0704 ;set-cell JSR2 |
|
| 36 |
- #0504 ;set-cell JSR2 |
|
| 37 |
- #0705 ;set-cell JSR2 |
|
| 38 |
- #0605 ;set-cell JSR2 |
|
| 35 |
+ #0703 set-cell |
|
| 36 |
+ #0704 set-cell |
|
| 37 |
+ #0504 set-cell |
|
| 38 |
+ #0705 set-cell |
|
| 39 |
+ #0605 set-cell |
|
| 39 | 40 |
( center ) |
| 40 | 41 |
.Screen/width DEI2 #01 SFT2 #0040 SUB2 |
| 41 | 42 |
DUP2 .anchor/x STZ2 |
| ... | ... |
@@ -47,19 +48,19 @@ |
| 47 | 48 |
BRK |
| 48 | 49 |
|
| 49 | 50 |
@on-frame ( -> ) |
| 50 |
- |
|
| 51 |
+ |
|
| 51 | 52 |
.Mouse/state DEI #00 EQU #01 JCN [ BRK ] |
| 52 | 53 |
#0000 .world/count STZ2 |
| 53 | 54 |
.world/frame LDZ INC |
| 54 | 55 |
DUP .world/frame STZ |
| 55 | 56 |
#03 AND #00 EQU #01 JCN [ BRK ] |
| 56 |
- ;run JSR2 |
|
| 57 |
+ run |
|
| 57 | 58 |
&paused |
| 58 | 59 |
|
| 59 | 60 |
BRK |
| 60 | 61 |
|
| 61 | 62 |
@on-mouse ( -> ) |
| 62 |
- |
|
| 63 |
+ |
|
| 63 | 64 |
( clear last cursor ) |
| 64 | 65 |
;cursor .Screen/addr DEO2 |
| 65 | 66 |
.pointer/x LDZ2 .Screen/x DEO2 |
| ... | ... |
@@ -72,29 +73,29 @@ BRK |
| 72 | 73 |
#42 [ .Mouse/state DEI #00 NEQ ] ADD .Screen/sprite DEO |
| 73 | 74 |
( on touch in rect ) |
| 74 | 75 |
.Mouse/state DEI #00 NEQ #01 JCN [ BRK ] |
| 75 |
- .Mouse/x DEI2 .Mouse/y DEI2 .anchor ;within-rect JSR2 JMP [ BRK ] |
|
| 76 |
+ .Mouse/x DEI2 .Mouse/y DEI2 .anchor within-rect [ JMP BRK ] |
|
| 76 | 77 |
( paint ) |
| 77 | 78 |
.Mouse/x DEI2 .anchor/x LDZ2 SUB2 #01 SFT NIP |
| 78 | 79 |
.Mouse/y DEI2 .anchor/y LDZ2 SUB2 #01 SFT NIP |
| 79 |
- ;set-cell JSR2 |
|
| 80 |
+ set-cell |
|
| 80 | 81 |
( draw ) |
| 81 |
- ;draw-grid JSR2 |
|
| 82 |
+ draw-grid |
|
| 82 | 83 |
|
| 83 | 84 |
BRK |
| 84 | 85 |
|
| 85 | 86 |
@on-control ( -> ) |
| 86 | 87 |
|
| 87 | 88 |
( toggle play ) |
| 88 |
- .Controller/key DEI #20 NEQ ,&no-toggle JCN |
|
| 89 |
+ .Controller/key DEI #20 NEQ ?&no-toggle |
|
| 89 | 90 |
;on-frame |
| 90 |
- .Screen/vector DEI2 ;on-frame/paused EQU2 ,&swap JCN |
|
| 91 |
+ .Screen/vector DEI2 ;on-frame/paused EQU2 ?&swap |
|
| 91 | 92 |
POP2 ;on-frame/paused |
| 92 | 93 |
&swap |
| 93 | 94 |
.Screen/vector DEO2 |
| 94 | 95 |
&no-toggle |
| 95 | 96 |
( clear on home ) |
| 96 |
- .Controller/button DEI #08 NEQ ,&no-reset JCN |
|
| 97 |
- ;bank1 #0400 ;mclr JSR2 |
|
| 97 |
+ .Controller/button DEI #08 NEQ ?&no-reset |
|
| 98 |
+ ;bank1 #0400 mclr |
|
| 98 | 99 |
&no-reset |
| 99 | 100 |
|
| 100 | 101 |
BRK |
| ... | ... |
@@ -102,88 +103,87 @@ BRK |
| 102 | 103 |
@run ( -- ) |
| 103 | 104 |
|
| 104 | 105 |
( clear buffer ) |
| 105 |
- ;bank2 #1000 ;mclr JSR2 |
|
| 106 |
+ ;bank2 #1000 mclr |
|
| 106 | 107 |
( run grid ) |
| 107 | 108 |
#4000 |
| 108 | 109 |
&ver |
| 109 | 110 |
STHk |
| 110 | 111 |
#4000 |
| 111 | 112 |
&hor |
| 112 |
- DUP STHkr ,run-cell JSR |
|
| 113 |
- INC GTHk ,&hor JCN |
|
| 113 |
+ DUP STHkr run-cell |
|
| 114 |
+ INC GTHk ?&hor |
|
| 114 | 115 |
POP2 |
| 115 | 116 |
POPr |
| 116 |
- INC GTHk ,&ver JCN |
|
| 117 |
+ INC GTHk ?&ver |
|
| 117 | 118 |
POP2 |
| 118 | 119 |
( move buffer ) |
| 119 |
- ;bank2 ;bank1 #1000 ;mcpy JSR2 |
|
| 120 |
+ ;bank2 ;bank1 #1000 mcpy |
|
| 120 | 121 |
( draw ) |
| 121 |
- ;draw-grid ( .. ) |
|
| 122 |
- |
|
| 123 |
-JMP2 |
|
| 122 |
+!draw-grid |
|
| 124 | 123 |
|
| 125 | 124 |
@run-cell ( x y -- ) |
| 126 | 125 |
|
| 127 | 126 |
( x y ) DUP2k |
| 128 |
- ( neighbours ) ;get-neighbours JSR2 |
|
| 129 |
- ( state ) ROT ROT ;get-cell JSR2 |
|
| 130 |
- #00 EQU ,&dead JCN |
|
| 131 |
- DUP #02 LTH ,&dies JCN |
|
| 132 |
- DUP #03 GTH ,&dies JCN |
|
| 133 |
- POP ;&save JMP2 |
|
| 127 |
+ ( neighbours ) get-neighbours |
|
| 128 |
+ ( state ) ROT ROT get-cell |
|
| 129 |
+ #00 EQU ?&dead |
|
| 130 |
+ DUP #02 LTH ?&dies |
|
| 131 |
+ DUP #03 GTH ?&dies |
|
| 132 |
+ POP !&save |
|
| 134 | 133 |
&dies POP POP2 JMP2r |
| 135 | 134 |
&dead |
| 136 |
- DUP #03 EQU ,&birth JCN POP POP2 JMP2r |
|
| 137 |
- &birth POP ;&save ( .. ) |
|
| 135 |
+ DUP #03 EQU ?&birth POP POP2 JMP2r |
|
| 136 |
+ &birth POP |
|
| 137 |
+ |
|
| 138 |
+!&save |
|
| 138 | 139 |
|
| 139 |
-JMP2 |
|
| 140 |
- &save ( x y -- ) |
|
| 141 |
- STH2 #01 STH2r ,get-index JSR [ #1000 ADD2 ] STA |
|
| 140 |
+ &save ( x y -- ) |
|
| 141 |
+ STH2 #01 STH2r get-index #1000 ADD2 STA |
|
| 142 | 142 |
.world/count LDZ2 INC2 .world/count STZ2 |
| 143 | 143 |
JMP2r |
| 144 | 144 |
|
| 145 | 145 |
@get-index ( x y -- index* ) |
| 146 |
- |
|
| 147 |
- ( y ) #3f AND #00 SWP #60 SFT2 |
|
| 146 |
+ |
|
| 147 |
+ ( y ) #3f AND #00 SWP #60 SFT2 |
|
| 148 | 148 |
( x ) ROT #3f AND #00 SWP ADD2 |
| 149 | 149 |
;bank1 ADD2 |
| 150 | 150 |
|
| 151 | 151 |
JMP2r |
| 152 | 152 |
|
| 153 | 153 |
@set-cell ( x y -- ) |
| 154 |
- |
|
| 155 |
- STH2 #01 STH2r ,get-index JSR STA |
|
| 154 |
+ |
|
| 155 |
+ STH2 #01 STH2r get-index STA |
|
| 156 | 156 |
|
| 157 | 157 |
JMP2r |
| 158 | 158 |
|
| 159 | 159 |
@get-cell ( x y -- cell ) |
| 160 |
- |
|
| 161 |
- ,get-index JSR LDA |
|
| 160 |
+ |
|
| 161 |
+ get-index LDA |
|
| 162 | 162 |
|
| 163 | 163 |
JMP2r |
| 164 | 164 |
|
| 165 | 165 |
@get-neighbours ( x y -- neighbours ) |
| 166 |
- |
|
| 166 |
+ |
|
| 167 | 167 |
,&origin STR2 |
| 168 | 168 |
LITr 00 |
| 169 | 169 |
#0800 |
| 170 | 170 |
&loop |
| 171 | 171 |
#00 OVRk ADD2 ;&mask ADD2 LDA2 [ LIT2 &origin $2 ] |
| 172 |
- ROT ADD STH ADD STHr ;get-cell JSR2 STH ADDr |
|
| 173 |
- INC GTHk ,&loop JCN |
|
| 172 |
+ ROT ADD STH ADD STHr get-cell STH ADDr |
|
| 173 |
+ INC GTHk ?&loop |
|
| 174 | 174 |
POP2 |
| 175 | 175 |
STHr |
| 176 | 176 |
|
| 177 | 177 |
JMP2r |
| 178 |
- &mask ffff 00ff 01ff ff00 0100 ff01 0001 0101 |
|
| 178 |
+ &mask [ ffff 00ff 01ff ff00 0100 ff01 0001 0101 ] |
|
| 179 | 179 |
|
| 180 | 180 |
@draw-grid ( -- ) |
| 181 |
- |
|
| 181 |
+ |
|
| 182 | 182 |
( draw cell count ) |
| 183 | 183 |
.anchor/x LDZ2 .Screen/x DEO2 |
| 184 | 184 |
.anchor/y2 LDZ2 #0008 ADD2 .Screen/y DEO2 |
| 185 | 185 |
#01 .Screen/auto DEO |
| 186 |
- .world/count LDZ2 ;draw-short JSR2 |
|
| 186 |
+ .world/count LDZ2 draw-short |
|
| 187 | 187 |
#00 .Screen/auto DEO |
| 188 | 188 |
#4000 |
| 189 | 189 |
&ver |
| ... | ... |
@@ -192,53 +192,50 @@ JMP2r |
| 192 | 192 |
#4000 |
| 193 | 193 |
&hor |
| 194 | 194 |
#00 OVRk ADD2 .anchor/x LDZ2 ADD2 .Screen/x DEO2 |
| 195 |
- DUP STHkr ;get-cell JSR2 INC .Screen/pixel DEO |
|
| 196 |
- INC GTHk ,&hor JCN |
|
| 195 |
+ DUP STHkr get-cell INC .Screen/pixel DEO |
|
| 196 |
+ INC GTHk ?&hor |
|
| 197 | 197 |
POP2 |
| 198 | 198 |
POPr |
| 199 |
- INC GTHk ,&ver JCN |
|
| 199 |
+ INC GTHk ?&ver |
|
| 200 | 200 |
POP2 |
| 201 | 201 |
|
| 202 | 202 |
JMP2r |
| 203 | 203 |
|
| 204 | 204 |
@draw-short ( short* -- ) |
| 205 | 205 |
|
| 206 |
- SWP ,draw-byte JSR |
|
| 206 |
+ SWP draw-byte |
|
| 207 | 207 |
|
| 208 | 208 |
@draw-byte ( byte color -- ) |
| 209 | 209 |
|
| 210 |
- DUP #04 SFT ,draw-hex JSR #0f AND |
|
| 210 |
+ DUP #04 SFT draw-hex #0f AND |
|
| 211 | 211 |
|
| 212 | 212 |
@draw-hex ( char color -- ) |
| 213 | 213 |
|
| 214 | 214 |
#00 SWP #30 SFT2 ;font-hex ADD2 .Screen/addr DEO2 |
| 215 |
- #03 .Screen/sprite DEO |
|
| 215 |
+ [ LIT2 03 -Screen/sprite ] DEO |
|
| 216 | 216 |
|
| 217 | 217 |
JMP2r |
| 218 | 218 |
|
| 219 | 219 |
@within-rect ( x* y* rect -- flag ) |
| 220 |
- |
|
| 220 |
+ |
|
| 221 | 221 |
STH |
| 222 |
- ( y < rect.y1 ) DUP2 STHkr INC INC LDZ2 LTH2 ,&skip JCN |
|
| 223 |
- ( y > rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ,&skip JCN |
|
| 222 |
+ ( y < rect.y1 ) DUP2 STHkr INC INC LDZ2 LTH2 ?&skip |
|
| 223 |
+ ( y > rect.y2 ) DUP2 STHkr #06 ADD LDZ2 GTH2 ?&skip |
|
| 224 | 224 |
SWP2 |
| 225 |
- ( x < rect.x1 ) DUP2 STHkr LDZ2 LTH2 ,&skip JCN |
|
| 226 |
- ( x > rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ,&skip JCN |
|
| 225 |
+ ( x < rect.x1 ) DUP2 STHkr LDZ2 LTH2 ?&skip |
|
| 226 |
+ ( x > rect.x2 ) DUP2 STHkr #04 ADD LDZ2 GTH2 ?&skip |
|
| 227 | 227 |
POP2 POP2 POPr |
| 228 | 228 |
#01 |
| 229 | 229 |
JMP2r |
| 230 | 230 |
&skip |
| 231 |
- POP2 POP2 POPr |
|
| 232 |
- #00 |
|
| 233 |
- |
|
| 234 |
-JMP2r |
|
| 231 |
+ POP2 POP2 POPr #00 JMP2r |
|
| 235 | 232 |
|
| 236 | 233 |
@mclr ( addr* len* -- ) |
| 237 | 234 |
|
| 238 | 235 |
OVR2 ADD2 SWP2 |
| 239 | 236 |
&loop |
| 240 | 237 |
STH2k #00 STH2r STA |
| 241 |
- INC2 GTH2k ,&loop JCN |
|
| 238 |
+ INC2 GTH2k ?&loop |
|
| 242 | 239 |
POP2 POP2 |
| 243 | 240 |
|
| 244 | 241 |
JMP2r |
| ... | ... |
@@ -249,16 +246,16 @@ JMP2r |
| 249 | 246 |
OVR2 ADD2 SWP2 |
| 250 | 247 |
&loop |
| 251 | 248 |
LDAk STH2kr STA INC2r |
| 252 |
- INC2 GTH2k ,&loop JCN |
|
| 249 |
+ INC2 GTH2k ?&loop |
|
| 253 | 250 |
POP2 POP2 |
| 254 | 251 |
POP2r |
| 255 | 252 |
|
| 256 | 253 |
JMP2r |
| 257 | 254 |
|
| 258 |
-@cursor |
|
| 259 |
- 80c0 e0f0 f8e0 1000 |
|
| 255 |
+@cursor [ |
|
| 256 |
+ 80c0 e0f0 f8e0 1000 ] |
|
| 260 | 257 |
|
| 261 |
-@font-hex |
|
| 258 |
+@font-hex [ |
|
| 262 | 259 |
7c82 8282 8282 7c00 |
| 263 | 260 |
3010 1010 1010 3800 |
| 264 | 261 |
7c82 027c 8080 fe00 |
| ... | ... |
@@ -274,6 +271,6 @@ JMP2r |
| 274 | 271 |
7c82 8080 8082 7c00 |
| 275 | 272 |
fc82 8282 8282 fc00 |
| 276 | 273 |
fe80 80f0 8080 fe00 |
| 277 |
- fe80 80f0 8080 8000 |
|
| 274 |
+ fe80 80f0 8080 8000 ] |
|
| 278 | 275 |
|
| 279 | 276 |
@bank1 $1000 @bank2 |