... | ... |
@@ -3,6 +3,7 @@ |
3 | 3 |
%INCR2 { #0001 ADD2 } |
4 | 4 |
%DECR2 { #0001 SUB2 } |
5 | 5 |
%HALF2 { #0002 DIV2 } |
6 |
+%JMC2 { ROT JMP2? POP2 } |
|
6 | 7 |
|
7 | 8 |
;slime { color 1 } |
8 | 9 |
|
... | ... |
@@ -26,21 +27,21 @@ BRK |
26 | 27 |
( hold ctrl key to change slime color ) |
27 | 28 |
|
28 | 29 |
~Controller.buttons #0f AND |
29 |
- DUP #01 NEQ ,$no-ctrl ROT JMP2? POP2 #05 =slime $no-ctrl |
|
30 |
- DUP #02 NEQ ,$no-alt ROT JMP2? POP2 #0f =slime $no-alt |
|
30 |
+ DUP #01 NEQ ,$no-ctrl JMC2 #05 =slime $no-ctrl |
|
31 |
+ DUP #02 NEQ ,$no-alt JMC2 #0f =slime $no-alt |
|
31 | 32 |
POP |
32 | 33 |
|
33 | 34 |
( clear ) #10 =Sprite.color |
34 | 35 |
|
35 | 36 |
( detect movement ) |
36 | 37 |
~Controller.buttons #f0 AND |
37 |
- DUP #04 ROR #01 AND #01 NEQ ,$no-up ROT JMP2? POP2 |
|
38 |
+ DUP #04 ROR #01 AND #01 NEQ ,$no-up JMC2 |
|
38 | 39 |
( move ) ~Sprite.y DECR2 =Sprite.y ,up_icn =Sprite.addr $no-up |
39 |
- DUP #05 ROR #01 AND #01 NEQ ,$no-down ROT JMP2? POP2 |
|
40 |
+ DUP #05 ROR #01 AND #01 NEQ ,$no-down JMC2 |
|
40 | 41 |
( move ) ~Sprite.y INCR2 =Sprite.y ,down_icn =Sprite.addr $no-down |
41 |
- DUP #06 ROR #01 AND #01 NEQ ,$no-left ROT JMP2? POP2 |
|
42 |
+ DUP #06 ROR #01 AND #01 NEQ ,$no-left JMC2 |
|
42 | 43 |
( move ) ~Sprite.x DECR2 =Sprite.x ,left_icn =Sprite.addr $no-left |
43 |
- DUP #07 ROR #01 AND #01 NEQ ,$no-right ROT JMP2? POP2 |
|
44 |
+ DUP #07 ROR #01 AND #01 NEQ ,$no-right JMC2 |
|
44 | 45 |
( move ) ~Sprite.x INCR2 =Sprite.x ,right_icn =Sprite.addr $no-right |
45 | 46 |
POP |
46 | 47 |
|
... | ... |
@@ -62,7 +63,6 @@ BRK |
62 | 63 |
|
63 | 64 |
|d000 @ERROR BRK |
64 | 65 |
|
65 |
-|FF00 ;Console { pad 8 char 1 byte 1 short 2 } |
|
66 | 66 |
|FF10 ;Screen { width 2 height 2 pad 4 y 2 x 2 color 1 } |
67 | 67 |
|FF20 ;Sprite { pad 8 x 2 y 2 addr 2 color 1 } |
68 | 68 |
|FF30 ;Controller { buttons 1 } |