diff --git a/projects/examples/demos/amiga.tal b/projects/examples/demos/amiga.tal index 6d7b340..50e2f2a 100644 --- a/projects/examples/demos/amiga.tal +++ b/projects/examples/demos/amiga.tal @@ -14,7 +14,7 @@ |0100 ( variables ) - #01 .direction STZ + [ LIT2 01 -direction ] STZ ( vectors ) ;on-frame .Screen/vector DEO2 ( theme ) @@ -89,7 +89,7 @@ JMP2r .timer LDZk INC DUP ROT STZ #06 EQU ?&pull !&pass - &pull #00 .timer STZ .ball/vy LDZ2k INC2 STH2k ROT STZ2 !&end + &pull [ LIT2 00 -timer ] STZ .ball/vy LDZ2k INC2 STH2k ROT STZ2 !&end &pass .ball/vy LDZ2k STH2k ROT STZ2 !&end &end .ball/y LDZ2k STH2r ADD2 check-flip-vy ROT STZ2 diff --git a/projects/examples/demos/bifurcan.tal b/projects/examples/demos/bifurcan.tal index 2009b0d..7021f46 100644 --- a/projects/examples/demos/bifurcan.tal +++ b/projects/examples/demos/bifurcan.tal @@ -83,8 +83,8 @@ @ ( addr* -- ) .Screen/addr DEO2 - .Screen/height DEI2 #03 SFT2 NIP ,&h STR - .Screen/width DEI2 #03 SFT2 NIP ,&w STR + .Screen/height DEI2 #03 SFT2 ,&h STR POP + .Screen/width DEI2 #03 SFT2 ,&w STR POP [ LIT &h $1 ] #00 &ver ( -- ) #00 OVR #30 SFT2 .Screen/y DEO2 @@ -103,6 +103,7 @@ .Mouse/x DEI2 ,/x STR2 .Mouse/y DEI2 ,/y STR2 .Screen/addr DEO2 + ( >> ) @ ( color -- ) [ LIT2 &x $2 ] .Screen/x DEO2 diff --git a/projects/examples/demos/cube3d.tal b/projects/examples/demos/cube3d.tal index 22e8d4e..8d0683f 100644 --- a/projects/examples/demos/cube3d.tal +++ b/projects/examples/demos/cube3d.tal @@ -2,14 +2,13 @@ |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 +|000 -|0000 - - @timer $1 @cube &v0 $8 &v4 $8 @center &x $2 &y $2 + @timer $1 -|0100 +|100 @on-reset ( -> ) ( | theme ) @@ -23,43 +22,45 @@ ;on-frame .Screen/vector DEO2 @on-frame ( -> ) + [ LIT &f $1 ] INCk ,&f STR + DUP #01 AND ?{ POP BRK } + #01 SFT .timer STZ ( | clear ) #0000 DUP2 .Screen/x DEO2 .Screen/y DEO2 [ LIT2 80 -Screen/pixel ] DEO ( | draw ) - .timer LDZk INC SWP STZ BRK @ ( frame -- ) ( | create box ) #0800 - &loop ( -- ) + &>loop ( -- ) STHk [ LIT2 00 -timer ] LDZ #00 STHkr INC #07 AND #60 SFT ADD2 #00ff AND2 ;table ADD2 LDA #01 SFT #00 .timer LDZ #00 STHkr #60 SFT ADD2 #00ff AND2 ;table ADD2 LDA #02 SFT #00 STHkr #62 SFT2 ADD2 .cube/v0 STHr DUP ADD ADD STZ2 - INC GTHk ?&loop + INC GTHk ?&>loop POP2 ( | vertices ) #0800 - &ver-loop ( -- ) - DUP DUP ADD .cube ADD LDZ2 - INC GTHk ?&ver-loop + &>ver-loop ( -- ) + DUP DUP ADD LDZ2 + INC GTHk ?&>ver-loop POP2 ( lines ) #0400 - &line-loop ( -- ) + &>line-loop ( -- ) STHk .cube/v0 STHkr DUP ADD ADD .cube/v0 STHkr INC #03 AND DUP ADD ADD .cube/v0 STHkr DUP ADD ADD .cube/v4 STHkr DUP ADD ADD .cube/v4 STHkr DUP ADD ADD .cube/v4 STHr INC #03 AND DUP ADD ADD - INC GTHk ?&line-loop + INC GTHk ?&>line-loop POP2 JMP2r @ ( a b -- ) - STH STH + STH + STH ( ) #00 STHkr LDZ .center/x LDZ2 ADD2 ( ) #00 STHr INC LDZ .center/y LDZ2 ADD2 ( ) #00 STHkr LDZ .center/x LDZ2 ADD2 - ( ) #00 STHr INC LDZ .center/y LDZ2 ADD2 #05 - JMP2r + ( ) #00 STHr INC LDZ .center/y LDZ2 ADD2 #05 ! @ ( x y -- ) #00 SWP #0004 SUB2 .center/y LDZ2 ADD2 .Screen/y DEO2 @@ -81,15 +82,17 @@ #ffff [ LIT2 00 _&y2 ] LDR2 ,&y LDR2 lts2 DUP2 ADD2 ADD2 ,&sy STR2 [ LIT2 &dx $2 ] [ LIT2 &dy $2 ] ADD2 STH2 &while ( -- ) - [ LIT2 &x2 $2 ] DUP2 .Screen/x DEO2 - [ LIT2 &x $2 ] EQU2 [ LIT2 &y2 $2 ] DUP2 .Screen/y DEO2 - [ LIT2 &y $2 ] EQU2 [ LIT2 &color $1 -Screen/pixel ] DEO - AND ?&end - STH2kr DUP2 ADD2 DUP2 ,&dy LDR2 lts2 ?&skipy - STH2r ,&dy LDR2 ADD2 STH2 ,&x2 LDR2 [ LIT2 &sx $2 ] ADD2 ,&x2 STR2 + [ LIT2 &x2 $2 ] DUP2 .Screen/x DEO2 + [ LIT2 &x $2 ] EQU2 [ LIT2 &y2 $2 ] DUP2 .Screen/y DEO2 + [ LIT2 &y $2 ] EQU2 [ LIT2 &color $1 -Screen/pixel ] DEO + AND ?&end + STH2kr DUP2 ADD2 DUP2 ,&dy LDR2 lts2 ?&skipy + STH2r ,&dy LDR2 ADD2 STH2 + ,&x2 LDR2 [ LIT2 &sx $2 ] ADD2 ,&x2 STR2 &skipy ( -- ) - ,&dx LDR2 gts2 ?&while - STH2r ,&dx LDR2 ADD2 STH2 ,&y2 LDR2 [ LIT2 &sy $2 ] ADD2 ,&y2 STR2 + ,&dx LDR2 gts2 ?&while + STH2r ,&dx LDR2 ADD2 STH2 + ,&y2 LDR2 [ LIT2 &sy $2 ] ADD2 ,&y2 STR2 !&while &end POP2r JMP2r diff --git a/projects/examples/demos/move.tal b/projects/examples/demos/move.tal index 24c0740..21ae1d7 100644 --- a/projects/examples/demos/move.tal +++ b/projects/examples/demos/move.tal @@ -3,12 +3,11 @@ |00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 |20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 |80 @Controller &vector $2 &button $1 &key $1 - -|0000 +|000 @hello &x $2 &y $2 -|0100 +|100 @on-reset ( -> ) ( | theme ) @@ -17,41 +16,40 @@ #c0f7 .System/b DEO2 ( | vectors ) ;on-frame .Screen/vector DEO2 - ( | set origin ) .Screen/width DEI2 #01 SFT2 .hello/x STZ2 + ( | set origin ) + .Screen/width DEI2 #01 SFT2 .hello/x STZ2 .Screen/height DEI2 #01 SFT2 .hello/y STZ2 [ LIT2 16 -Screen/auto ] DEO - #00 on-frame/draw BRK + #00 !on-frame/draw @on-frame ( -> ) .Controller/button DEI DUP ?{ POP BRK } - ( | clear ) - [ LIT2 40 -Screen/sprite ] DEO + ( flip ) #ff EOR ( | movement ) - DUP #10 AND #00 EQU ?{ + DUP #10 AND ?{ .hello/y LDZ2k #0001 SUB2 ROT STZ2 } - DUP #20 AND #00 EQU ?{ + DUP #20 AND ?{ .hello/y LDZ2k INC2 ROT STZ2 } - DUP #40 AND #00 EQU ?{ + DUP #40 AND ?{ .hello/x LDZ2k #0001 SUB2 ROT STZ2 } - DUP #80 AND #00 EQU ?{ + DUP #80 AND ?{ .hello/x LDZ2k INC2 ROT STZ2 } &draw ( button -> ) - .hello/x LDZ2 STH2k .Screen/x DEO2 - .hello/y LDZ2 STH2k .Screen/y DEO2 - ;hello-chr .Screen/addr DEO2 - [ LIT2 c1 -Screen/sprite ] DEOk - DEO - ( draw slime ) STH2r .Screen/y DEO2 - STH2r .Screen/x DEO2 - ;slime-icn .Screen/addr DEO2 - get-slime .Screen/sprite DEOk - DEO - BRK + .hello/x LDZ2 STH2k .Screen/x DEO2 + .hello/y LDZ2 STH2k .Screen/y DEO2 + ;hello-chr .Screen/addr DEO2 + [ LIT2 c1 -Screen/sprite ] DEOk DEO + ( | draw slime ) + [ LITr -Screen/y ] DEO2r + [ LITr -Screen/x ] DEO2r + ;slime-icn .Screen/addr DEO2 + get-slime .Screen/sprite DEOk DEO + BRK @get-slime ( button -- color ) - #0f AND DUP #01 NEQ ?{ POP #05 JMP2r } - DUP #02 NEQ ?{ POP #0a JMP2r } - POP #0f JMP2r + DUP #01 AND ?{ POP #05 JMP2r } + #02 AND ?{ #0a JMP2r } + #0f JMP2r @hello-chr [ 0007 1820 2040 4044 0000 071f 1f3f 3f3b