51 lines
922 B
Tal
51 lines
922 B
Tal
|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2
|
|
|10 @Console &vector $2 &read $1 &pad $5 &write $1
|
|
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
|
|
|
|
|0100
|
|
|
|
#23ef .System/r DEO2
|
|
#3b7f .System/g DEO2
|
|
#665f .System/b DEO2
|
|
;draw-tree JSR2
|
|
|
|
BRK
|
|
|
|
@draw-tree ( -- )
|
|
|
|
#0060 .Screen/y DEO2
|
|
( star )
|
|
#0103 ;draw-line JSR2
|
|
#0203 ;draw-line JSR2
|
|
#0103 ;draw-line JSR2
|
|
( tree )
|
|
#8000
|
|
&tree
|
|
DUP #02 SFT #3f AND DUP ADD STH
|
|
DUP #0f AND STHr ADD #01 ;draw-line JSR2
|
|
INC GTHk ,&tree JCN
|
|
POP2
|
|
( bark )
|
|
#1000
|
|
&bark
|
|
#0802 ;draw-line JSR2
|
|
INC GTHk ,&bark JCN
|
|
POP2
|
|
( ground )
|
|
#ff01
|
|
|
|
@draw-line ( width color -- )
|
|
|
|
,&c STR
|
|
#00 OVR .Screen/width DEI2 #01 SFT2 SWP2 SUB2 ,&o STR2
|
|
#00 SWP DUP2 ADD2 INC2 #0000
|
|
&l
|
|
DUP2 [ LIT2 &o $2 ] ADD2 .Screen/x DEO2
|
|
[ LIT &c $1 ] .Screen/pixel DEO
|
|
INC2 GTH2k ,&l JCN
|
|
POP2 POP2
|
|
.Screen/y DEI2k INC2 ROT DEO2
|
|
|
|
JMP2r
|
|
|