194 lines
4.2 KiB
Tal
194 lines
4.2 KiB
Tal
( teatimer )
|
|
|
|
|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1
|
|
|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
|
|
|90 @Mouse &vector $2 &x $2 &y $1 &ylb $1 &state $1 &chord $1 &pad $4 &scrolly &scrolly-hb $1 &scrolly-lb $1
|
|
|c0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1
|
|
|
|
|000
|
|
|
|
@cursor &x $2 &y $2
|
|
@bar &height $1
|
|
@remaining-seconds $2
|
|
@last-second $1
|
|
@height $2
|
|
|
|
|100
|
|
|
|
@on-reset ( -> )
|
|
( | meta )
|
|
;meta #06 DEO2
|
|
( | theme )
|
|
#b0ff .System/r DEO2
|
|
#f0df .System/g DEO2
|
|
#c0bf .System/b DEO2
|
|
( | vector )
|
|
;on-frame .Screen/vector DEO2
|
|
;on-mouse .Mouse/vector DEO2
|
|
( | screen size )
|
|
#0248 .Screen/width DEO2
|
|
#0110 .Screen/height DEO2
|
|
.DateTime/second DEI .last-second STZ
|
|
<redraw>
|
|
BRK
|
|
|
|
@on-frame ( -> )
|
|
BRK
|
|
.Mouse/state DEI ?{
|
|
.remaining-seconds LDZ2 #0000 EQU2 ?{
|
|
.DateTime/second DEI DUP .last-second LDZ EQU ?{
|
|
.last-second STZ
|
|
.remaining-seconds LDZ2 #0001 SUB2 DUP2 .remaining-seconds STZ2
|
|
#0007 DIV2 NIP .bar/height STZ
|
|
<draw-bar>
|
|
JMP2r }
|
|
POP } }
|
|
BRK
|
|
|
|
@on-mouse ( -> )
|
|
#4100 [ LIT2 00 -Mouse/state ] DEI NEQ #30 SFT2 ;hand-icn ADD2 <update-cursor>
|
|
.Mouse/state DEI ?{ BRK }
|
|
( | down )
|
|
.Mouse/ylb DEI #10 SUB DUP #f0 GTH ?{ #00 OVR <set-distance> }
|
|
POP BRK
|
|
|
|
@meta 00
|
|
( name ) "Tea 20 "Timer 0a
|
|
( details ) "Null
|
|
( author ) "By 20 "Dave 20 "Van 20 "Ee 0a
|
|
( date ) "12 20 "Jan 20 "2024 $1
|
|
( elements ) 00
|
|
|
|
(
|
|
@|core )
|
|
|
|
@<set-distance> ( distance* -- )
|
|
DUP2 .height EQU2k ?{
|
|
STZ2
|
|
#0007 MUL2 .remaining-seconds STZ2 !<redraw-bar> }
|
|
POP2 POP2 JMP2r
|
|
|
|
(
|
|
@|drawing )
|
|
|
|
@<redraw> ( -- )
|
|
( <draw-border> <draw-bar> ) JMP2r
|
|
|
|
@<redraw-bar> ( -- )
|
|
;fill-icn .Screen/addr DEO2
|
|
( | top )
|
|
#0010 .Screen/x DEO2
|
|
#0010 .Screen/y DEO2
|
|
[ LIT2 f1 -Screen/auto ] DEO
|
|
[ LIT2 03 -Screen/sprite ] DEOk DEOk DEOk DEO
|
|
( | bottom )
|
|
#0010 .Screen/x DEO2
|
|
#0090 .Screen/y DEO2
|
|
[ LIT2 d1 -Screen/auto ] DEO
|
|
[ LIT2 03 -Screen/sprite ] DEOk DEOk DEOk DEO
|
|
( >> )
|
|
|
|
@<draw-bar> ( -- )
|
|
#0010 .Screen/x DEO2
|
|
( | all )
|
|
[ LIT2 32 -Screen/auto ] DEO
|
|
;line-icn .Screen/addr DEO2
|
|
[ LIT2r 05 -Screen/sprite ] .height LDZ2 #0010 ADD2 #0010
|
|
&>l ( -- )
|
|
DUP2 .Screen/y DEO2
|
|
DEOkr
|
|
INC2 GTH2k ?&>l
|
|
POP2 POP2 POP2r JMP2r
|
|
|
|
@<draw-border> ( -- )
|
|
#0000 DUP2 .Screen/x DEO2
|
|
.Screen/y DEO2
|
|
#82 .Screen/pixel DEO
|
|
;tick-icn .Screen/addr DEO2
|
|
#e1 .Screen/auto DEO
|
|
#0028 .Screen/x DEO2
|
|
#0008 .Screen/y DEO2
|
|
#08 .Screen/sprite DEOk #f1 .Screen/auto DEO
|
|
#0028 .Screen/x DEO2
|
|
#0080 .Screen/y DEO2
|
|
DEO
|
|
( | labels )
|
|
#0030 .Screen/x DEO2
|
|
#0004 .Screen/y DEO2
|
|
#02 .Screen/auto DEO
|
|
LIT2r [ =label-tilemap ] #1f00
|
|
&>w ( -- )
|
|
LDAkr #00 STHr INC2r ;digits ADD2 .Screen/addr DEO2
|
|
#08 .Screen/sprite DEO
|
|
INC GTHk ?&>w
|
|
POP2 #0038 .Screen/x DEO2
|
|
#0004 .Screen/y DEO2
|
|
#1f00
|
|
&>w2 ( -- )
|
|
LDAkr #00 STHr INC2r ;digits ADD2 .Screen/addr DEO2
|
|
#08 .Screen/sprite DEO
|
|
INC GTHk ?&>w2
|
|
JMP2r
|
|
|
|
@<update-cursor> ( color addr* -- )
|
|
[ LIT2 00 -Screen/auto ] DEO
|
|
;fill-icn .Screen/addr DEO2
|
|
#40 <draw-cursor>
|
|
.Screen/addr DEO2
|
|
.Mouse/x DEI2 ,<draw-cursor>/x STR2
|
|
.Mouse/y DEI2 ,<draw-cursor>/y STR2
|
|
( >> )
|
|
|
|
@<draw-cursor> ( color -- )
|
|
[ LIT2 &x $2 ] .Screen/x DEO2
|
|
[ LIT2 &y $2 ] .Screen/y DEO2
|
|
.Screen/sprite DEO
|
|
JMP2r
|
|
|
|
(
|
|
@|stdlib )
|
|
|
|
@<phex> ( short* -: )
|
|
SWP /b
|
|
&b ( byte -: )
|
|
DUP #04 SFT /c
|
|
&c ( byte -: )
|
|
#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
|
|
JMP2r
|
|
|
|
(
|
|
@|assets )
|
|
|
|
@pointer-icn [ 80c0 e0f0 f8e0 1000 ]
|
|
&drag [ c381 0000 0000 81c3 ]
|
|
|
|
@hand-icn [ 4040 787c fcfc 7c38 ]
|
|
&down [ 0000 787c fcfc 7c38 ]
|
|
|
|
@arrow-icn [ 80c0 e0f0 f8fc f0c0 ]
|
|
|
|
@tick-icn [ f000 0000 0000 0000 ]
|
|
|
|
@blank-icn [ 0000 0000 0000 0000 ]
|
|
|
|
@fill-icn [ ffff ffff ffff ffff ]
|
|
|
|
@line-icn [ ff00 0000 0000 0000 ]
|
|
|
|
@digits ( Emmaline by damieng )
|
|
[
|
|
0000 0000 0000 0000 3864 e2e2 e264 3800
|
|
0c3c 5c1c 1c1c 1c00 7c8e 8e1c 3870 fe00
|
|
fe8e 0c3c 8e8e 7c00 0c1c 3c5c 9cfe 1c00
|
|
3e40 7c0e 8e8e 7c00 3c62 e0ec e262 3c00
|
|
fe0e 0e1c 3870 7000 7ce2 f27c 9e8e 7c00
|
|
788c 8e6e 0e8c 7800 ]
|
|
|
|
@label-tilemap [
|
|
20 00 00 00 00 18 00 00 00 00 18 00 00 00 00 10
|
|
00 00 00 00 10 00 00 00 00 30 00 00 00 00 08 08
|
|
00 00 00 00 30 00 00 00 00 08 00 00 00 00 30 00
|
|
00 00 00 08 00 00 00 00 00 00 00 00 00 00 ]
|
|
|