uxn-utils/gui/shaviankb/shaviankb.tal

156 lines
2.8 KiB
Tal

( uxnemu shaviankb.rom | listener )
|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1
|10 @Console &vector $2 &read $1 &pad $4 &type $1 &write $1 &error $1
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
|0000
|0100
@on-reset ( -> )
#f0ef .System/r DEO2
#f0e6 .System/g DEO2
#f0e2 .System/b DEO2
#0100 .Screen/width DEO2
#0080 .Screen/height DEO2
<draw-keyboard>
( #010e DEO ) BRK
@<push-pos> ( -- )
[ LITr -Screen/x ] DEI2r
( ) [ LITr -Screen/y ] DEI2r ROT2r JMP2r
@<pop-pos> ( -- )
SWP2r STH2r .Screen/y DEO2
SWP2r STH2r .Screen/y DEO2
JMP2r
@<draw-keyboard> ( -- )
;shavian ;shavian #0010 ADD2 ;shavian #0020 ADD2 <draw-key3>
;shavian ;shavian #0010 ADD2 ;shavian #0020 ADD2 <draw-key3>
JMP2r
@<draw-glyph> ( addr* -- )
STH2k .Screen/addr DEO2
[ LIT2 15 -Screen/auto ] DEO
[ LIT2 05 -Screen/sprite ] DEOk
( ) STH2r .Screen/addr DEO2
( ) .Screen/x DEI2k #0007 SUB2 ROT DEO2
DEO
JMP2r
@<draw-key3> ( a* b* c* -- )
<push-pos>
<draw-button>
.Screen/x DEI2k #0004 ADD2 ROT DEO2
.Screen/y DEI2k #0004 ADD2 ROT DEO2
( | a )
<draw-glyph>
.Screen/x DEI2k #0004 SUB2 ROT DEO2
.Screen/y DEI2k #0008 ADD2 ROT DEO2
( | b )
<draw-glyph>
.Screen/x DEI2k #0004 SUB2 ROT DEO2
.Screen/y DEI2k #0008 ADD2 ROT DEO2
( | c )
<draw-glyph>
<pop-pos>
.Screen/x DEI2k #0008 ADD2 ROT DEO2
JMP2r
@<draw-button> ( -- )
.Screen/x DEI2 .Screen/y DEI2
( | draw )
[ LIT2 36 -Screen/auto ] DEO
;button-icn/top .Screen/addr DEO2
[ LIT2 01 -Screen/sprite ] DEOk DEOk
( ) ;button-icn/middle .Screen/addr DEO2
DEOk
( ) ;button-icn/middle .Screen/addr DEO2
DEOk
( ) ;button-icn/middle .Screen/addr DEO2
DEOk DEO
.Screen/y DEO2
.Screen/x DEO2
JMP2r
(
@|stdlib )
@<phex> ( short* -- )
SWP <phex>/b
&b ( -- )
DUP #04 SFT <phex>/c
&c ( -- )
#0f AND DUP #09 GTH #27 MUL ADD [ LIT "0 ] ADD #18 DEO
JMP2r
(
@|assets )
@layout ( > )
&row1 ={
( > ) =keys/peep =keys/peep =keys/peep
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian
( > ) =shavian =shavian =shavian }
@keys ( sprite* length* values )
&peep [ =shavian/peep ] ={ f090 9190 }
&bib ( > )
&tot
&dead ( > )
&kick
&gag ( > )
&fee
&vow ( > )
&thigh
&they ( > )
&so
&zoo ( > )
&sure
&measure ( > )
&church
&judge ( > )
&yea
&woe ( > )
&hung
&haha ( > )
&loll
&ado ( > )
&roar
&up ( > )
&mime
&on ( > )
&nun
&oak ( > )
&if
&wool ( > )
&eat
&ooze ( > )
&egg
&out ( > )
&age
&oil ( > )
&ash
&ah ( > )
&ice
&awe ( > )
&are
&array ( > )
&or
&ear ( > )
&air
&ian ( > )
&err &yew
~assets.tal