basic demo programs

This commit is contained in:
~d6 2024-09-04 20:08:42 -04:00
parent 7a42c338a8
commit 8b49c7ba06
3 changed files with 112 additions and 0 deletions

43
demo/festival.tal Normal file
View File

@ -0,0 +1,43 @@
( festival.tal )
( )
( sends text from stdin to the festival text-to-speech program )
|00 @System
|00 &vector $2
|02 &expansion $2
|04 &title $2
|06 &metadata $2
|08 &r $2
|0a &g $2
|0c &b $2
|0e &debug $1
|0f &exit $1
@Console
|10 &vector $2 ( called when input is ready )
|12 &read $1 ( read an input byte, e.g. from stdin )
( 13 - 14 padding )
|15 &live $1 ( subprocess: 01 alive, ff dead, 00 not running )
|15 &exit $1 ( subprocess: exit code if dead )
|17 &type $1 ( input type: 01 stdin, 02 arg, 03 end of arg, 04 end of args )
|18 &write $1 ( byte to write to stdout )
|19 &error $1 ( byte to write to stderr )
( 1a - 1b padding )
|1c &addr $2 ( subprocess: addr of string to run with /bin/sh -c )
|1e &mode $1 ( mode bits: 01 write stdin, 02 read stdout, 04 read stderr, 08 kill only )
|1f &exec $1 ( subprocess: run command )
|0100
;cmd .Console/addr DEO2
#01 .Console/mode DEO
#01 .Console/exec DEO
;phrase print
#80 .System/exit DEO
BRK
@print ( s* -> )
LDAk ?{ POP2 JMP2r } LDAk .Console/write DEO INC2 !print
@cmd "festival 00
@phrase 28 "SayText 20 22 "This 20 "is 20 "a 20 "U.X.N 20 "text-to-speech 20 "demo. 22 29 0a

44
demo/pwd.tal Normal file
View File

@ -0,0 +1,44 @@
( pwd.tal )
( )
( reads output of `pwd` and prints it )
|00 @System
|00 &vector $2
|02 &expansion $2
|04 &title $2
|06 &metadata $2
|08 &r $2
|0a &g $2
|0c &b $2
|0e &debug $1
|0f &exit $1
@Console
|10 &vector $2 ( called when input is ready )
|12 &read $1 ( read an input byte, e.g. from stdin )
( 13 - 14 padding )
|15 &live $1 ( subprocess: 01 alive, ff dead, 00 not running )
|15 &exit $1 ( subprocess: exit code if dead )
|17 &type $1 ( input type: 01 stdin, 02 arg, 03 end of arg, 04 end of args )
|18 &write $1 ( byte to write to stdout )
|19 &error $1 ( byte to write to stderr )
( 1a - 1b padding )
|1c &addr $2 ( subprocess: addr of string to run with /bin/sh -c )
|1e &mode $1 ( mode bits: 01 write stdin, 02 read stdout, 04 read stderr, 08 kill only )
|1f &exec $1 ( subprocess: run command )
|0100
;on-console .Console/vector DEO2
;cmd .Console/addr DEO2
#02 .Console/mode DEO
#01 .Console/exec DEO
BRK
( read output from pwd until first newline, then exit )
@on-console
.Console/type DEI #01 EQU ?{ BRK }
.Console/read DEI DUP #0a EQU ?{ .Console/write DEO BRK }
.Console/write DEO
#80 .System/exit DEO BRK
@cmd "pwd 00

25
demo/xclock.tal Normal file
View File

@ -0,0 +1,25 @@
( xclock.tal )
( )
( runs xclock. when the ROM exits xclock should exit too. )
@Console
|10 &vector $2 ( called when input is ready )
|12 &read $1 ( read an input byte, e.g. from stdin )
( 13 - 14 padding )
|15 &live $1 ( subprocess: 01 alive, ff dead, 00 not running )
|15 &exit $1 ( subprocess: exit code if dead )
|17 &type $1 ( input type: 01 stdin, 02 arg, 03 end of arg, 04 end of args )
|18 &write $1 ( byte to write to stdout )
|19 &error $1 ( byte to write to stderr )
( 1a - 1b padding )
|1c &addr $2 ( subprocess: addr of string to run with /bin/sh -c )
|1e &mode $1 ( mode bits: 01 write stdin, 02 read stdout, 04 read stderr, 08 kill only )
|1f &exec $1 ( subprocess: run command )
|0100
;cmd .Console/addr DEO2
#00 .Console/mode DEO
#01 .Console/exec DEO
BRK
@cmd "xclock 00