| ... | ... |
@@ -1,15 +1,18 @@ |
| 1 | 1 |
( GUI Animation ) |
| 2 | 2 |
|
| 3 | 3 |
%2// { #01 SFT2 }
|
| 4 |
+%AUTO-XADDR { #05 .Screen/auto DEO }
|
|
| 4 | 5 |
|
| 5 | 6 |
( devices ) |
| 6 | 7 |
|
| 7 |
-|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
|
| 8 |
-|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] |
|
| 8 |
+|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
|
| 9 |
+|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
| 9 | 10 |
|
| 10 | 11 |
|0000 |
| 11 | 12 |
|
| 12 |
-@dvd [ &x $2 &y $2 &dx $1 &dy $1 ] |
|
| 13 |
+@dvd |
|
| 14 |
+ &x $2 &y $2 |
|
| 15 |
+ &dx $1 &dy $1 |
|
| 13 | 16 |
|
| 14 | 17 |
( program ) |
| 15 | 18 |
|
| ... | ... |
@@ -27,52 +30,54 @@ |
| 27 | 30 |
.Screen/width DEI2 2// .dvd/x STZ2 |
| 28 | 31 |
.Screen/height DEI2 2// .dvd/y STZ2 |
| 29 | 32 |
|
| 33 |
+ AUTO-XADDR |
|
| 34 |
+ |
|
| 30 | 35 |
#01 ;draw-dvd JSR2 |
| 31 | 36 |
|
| 32 | 37 |
BRK |
| 33 | 38 |
|
| 34 | 39 |
@on-frame ( -> ) |
| 35 | 40 |
|
| 36 |
- ( clear ) #00 ;draw-dvd JSR2 |
|
| 41 |
+ #00 ;draw-dvd JSR2 |
|
| 42 |
+ |
|
| 37 | 43 |
( case: hit-right ) .dvd/x LDZ2 .Screen/width DEI2 #0020 SUB2 EQU2 |
| 38 | 44 |
( case: hit-left ) .dvd/x LDZ2 #0000 EQU2 |
| 39 | 45 |
#0000 EQU2 ,&no-flipx JCN |
| 40 |
- .dvd/dx LDZ #00 EQU .dvd/dx STZ &no-flipx |
|
| 46 |
+ .dvd/dx LDZk #00 EQU SWP STZ &no-flipx |
|
| 47 |
+ |
|
| 41 | 48 |
( case: hit-bottom ) .dvd/y LDZ2 .Screen/height DEI2 #0010 SUB2 EQU2 |
| 42 | 49 |
( case: hit-top ) .dvd/y LDZ2 #0000 EQU2 |
| 43 | 50 |
#0000 EQU2 ,&no-flipy JCN |
| 44 |
- .dvd/dy LDZ #00 EQU .dvd/dy STZ &no-flipy |
|
| 51 |
+ .dvd/dy LDZk #00 EQU SWP STZ &no-flipy |
|
| 52 |
+ |
|
| 45 | 53 |
( incr ) .dvd/x LDZ2 #0001 #00 .dvd/dx LDZ #00 EQU DUP2 ADD2 SUB2 ADD2 .dvd/x STZ2 |
| 46 | 54 |
( incr ) .dvd/y LDZ2 #0001 #00 .dvd/dy LDZ #00 EQU DUP2 ADD2 SUB2 ADD2 .dvd/y STZ2 |
| 47 |
- ( draw ) #01 ;draw-dvd JSR2 |
|
| 55 |
+ |
|
| 56 |
+ #01 ;draw-dvd JSR2 |
|
| 48 | 57 |
|
| 49 | 58 |
BRK |
| 50 | 59 |
|
| 51 | 60 |
@draw-dvd ( color -- ) |
| 52 | 61 |
|
| 53 |
- ( stash ) STH |
|
| 62 |
+ STH |
|
| 54 | 63 |
;dvd_icn .Screen/addr DEO2 |
| 55 |
- [ .dvd/y LDZ2 #0010 ADD2 ] .dvd/y LDZ2 |
|
| 56 |
- &ver |
|
| 57 |
- DUP2 .Screen/y DEO2 |
|
| 58 |
- [ .dvd/x LDZ2 #0020 ADD2 ] .dvd/x LDZ2 |
|
| 59 |
- &hor |
|
| 60 |
- DUP2 .Screen/x DEO2 |
|
| 61 |
- ( draw ) STHkr .Screen/sprite DEO |
|
| 62 |
- ( next ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2 |
|
| 63 |
- ( incr ) #0008 ADD2 |
|
| 64 |
- GTH2k ,&hor JCN |
|
| 65 |
- POP2 POP2 |
|
| 66 |
- ( incr ) #0008 ADD2 |
|
| 67 |
- GTH2k ,&ver JCN |
|
| 68 |
- POP2 POP2 |
|
| 69 |
- ( destroy ) POPr |
|
| 64 |
+ .dvd/x LDZ2 .Screen/x DEO2 |
|
| 65 |
+ .dvd/y LDZ2 .Screen/y DEO2 |
|
| 66 |
+ #0800 |
|
| 67 |
+ &loop |
|
| 68 |
+ DUP #04 NEQ ,&no-lb JCN |
|
| 69 |
+ .Screen/x DEI2k #0020 SUB2 ROT DEO2 |
|
| 70 |
+ .Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
| 71 |
+ &no-lb |
|
| 72 |
+ STHkr .Screen/sprite DEO |
|
| 73 |
+ INC GTHk ,&loop JCN |
|
| 74 |
+ POP2 |
|
| 75 |
+ POPr |
|
| 70 | 76 |
|
| 71 | 77 |
JMP2r |
| 72 | 78 |
|
| 73 |
-@dvd_icn [ |
|
| 79 |
+@dvd_icn ( 4 x 2 ) |
|
| 74 | 80 |
001f 3f38 3838 787f 00fe fe7e 7777 e3c3 |
| 75 | 81 |
000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc |
| 76 | 82 |
7f00 000f ff7f 0700 0301 00ff f0f8 ff00 |
| 77 | 83 |
8700 00ff 7f7f ff00 f000 00e0 fcfc 8000 |
| 78 |
-] |
|
| 79 | 84 |
\ No newline at end of file |