156 lines
2.8 KiB
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
|
|
|