| ... | ... |
@@ -1,9 +1,5 @@ |
| 1 | 1 |
( uxnasm projects/examples/demos/snake.tal bin/snake.rom && uxnemu bin/snake.rom ) |
| 2 | 2 |
|
| 3 |
-%+ { ADD } %/ { DIV }
|
|
| 4 |
-%< { LTH } %> { GTH } %! { NEQ }
|
|
| 5 |
-%++ { ADD2 } %// { DIV2 }
|
|
| 6 |
-%<< { LTH2 } %>> { GTH2 } %!! { NEQ2 }
|
|
| 7 | 3 |
%2/ { #01 SFT } %2* { #10 SFT }
|
| 8 | 4 |
%8// { #03 SFT2 } %8** { #30 SFT2 }
|
| 9 | 5 |
%MOD { DIVk MUL SUB }
|
| ... | ... |
@@ -69,7 +65,7 @@ BRK |
| 69 | 65 |
|
| 70 | 66 |
( clear ) #00 ;draw-snake JSR2 |
| 71 | 67 |
( update ) ;move JSR2 |
| 72 |
- ( draw ) #02 .snake/dead LDZ + ;draw-snake JSR2 |
|
| 68 |
+ ( draw ) #02 .snake/dead LDZ ADD ;draw-snake JSR2 |
|
| 73 | 69 |
#83 ;draw-apple JSR2 |
| 74 | 70 |
( score ) .snake/length LDZ #41 ;draw-score JSR2 |
| 75 | 71 |
( reset ) #00 .arena/timer STZ |
| ... | ... |
@@ -79,7 +75,7 @@ BRK |
| 79 | 75 |
@on-button ( -> ) |
| 80 | 76 |
|
| 81 | 77 |
.Controller/button DEI |
| 82 |
- DUP #08 ! ,&no-escape JCN |
|
| 78 |
+ DUP #08 NEQ ,&no-escape JCN |
|
| 83 | 79 |
;reset JSR2 |
| 84 | 80 |
&no-escape |
| 85 | 81 |
#04 SFT DUP #00 EQU ,&skip JCN |
| ... | ... |
@@ -111,8 +107,8 @@ RTN |
| 111 | 107 |
.snake/x LDZ2 STH2 |
| 112 | 108 |
.snake/length LDZ #00 |
| 113 | 109 |
&loop |
| 114 |
- ( pop ) DUP 2* .snake/tail + LDZ2 STH2 SWP2r |
|
| 115 |
- ( push ) DUP 2* .snake/tail + STH2r ROT STZ2 |
|
| 110 |
+ ( pop ) DUP 2* .snake/tail ADD LDZ2 STH2 SWP2r |
|
| 111 |
+ ( push ) DUP 2* .snake/tail ADD STH2r ROT STZ2 |
|
| 116 | 112 |
INC GTHk ,&loop JCN |
| 117 | 113 |
POP2 |
| 118 | 114 |
POP2r |
| ... | ... |
@@ -120,22 +116,22 @@ RTN |
| 120 | 116 |
.snake/dead LDZ #00 EQU JMP RTN |
| 121 | 117 |
|
| 122 | 118 |
.snake/direction LDZ |
| 123 |
- DUP #01 ! ,&no-up JCN |
|
| 119 |
+ DUP #01 NEQ ,&no-up JCN |
|
| 124 | 120 |
.snake/y LDZ #01 SUB |
| 125 | 121 |
.arena/h LDZ MAX |
| 126 | 122 |
.snake/y STZ |
| 127 | 123 |
&no-up |
| 128 |
- DUP #02 ! ,&no-down JCN |
|
| 124 |
+ DUP #02 NEQ ,&no-down JCN |
|
| 129 | 125 |
.snake/y LDZ INC |
| 130 | 126 |
.arena/h LDZ MOD |
| 131 | 127 |
.snake/y STZ |
| 132 | 128 |
&no-down |
| 133 |
- DUP #04 ! ,&no-left JCN |
|
| 129 |
+ DUP #04 NEQ ,&no-left JCN |
|
| 134 | 130 |
.snake/x LDZ #01 SUB |
| 135 | 131 |
.arena/w LDZ MAX |
| 136 | 132 |
.snake/x STZ |
| 137 | 133 |
&no-left |
| 138 |
- DUP #08 ! ,&no-right JCN |
|
| 134 |
+ DUP #08 NEQ ,&no-right JCN |
|
| 139 | 135 |
.snake/x LDZ INC |
| 140 | 136 |
.arena/w LDZ MOD |
| 141 | 137 |
.snake/x STZ |
| ... | ... |
@@ -152,7 +148,7 @@ RTN |
| 152 | 148 |
|
| 153 | 149 |
.snake/length LDZ #01 |
| 154 | 150 |
&loop-body |
| 155 |
- ( pop ) DUP 2* .snake/tail + LDZ2 |
|
| 151 |
+ ( pop ) DUP 2* .snake/tail ADD LDZ2 |
|
| 156 | 152 |
.snake/x LDZ2 NEQ2 ,&no-collision-body JCN |
| 157 | 153 |
#01 .snake/dead STZ |
| 158 | 154 |
#03 ;draw-snake JSR2 |
| ... | ... |
@@ -164,9 +160,9 @@ RTN |
| 164 | 160 |
|
| 165 | 161 |
@add-apple ( -- ) |
| 166 | 162 |
|
| 167 |
- .DateTime/hour DEI2 .DateTime/minute DEI2 MUL2 #1234 MUL2 + |
|
| 163 |
+ .DateTime/hour DEI2 .DateTime/minute DEI2 MUL2 #1234 MUL2 ADD |
|
| 168 | 164 |
.arena/w LDZ MOD .apple/x STZ |
| 169 |
- .DateTime/hour DEI2 .DateTime/minute DEI2 MUL2 #abcd MUL2 + |
|
| 165 |
+ .DateTime/hour DEI2 .DateTime/minute DEI2 MUL2 #abcd MUL2 ADD |
|
| 170 | 166 |
.arena/h LDZ MOD .apple/y STZ |
| 171 | 167 |
|
| 172 | 168 |
RTN |
| ... | ... |
@@ -178,8 +174,8 @@ RTN |
| 178 | 174 |
;snake-icns .Screen/addr DEO2 |
| 179 | 175 |
.snake/length LDZ #00 |
| 180 | 176 |
&loop |
| 181 |
- DUP 2* .snake/tail + LDZ TOS 8** .Screen/x DEO2 |
|
| 182 |
- DUP 2* .snake/tail + INC LDZ TOS 8** .Screen/y DEO2 |
|
| 177 |
+ DUP 2* .snake/tail ADD LDZ TOS 8** .Screen/x DEO2 |
|
| 178 |
+ DUP 2* .snake/tail ADD INC LDZ TOS 8** .Screen/y DEO2 |
|
| 183 | 179 |
STHkr .Screen/sprite DEO |
| 184 | 180 |
INC GTHk ,&loop JCN |
| 185 | 181 |
POP2 |
| ... | ... |
@@ -205,11 +201,11 @@ RTN |
| 205 | 201 |
STH |
| 206 | 202 |
#0010 .Screen/x DEO2 |
| 207 | 203 |
#0010 .Screen/y DEO2 |
| 208 |
- DUP #04 SFT TOS 8** ;font-hex ++ .Screen/addr DEO2 |
|
| 209 |
- .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
| 204 |
+ DUP #04 SFT TOS 8** ;font-hex ADD2 .Screen/addr DEO2 |
|
| 205 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 210 | 206 |
( draw ) STHkr .Screen/sprite DEO |
| 211 |
- #0f AND TOS 8** ;font-hex ++ .Screen/addr DEO2 |
|
| 212 |
- .Screen/x DEI2 #0008 ++ .Screen/x DEO2 |
|
| 207 |
+ #0f AND TOS 8** ;font-hex ADD2 .Screen/addr DEO2 |
|
| 208 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 213 | 209 |
( draw ) STHr .Screen/sprite DEO |
| 214 | 210 |
|
| 215 | 211 |
RTN |
| ... | ... |
@@ -1,10 +1,5 @@ |
| 1 | 1 |
( art by @ritualdust ) |
| 2 | 2 |
|
| 3 |
-%+ { ADD } %/ { DIV }
|
|
| 4 |
-%< { LTH } %> { GTH } %! { NEQ }
|
|
| 5 |
-%++ { ADD2 } %-- { SUB2 } %// { DIV2 }
|
|
| 6 |
-%<< { LTH2 } %>> { GTH2 } %!! { NEQ2 }
|
|
| 7 |
- |
|
| 8 | 3 |
%8** { #30 SFT2 }
|
| 9 | 4 |
%10** { #40 SFT2 }
|
| 10 | 5 |
|
| ... | ... |
@@ -64,28 +59,28 @@ BRK |
| 64 | 59 |
@on-button ( -> ) |
| 65 | 60 |
|
| 66 | 61 |
.Controller/button DEI |
| 67 |
- DUP #00 ! ,&no-null JCN |
|
| 62 |
+ DUP #00 NEQ ,&no-null JCN |
|
| 68 | 63 |
POP BRK |
| 69 | 64 |
&no-null |
| 70 |
- DUP #10 ! ,&no-up JCN |
|
| 65 |
+ DUP #10 NEQ ,&no-up JCN |
|
| 71 | 66 |
#00 .player/d STZ |
| 72 | 67 |
#00 ;draw-mouse JSR2 |
| 73 | 68 |
.player/y LDZk DEC SWP STZ |
| 74 | 69 |
MOUSE ;draw-mouse JSR2 |
| 75 | 70 |
&no-up |
| 76 |
- DUP #20 ! ,&no-down JCN |
|
| 71 |
+ DUP #20 NEQ ,&no-down JCN |
|
| 77 | 72 |
#01 .player/d STZ |
| 78 | 73 |
#00 ;draw-mouse JSR2 |
| 79 | 74 |
.player/y LDZk INC SWP STZ |
| 80 | 75 |
MOUSE ;draw-mouse JSR2 |
| 81 | 76 |
&no-down |
| 82 |
- DUP #40 ! ,&no-left JCN |
|
| 77 |
+ DUP #40 NEQ ,&no-left JCN |
|
| 83 | 78 |
#02 .player/d STZ |
| 84 | 79 |
#00 ;draw-mouse JSR2 |
| 85 | 80 |
.player/x LDZk DEC SWP STZ |
| 86 | 81 |
MOUSE ;draw-mouse JSR2 |
| 87 | 82 |
&no-left |
| 88 |
- DUP #80 ! ,&no-right JCN |
|
| 83 |
+ DUP #80 NEQ ,&no-right JCN |
|
| 89 | 84 |
#03 .player/d STZ |
| 90 | 85 |
#00 ;draw-mouse JSR2 |
| 91 | 86 |
.player/x LDZk INC SWP STZ |
| ... | ... |
@@ -103,10 +98,10 @@ BRK |
| 103 | 98 |
|
| 104 | 99 |
@draw-mouse ( color -- ) |
| 105 | 100 |
|
| 106 |
- ;spritesheet #29 .player/d LDZ + TOS DUP2 DEBUG2 10** ++ .Screen/addr DEO2 |
|
| 107 |
- .player/x LDZ TOS 8** .room/x LDZ2 ++ .Screen/x DEO2 |
|
| 108 |
- .player/y LDZ TOS 8** .room/y LDZ2 ++ .Screen/y DEO2 |
|
| 109 |
- #40 + .Screen/sprite DEO |
|
| 101 |
+ ;spritesheet #29 .player/d LDZ ADD TOS DUP2 DEBUG2 10** ADD2 .Screen/addr DEO2 |
|
| 102 |
+ .player/x LDZ TOS 8** .room/x LDZ2 ADD2 .Screen/x DEO2 |
|
| 103 |
+ .player/y LDZ TOS 8** .room/y LDZ2 ADD2 .Screen/y DEO2 |
|
| 104 |
+ #40 ADD .Screen/sprite DEO |
|
| 110 | 105 |
|
| 111 | 106 |
RTN |
| 112 | 107 |
|
| ... | ... |
@@ -115,13 +110,13 @@ RTN |
| 115 | 110 |
STH2 |
| 116 | 111 |
#1000 |
| 117 | 112 |
&ver |
| 118 |
- DUP TOS 8** .room/y LDZ2 ++ .Screen/y DEO2 |
|
| 113 |
+ DUP TOS 8** .room/y LDZ2 ADD2 .Screen/y DEO2 |
|
| 119 | 114 |
#1000 |
| 120 | 115 |
&hor |
| 121 |
- DUP TOS 8** .room/x LDZ2 ++ .Screen/x DEO2 |
|
| 122 |
- ( get id ) STH2 DUP STH2r ROT OVR SWP #40 SFT + TOS |
|
| 123 |
- ( tile ) DUP2 STH2kr ++ LDA TOS 10** ;spritesheet ++ .Screen/addr DEO2 |
|
| 124 |
- ( color ) STH2kr #0100 ++ ++ LDA .Screen/sprite DEO |
|
| 116 |
+ DUP TOS 8** .room/x LDZ2 ADD2 .Screen/x DEO2 |
|
| 117 |
+ ( get id ) STH2 DUP STH2r ROT OVR SWP #40 SFT ADD TOS |
|
| 118 |
+ ( tile ) DUP2 STH2kr ADD2 LDA TOS 10** ;spritesheet ADD2 .Screen/addr DEO2 |
|
| 119 |
+ ( color ) STH2kr #0100 ADD2 ADD2 LDA .Screen/sprite DEO |
|
| 125 | 120 |
INC GTHk ,&hor JCN |
| 126 | 121 |
POP2 |
| 127 | 122 |
INC GTHk ,&ver JCN |
| ... | ... |
@@ -2,11 +2,6 @@ |
| 2 | 2 |
|
| 3 | 3 |
( uxnasm rule110.tal rule110.rom && uxnemu rule110.rom ) |
| 4 | 4 |
|
| 5 |
-%+ { ADD } %* { MUL } %/ { DIV }
|
|
| 6 |
-%< { LTH } %> { GTH } %! { NEQ }
|
|
| 7 |
-%++ { ADD2 } %** { MUL2 } %// { DIV2 }
|
|
| 8 |
-%<< { LTH2 } %>> { GTH2 } %!! { NEQ2 }
|
|
| 9 |
- |
|
| 10 | 5 |
%2* { #10 SFT } %2/ { #01 SFT } %2** { #10 SFT2 } %2// { #01 SFT2 }
|
| 11 | 6 |
%4* { #20 SFT } %4/ { #02 SFT } %4** { #20 SFT2 } %4// { #02 SFT2 }
|
| 12 | 7 |
%8* { #30 SFT } %8/ { #03 SFT } %8** { #30 SFT2 } %8// { #03 SFT2 }
|
| ... | ... |
@@ -18,8 +13,8 @@ |
| 18 | 13 |
%8MOD { #07 AND } %8MOD2 { #0007 AND2 }
|
| 19 | 14 |
%10MOD { #0f AND } %10MOD2 { #000f AND2 }
|
| 20 | 15 |
|
| 21 |
-%ROL2 { DUP2 #0f SFT2 SWP2 #10 SFT2 ++ }
|
|
| 22 |
-%ROR2 { DUP2 #f0 SFT2 SWP2 #01 SFT2 ++ }
|
|
| 16 |
+%ROL2 { DUP2 #0f SFT2 SWP2 #10 SFT2 ADD2 }
|
|
| 17 |
+%ROR2 { DUP2 #f0 SFT2 SWP2 #01 SFT2 ADD2 }
|
|
| 23 | 18 |
|
| 24 | 19 |
%DEBUG { ;print-hex/byte JSR2 #0a18 DEO }
|
| 25 | 20 |
%DEBUG2 { ;print-hex JSR2 #0a18 DEO }
|
| ... | ... |
@@ -79,8 +74,8 @@ RTN |
| 79 | 74 |
( shift ) INCk #10 SWP SUB |
| 80 | 75 |
( get address ) STHkr 2* LDZ2 |
| 81 | 76 |
( bit ) ROT SFT2 #0001 AND2 |
| 82 |
- ( get sprite ) 8** ;cell-icns ++ .Screen/addr DEO2 |
|
| 83 |
- #01 STHkr #00 EQU + .Screen/sprite DEO |
|
| 77 |
+ ( get sprite ) 8** ;cell-icns ADD2 .Screen/addr DEO2 |
|
| 78 |
+ #01 STHkr #00 EQU ADD .Screen/sprite DEO |
|
| 84 | 79 |
INC GTHk ,&loop JCN |
| 85 | 80 |
POP2 |
| 86 | 81 |
POPr |
| ... | ... |
@@ -93,10 +88,10 @@ RTN |
| 93 | 88 |
ROL2 STH2 |
| 94 | 89 |
#1000 |
| 95 | 90 |
&loop |
| 96 |
- ( get 3-bits ) STH2kr #e000 AND2 #0d SFT2 ;rule ++ LDA STH |
|
| 91 |
+ ( get 3-bits ) STH2kr #e000 AND2 #0d SFT2 ;rule ADD2 LDA STH |
|
| 97 | 92 |
( get result ) DUP #40 SFT #00 STHr ROT SFT2 |
| 98 | 93 |
( reset ) ROR2 ROR2 ROR2 |
| 99 |
- ( save ) ,&res LDR2 ++ ,&res STR2 |
|
| 94 |
+ ( save ) ,&res LDR2 ADD2 ,&res STR2 |
|
| 100 | 95 |
STH2r ROR2 STH2 |
| 101 | 96 |
INC GTHk ,&loop JCN |
| 102 | 97 |
POP2 |
| ... | ... |
@@ -123,10 +118,10 @@ RTN |
| 123 | 118 |
.Mouse/y DEI2 DUP2 ,&y STR2 .Screen/y DEO2 |
| 124 | 119 |
|
| 125 | 120 |
( colorize on state ) |
| 126 |
- #43 [ .Mouse/state DEI #00 ! ] SUB .Screen/sprite DEO |
|
| 121 |
+ #43 [ .Mouse/state DEI #00 NEQ ] SUB .Screen/sprite DEO |
|
| 127 | 122 |
|
| 128 | 123 |
( on click ) |
| 129 |
- .Mouse/state DEI #00 ! JMP BRK |
|
| 124 |
+ .Mouse/state DEI #00 NEQ JMP BRK |
|
| 130 | 125 |
|
| 131 | 126 |
( toggle bit ) |
| 132 | 127 |
.input LDZ2k |
| ... | ... |
@@ -145,8 +140,8 @@ BRK |
| 145 | 140 |
STHk #04 SFT ,&parse JSR #18 DEO |
| 146 | 141 |
STHr #0f AND ,&parse JSR #18 DEO |
| 147 | 142 |
RTN |
| 148 |
- &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 + RTN |
|
| 149 |
- &above #57 + RTN |
|
| 143 |
+ &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD RTN |
|
| 144 |
+ &above #57 ADD RTN |
|
| 150 | 145 |
|
| 151 | 146 |
RTN |
| 152 | 147 |
|