... | ... |
@@ -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 |
|