uxn-utils/gui/shaviankb/shaviankb.tal

212 lines
5.0 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
@button-icn &top [
001f 2040 4040 4040 00ff 0000 0000 0000
00ff 0000 0000 0000 00f8 0402 0202 0202 ] &middle [
4040 4040 4040 4040 0000 0000 0000 0000
0000 0000 0000 0000 0202 0202 0202 0202 ] &bottom [
4040 4040 4020 1f00 0000 0000 0000 ff00
0000 0000 0000 ff00 0202 0202 0204 f800 ]
@shavian &peep [
0000 0060 1008 0808 0808 0808 0000 0000 ] [
0000 0008 1868 0808 0808 0808 0000 0000
0000 0004 0404 3c40 4040 403c 0000 0000
0000 0008 0808 0808 0808 1060 0000 0000
0000 0060 1008 3844 8484 8870 0000 0000
0000 0038 4440 2010 0804 4438 0000 0000
0000 0008 1020 2040 4040 4438 0000 0000
0000 0008 10e0 2040 4040 4438 0000 0000
0000 0040 4020 2010 1008 0804 0000 0000
0000 0030 4848 4848 4848 30cc 0000 0000
0000 0000 0000 2020 2020 2020 2010 0c00
0000 0000 0000 4040 4040 4040 5860 4000
0000 0000 0000 7804 0404 0478 4040 4000
0000 0000 0000 1820 4040 4040 4040 4000
0000 0000 0000 3844 8484 8870 4020 1800
0000 0000 0000 3844 0408 1020 4044 3800
0000 0000 0000 3844 0404 0408 0810 2000
0000 0000 0000 3844 0404 0408 0e10 2000
0000 0000 0000 0408 0810 1020 2040 4000
0000 0000 0000 cc30 4848 4848 4848 3000
0000 0000 0000 3840 4040 4038 0000 0000
0000 0000 0000 0c10 1010 1060 0000 0000
0000 0000 0000 1010 1010 1010 0000 0000
0000 0000 0000 4040 4040 201c 0000 0000
0000 0000 0000 0404 0404 0870 0000 0000
0000 0000 0000 1c20 4040 4040 0000 0000
0000 0000 0000 7008 0404 0404 0000 0000
0000 0000 0000 4444 2828 1010 0000 0000
0000 0000 0000 0810 6010 1008 0000 0000
0000 0000 0000 1c20 2018 0870 0000 0000
0000 0000 0000 3804 0404 0438 0000 0000
0000 0000 0000 6010 1010 100c 0000 0000
0000 0000 0000 404c 5464 0404 0000 0000
0000 0000 0000 7c40 4040 201c 0000 0000
0000 0000 0000 7c04 0404 0870 0000 0000
0000 0000 0000 7c08 1010 2020 0000 0000
0000 0000 0000 3844 4444 4438 0000 0000
0000 0000 0000 1010 2828 4444 0000 0000
0000 0000 0000 2010 0c10 1020 0000 0000
0000 0000 0000 7008 0830 201c 0000 0000
0000 0000 0000 3c42 4232 12e4 0000 0000
0000 0000 0000 cc22 22c2 8478 0000 0000
0000 0000 0000 1c22 2272 8264 0000 0000
0000 0000 0000 6482 7222 221c 0000 0000
0000 0000 0000 3c42 8282 828c 0000 0000
0000 0000 0000 bcc2 8282 829c 0000 0000
0000 0000 0000 4e50 6040 4040 0000 0000
0000 0080 8080 4848 5454 2222 0000 0000 ]