|
|
|
@ -1,11 +1,7 @@ |
|
|
|
( DVD Bounce ) |
|
|
|
( DVD Bounce ) |
|
|
|
|
|
|
|
|
|
|
|
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
|
|
|
|00 @System/vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1 |
|
|
|
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
|
|
|20 @Screen/vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |
|
|
|
|
|
|
|
|
|
|
|
|000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dvd &x $2 &y $2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|100 |
|
|
|
|100 |
|
|
|
|
|
|
|
|
|
|
|
@ -14,46 +10,45 @@ |
|
|
|
#4cfd .System/r DEO2 |
|
|
|
#4cfd .System/r DEO2 |
|
|
|
#4cf3 .System/g DEO2 |
|
|
|
#4cf3 .System/g DEO2 |
|
|
|
#dcf2 .System/b DEO2 |
|
|
|
#dcf2 .System/b DEO2 |
|
|
|
( | vectors ) |
|
|
|
;dvd/on-frame .Screen/vector DEO2 |
|
|
|
;on-frame .Screen/vector DEO2 |
|
|
|
( collision x* ) .Screen/width DEI2 DUP2 #0020 SUB2 ,dvd/cox STR2 |
|
|
|
( | starting position ) |
|
|
|
#01 SFT2 |
|
|
|
.Screen/width DEI2 DUP2 #01 SFT2 .dvd/x STZ2 |
|
|
|
( collision y* ) .Screen/height DEI2 DUP2 #0010 SUB2 ,dvd/coy STR2 |
|
|
|
#0020 SUB2 ;on-frame/hit-hor STA2 |
|
|
|
#01 SFT2 dvd/<set-pos> |
|
|
|
.Screen/height DEI2 DUP2 #01 SFT2 .dvd/y STZ2 |
|
|
|
|
|
|
|
#0010 SUB2 ;on-frame/hit-ver STA2 |
|
|
|
|
|
|
|
( | drawing mode ) |
|
|
|
|
|
|
|
[ LIT2 36 -Screen/auto ] DEO |
|
|
|
|
|
|
|
#01 <draw-dvd> |
|
|
|
|
|
|
|
BRK |
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
|
|
@on-frame ( -> ) |
|
|
|
@dvd/on-frame ( -> ) |
|
|
|
#00 <draw-dvd> |
|
|
|
|
|
|
|
( | x ) |
|
|
|
( | x ) |
|
|
|
.dvd/x LDZ2 |
|
|
|
,&x LDR2 |
|
|
|
( left ) ORAk ?{ |
|
|
|
( left ) ORAk ?{ LIT2 ADD2 _&opx STR } |
|
|
|
[ LIT2 ADD2 _&x ] STR } |
|
|
|
( right ) DUP2 LIT2 &cox $2 NEQ2 ?{ LIT2 SUB2 _&opx STR } |
|
|
|
( right ) DUP2 [ LIT2 &hit-hor $2 ] NEQ2 ?{ |
|
|
|
#0001 [ &opx ADD2 ] |
|
|
|
[ LIT2 SUB2 _&x ] STR } |
|
|
|
|
|
|
|
#0001 [ &x ADD2 ] .dvd/x STZ2 |
|
|
|
|
|
|
|
( | y ) |
|
|
|
( | y ) |
|
|
|
.dvd/y LDZ2 |
|
|
|
,&y LDR2 |
|
|
|
( top ) ORAk ?{ |
|
|
|
( top ) ORAk ?{ LIT2 ADD2 _&opy STR } |
|
|
|
[ LIT2 ADD2 _&y ] STR } |
|
|
|
( bottom ) DUP2 LIT2 &coy $2 NEQ2 ?{ LIT2 SUB2 _&opy STR } |
|
|
|
( bottom ) DUP2 [ LIT2 &hit-ver $2 ] NEQ2 ?{ |
|
|
|
#0001 [ &opy ADD2 ] dvd/<move> |
|
|
|
[ LIT2 SUB2 _&y ] STR } |
|
|
|
|
|
|
|
#0001 [ &y ADD2 ] .dvd/y STZ2 |
|
|
|
|
|
|
|
#01 <draw-dvd> |
|
|
|
|
|
|
|
BRK |
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
|
|
@<draw-dvd> ( color -- ) |
|
|
|
@dvd/<move> ( x* y* -- ) |
|
|
|
;dvd-icn .Screen/addr DEO2 |
|
|
|
#00 /<draw> |
|
|
|
.dvd/x LDZ2 .Screen/x DEO2 |
|
|
|
( >> ) |
|
|
|
.dvd/y LDZ2 .Screen/y DEO2 |
|
|
|
|
|
|
|
|
|
|
|
@dvd/<set-pos> ( x* y* -- ) |
|
|
|
|
|
|
|
,&y STR2 |
|
|
|
|
|
|
|
,&x STR2 |
|
|
|
|
|
|
|
#01 |
|
|
|
|
|
|
|
( >> ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dvd/<draw> ( color -- ) |
|
|
|
|
|
|
|
[ LIT2 36 -Screen/auto ] DEO |
|
|
|
|
|
|
|
;&sprite-icn .Screen/addr DEO2 |
|
|
|
|
|
|
|
[ LIT2 &x $2 ] .Screen/x DEO2 |
|
|
|
|
|
|
|
[ LIT2 &y $2 ] .Screen/y DEO2 |
|
|
|
.Screen/sprite DEOk DEO |
|
|
|
.Screen/sprite DEOk DEO |
|
|
|
JMP2r |
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
|
|
@dvd-icn ( 4 x 2 ) |
|
|
|
@dvd/sprite-icn [ |
|
|
|
[ |
|
|
|
|
|
|
|
001f 3f38 3838 787f 00fe fe7e 7777 e3c3 |
|
|
|
001f 3f38 3838 787f 00fe fe7e 7777 e3c3 |
|
|
|
000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc |
|
|
|
000f 1f3b 7b77 e7c7 00fc fe8f 8707 0efc |
|
|
|
7f00 000f ff7f 0700 0301 00ff f0f8 ff00 |
|
|
|
7f00 000f ff7f 0700 0301 00ff f0f8 ff00 |
|
|
|
|