212 lines
5.0 KiB
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 ]
|
|
|