diff --git a/README.md b/README.md index 97def41..b90ae92 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,15 @@ These are my UXN experiments. +## One Line + +A 88x31 image for my personal site footer. Inspired by [aleteoryx](https://aleteoryx.compost.party/button.html). ## 99 Bottles of beer File: [99_bottles.tal](https://git.sr.ht/~travisshears/uxn-notebook/tree/main/item/99_bottles.tal) This is my first tal script. I was inspired by an example in the kitten (another -forth based programming language) repo. It prints the lyrics to the song going from "99 bottles of beer on the wall" to none. +forth based programming language) repo. It prints the lyrics to the song going from "99 bottles of beer on the wall" to none. Sample output: diff --git a/day_1.tal b/day_1.tal new file mode 100644 index 0000000..e69de29 diff --git a/hello.tal b/hello.tal index 0d08459..455e6f8 100644 --- a/hello.tal +++ b/hello.tal @@ -1,18 +1,17 @@ -@Log #18 +( hello.tal ) +( devices ) +|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1 -|0100 LIT "h ;Log DEO ( h ) - LIT "e #18 DEO ( e ) - LIT "l #18 DEO ( l ) - #6c #18 DEO ( l ) - #6f #18 DEO ( o ) - #0a #18 DEO ( newline ) -#18s +( macros ) +( print a character to standard output ) +%EMIT { .Console/write DEO } ( character -- ) +( print a newline ) +%NL { #0a EMIT } ( -- ) - #19 DUP ( 25 25 ) - #0a DIV ( 25 02 ) - SWP DUP ( 02 25 25 ) - #0a DIV ( 02 25 02 ) - #0a MUL ( 02 25 20 ) - SUB ( 02 05 ) - #30 ADD SWP #30 ADD - #18 DEO #18 DEO +( main program ) +|0100 LIT "h EMIT + LIT "e EMIT + LIT "l EMIT + LIT "l EMIT + LIT "o EMIT + NL diff --git a/one_line_canvas.tal b/one_line_canvas.tal new file mode 100644 index 0000000..ec49e63 --- /dev/null +++ b/one_line_canvas.tal @@ -0,0 +1,25 @@ +|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 + + +|58 @width +|1f @height + +(to run gui: `./run_ui.sh one_line_canvas.tal`) +(to run debugger: `../uxn/bin/uxnasm one_line_canvas.tal one_line_canvas.rom && ../uxn/bin/uxnemu ../beetbug.rom ./one_line_canvas.rom`) + +|0100 +@on-reset + setup-gui + BRK + +@setup-gui ( -- ) + (set screen height and width the 3x canvas size) + LIT2 =width #0003 MUL2 .Screen/width DEO2 + LIT2 =height #0003 MUL2 .Screen/height DEO2 + (set basic color scheme) + #f07f .System/r DEO2 + #f0d6 .System/g DEO2 + #f0b2 .System/b DEO2 + JMP2r