commit 666b701b599398df9fb172772b455a60c04150c5
Author: d_m <d_m@plastic-idolatry.com>
Date:   Fri Jan 5 22:15:05 2024 -0500

    initial import

diff --git a/example.theme b/example.theme
new file mode 100644
index 0000000..541e9d4
--- /dev/null
+++ b/example.theme
@@ -0,0 +1 @@
+ï"ž@n
\ No newline at end of file
diff --git a/munin.tal b/munin.tal
new file mode 100644
index 0000000..a64914f
--- /dev/null
+++ b/munin.tal
@@ -0,0 +1,127 @@
+|00 @System [
+  &vect $2 &expansion $2 &title $2 &metadata $2
+  &r $2 &g $2 &b $2 ]
+
+|10 @Console [
+  &vect $2 &stdin $1 &pad1 $4 &type $1
+  &stdout $1 &stderr $1 &proc-put $1 &pad2 $1 &param $2 &opts $1 &host-put $1 ]
+
+|20 @Screen [
+  &vect $2 &w $2 &h $2 &auto $1 &pad $1
+  &x $2 &y $2 &addr $2 &px $1 &sprite $1 ]
+
+|80 @Controller [
+  &vect $2 &button $1 &key $1 &fn $1 ]
+
+|90 @Mouse [
+  &vect $2 &x $2 &y $2 &state $1 &pad1 $1
+  &pad2 $2 &scrollx $2 &scrolly $2 &pad3 $2 ]
+
+( |a0 @File1 [ )
+(   &vect $2 &ok $2 &stat $2 &del $1 &append $1 )
+(   &name $2 &len $2 &r $2 &w $2 ] )
+
+( |b0 @File2 [ )
+(   &vect $2 &ok $2 &stat $2 &del $1 &append $1 )
+(   &name $2 &len $2 &r $2 &w $2 ] )
+
+|0000
+    @cur-x $2
+    @cur-y $2
+
+|0100
+    #17ef .System/r DEO2
+    #229e .System/g DEO2
+    #406e .System/b DEO2
+
+    ;on-screen .Screen/vect DEO2
+    ;on-mouse .Mouse/vect DEO2
+    ;on-controller .Controller/vect DEO2
+
+    #0140 .Screen/w DEO2 #0100 .Screen/h DEO2 draw-ui
+    BRK
+
+@draw-cursor ( tile* -> )
+    .Screen/addr DEO2
+    .cur-x LDZ2 .Screen/x DEO2
+    .cur-y LDZ2 .Screen/y DEO2
+    #c3 .Screen/sprite DEO JMP2r
+
+@draw-str ( s* attr^ -> )
+    STH
+    &loop LDAk DUP ?{ POPr POP POP2 JMP2r }
+    #00 SWP #40 SFT2 ;tiles ADD2 .Screen/addr DEO2
+    STHkr .Screen/sprite DEO INC2 !&loop
+
+@draw-ui ( -> )
+
+    #01 .Screen/auto DEO
+    #0000 #0000 goto
+    ;tiles/nw load #81 .Screen/sprite DEO
+    ;tiles/horiz load #0020 #81 draw-n
+    ;tiles/ne load #81 .Screen/sprite DEO
+
+    #02 .Screen/auto DEO
+    ;tiles/vert .Screen/addr DEO2
+    #0108 #0008 goto #0018 #81 draw-n
+    #0000 #0008 goto #0018 #81 draw-n
+
+    #01 .Screen/auto DEO
+    ;tiles/sw load #81 .Screen/sprite DEO
+    ;tiles/horiz load #0020 #81 draw-n
+    ;tiles/se load #81 .Screen/sprite DEO
+
+    #01 .Screen/auto DEO
+    #0008 #0008 goto ;tiles/str2 ;tiles/lit-lock ;demo/RadioX draw-listing
+    #0008 #0008 goto ;tiles/str2 ;tiles/lit-lock ;demo/RadioX draw-listing
+    #0008 #0010 goto ;tiles/str2 ;tiles/lit-lock ;demo/interzone draw-listing
+    #0008 #0018 goto ;tiles/str1 ;tiles/dark-lock ;demo/bee_happy_ draw-listing
+    #0008 #0020 goto ;tiles/str1 ;tiles/lit-lock ;demo/DuckHunt draw-listing
+    #0008 #0028 goto ;tiles/str1 ;tiles/lit-lock ;demo/LINKSYS6672 draw-listing
+    #0008 #0030 goto ;tiles/str0 ;tiles/space ;demo/Public draw-listing
+    #0008 #0038 goto ;tiles/str0 ;tiles/space ;demo/Q-bert draw-listing
+    #0008 #0040 goto ;tiles/str0 ;tiles/dark-lock ;demo/xyzzy draw-listing
+
+    JMP2r
+
+@draw-listing ( str* lock* name* -> )
+    ( #01 .Screen/auto DEO ) STH2 STH2
+    #81 draw-tile STH2r #81 draw-tile STH2r #82 !draw-str
+
+@demo
+    &RadioX "RadioX 00
+    &interzone "interzone 00
+    &bee_happy_ "bee_happy_ 00
+    &DuckHunt "DuckHunt 00
+    &LINKSYS6672 "LINKSYS6672 00
+    &Public "Public 00
+    &Q-bert "Q-bert 00
+    &xyzzy "xyzzy 00
+
+@load ( tile* -> )
+    .Screen/addr DEO2 JMP2r
+
+@goto ( x* y* -> )
+    .Screen/y DEO2 .Screen/x DEO2 JMP2r
+
+@draw-tile ( tile* attr^ -> )
+    STH .Screen/addr DEO2 STHr .Screen/sprite DEO JMP2r
+
+@on-screen ( -> BRK )
+    BRK
+
+@on-mouse ( -> BRK )
+    ;tiles/space draw-cursor
+    .Mouse/x DEI2 .cur-x STZ2
+    .Mouse/y DEI2 .cur-y STZ2
+    ;tiles/cursor draw-cursor BRK
+
+@on-controller ( -> BRK )
+    BRK
+
+@draw-n ( n* attr^ -> )
+    STH #0000 SWP2 SUB2
+    &loop STHkr .Screen/sprite DEO INC2 ORAk ?&loop
+    POPr POP2 JMP2r
+
+@tiles ~tiles.tal
diff --git a/tiles.tal b/tiles.tal
new file mode 100644
index 0000000..e63aab3
--- /dev/null
+++ b/tiles.tal
@@ -0,0 +1,163 @@
+ 7f 71 75 75 75 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 7d 7d 7d 7d 7d 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 7d 71 77 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 7d 71 7d 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 75 75 71 7d 7d 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 77 71 7d 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 77 71 75 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 7d 7d 7d 7d 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 75 71 75 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 75 71 7d 7d 7f 00 00 00 00 00 00 00 00 00
+ 7f 7b 75 71 75 75 7f 00 00 00 00 00 00 00 00 00
+ 7f 73 75 73 75 73 7f 00 00 00 00 00 00 00 00 00
+ 7f 79 77 77 77 79 7f 00 00 00 00 00 00 00 00 00
+ 7f 73 75 75 75 73 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 77 73 77 71 7f 00 00 00 00 00 00 00 00 00
+ 7f 71 77 73 77 77 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 55 55 55 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 5d 5d 5d 5d 5d 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 5d 51 57 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 5d 51 5d 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 55 55 51 5d 5d 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 57 51 5d 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 57 51 55 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 5d 5d 5d 5d 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 55 51 55 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 55 51 5d 5d 7f 00 00 00 00 00 00 00 00 00
+ 7f 5b 55 51 55 55 7f 00 00 00 00 00 00 00 00 00
+ 7f 53 55 53 55 53 7f 00 00 00 00 00 00 00 00 00
+ 7f 59 57 57 57 59 7f 00 00 00 00 00 00 00 00 00
+ 7f 53 55 55 55 53 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 57 53 57 51 7f 00 00 00 00 00 00 00 00 00
+ 7f 51 57 53 57 57 7f 00 00 00 00 00 00 00 00 00
+ &space ( 32 ) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 18 18 18 18 18 00 18 00 00 00 00 00 00 00 00 00
+ 66 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 66 66 ff 66 ff 66 66 00 00 00 00 00 00 00 00 00
+ 18 3e 40 3c 02 7c 18 00 00 00 00 00 00 00 00 00
+ 62 66 0c 18 30 66 46 00 00 00 00 00 00 00 00 00
+ 3c 66 3c 38 67 66 3f 00 00 00 00 00 00 00 00 00
+ 0c 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0c 18 30 30 30 18 0c 00 00 00 00 00 00 00 00 00
+ 30 18 0c 0c 0c 18 30 00 00 00 00 00 00 00 00 00
+ 00 66 3c ff 3c 66 00 00 00 00 00 00 00 00 00 00
+ 00 18 18 7e 18 18 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 18 18 30 00 00 00 00 00 00 00 00 00
+ 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 18 18 00 00 00 00 00 00 00 00 00
+ 03 06 0c 18 30 60 c0 00 00 00 00 00 00 00 00 00
+ 3c 66 6e 76 66 66 3c 00 00 00 00 00 00 00 00 00
+ 18 18 38 18 18 18 7e 00 00 00 00 00 00 00 00 00
+ 3c 66 06 0c 30 60 7e 00 00 00 00 00 00 00 00 00
+ 3c 66 06 1c 06 66 3c 00 00 00 00 00 00 00 00 00
+ 0c 1c 3c cc fe 0c 0c 00 00 00 00 00 00 00 00 00
+ 7e 60 7c 06 06 66 3c 00 00 00 00 00 00 00 00 00
+ 3c 66 60 7c 66 66 3c 00 00 00 00 00 00 00 00 00
+ 7e 66 0c 18 18 18 18 00 00 00 00 00 00 00 00 00
+ 3c 66 66 3c 66 66 3c 00 00 00 00 00 00 00 00 00
+ 3c 66 66 3e 06 66 3c 00 00 00 00 00 00 00 00 00
+ 00 00 18 00 18 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 18 00 18 18 30 00 00 00 00 00 00 00 00 00
+ 0c 18 30 60 30 18 0c 00 00 00 00 00 00 00 00 00
+ 00 00 7e 00 7e 00 00 00 00 00 00 00 00 00 00 00
+ 30 18 0c 06 0c 18 30 00 00 00 00 00 00 00 00 00
+ 3c 66 06 0c 18 00 18 00 00 00 00 00 00 00 00 00
+ 3c 66 6e 6e 60 62 3c 00 00 00 00 00 00 00 00 00
+ 18 3c 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
+ 7c 66 66 7c 66 66 7c 00 00 00 00 00 00 00 00 00
+ 3c 66 60 60 60 66 3c 00 00 00 00 00 00 00 00 00
+ 78 6c 66 66 66 6c 78 00 00 00 00 00 00 00 00 00
+ 7e 60 60 78 60 60 7e 00 00 00 00 00 00 00 00 00
+ 7e 60 60 78 60 60 60 00 00 00 00 00 00 00 00 00
+ 3c 66 60 6e 66 66 3c 00 00 00 00 00 00 00 00 00
+ 66 66 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
+ 3c 18 18 18 18 18 3c 00 00 00 00 00 00 00 00 00
+ 1e 0c 0c 0c 0c 6c 38 00 00 00 00 00 00 00 00 00
+ 66 6c 78 70 78 6c 66 00 00 00 00 00 00 00 00 00
+ 60 60 60 60 60 60 7e 00 00 00 00 00 00 00 00 00
+ 63 77 7f 6b 63 63 63 00 00 00 00 00 00 00 00 00
+ 66 76 7e 7e 6e 66 66 00 00 00 00 00 00 00 00 00
+ 3c 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
+ 7c 66 66 7c 60 60 60 00 00 00 00 00 00 00 00 00
+ 3c 66 66 66 66 3c 0e 00 00 00 00 00 00 00 00 00
+ 7c 66 66 7c 78 6c 66 00 00 00 00 00 00 00 00 00
+ 3c 66 60 3c 06 66 3c 00 00 00 00 00 00 00 00 00
+ 7e 18 18 18 18 18 18 00 00 00 00 00 00 00 00 00
+ 66 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
+ 66 66 66 66 66 3c 18 00 00 00 00 00 00 00 00 00
+ 63 63 63 6b 7f 77 63 00 00 00 00 00 00 00 00 00
+ 66 66 3c 18 3c 66 66 00 00 00 00 00 00 00 00 00
+ 66 66 66 3c 18 18 18 00 00 00 00 00 00 00 00 00
+ 7e 06 0c 18 30 60 7e 00 00 00 00 00 00 00 00 00
+ 3c 30 30 30 30 30 3c 00 00 00 00 00 00 00 00 00
+ c0 60 30 18 0c 06 03 00 00 00 00 00 00 00 00 00
+ 3c 0c 0c 0c 0c 0c 3c 00 00 00 00 00 00 00 00 00
+ 00 18 3c 66 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00
+ 30 18 0c 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 3c 06 3e 46 3e 00 00 00 00 00 00 00 00 00
+ 00 60 60 7c 66 66 7c 00 00 00 00 00 00 00 00 00
+ 00 00 3c 60 60 60 3c 00 00 00 00 00 00 00 00 00
+ 00 06 06 3e 66 66 3e 00 00 00 00 00 00 00 00 00
+ 00 00 3c 66 7e 60 3c 00 00 00 00 00 00 00 00 00
+ 00 0e 18 3e 18 18 18 00 00 00 00 00 00 00 00 00
+ 00 00 3e 66 66 3e 06 7c 00 00 00 00 00 00 00 00
+ 00 60 60 7c 66 66 66 00 00 00 00 00 00 00 00 00
+ 00 18 00 38 18 18 3c 00 00 00 00 00 00 00 00 00
+ 00 06 00 06 06 06 06 3c 00 00 00 00 00 00 00 00
+ 00 60 60 6c 78 6c 66 00 00 00 00 00 00 00 00 00
+ 00 38 18 18 18 18 3c 00 00 00 00 00 00 00 00 00
+ 00 00 66 7f 7f 6b 63 00 00 00 00 00 00 00 00 00
+ 00 00 7c 66 66 66 66 00 00 00 00 00 00 00 00 00
+ 00 00 3c 66 66 66 3c 00 00 00 00 00 00 00 00 00
+ 00 00 7c 66 66 7c 60 60 00 00 00 00 00 00 00 00
+ 00 00 3e 66 66 3e 06 06 00 00 00 00 00 00 00 00
+ 00 00 7c 66 60 60 60 00 00 00 00 00 00 00 00 00
+ 00 00 3e 60 3c 06 7c 00 00 00 00 00 00 00 00 00
+ 00 18 7e 18 18 18 0e 00 00 00 00 00 00 00 00 00
+ 00 00 66 66 66 66 3e 00 00 00 00 00 00 00 00 00
+ 00 00 66 66 66 3c 18 00 00 00 00 00 00 00 00 00
+ 00 00 63 6b 7f 3e 36 00 00 00 00 00 00 00 00 00
+ 00 00 66 3c 18 3c 66 00 00 00 00 00 00 00 00 00
+ 00 00 66 66 66 3e 0c 78 00 00 00 00 00 00 00 00
+ 00 00 7e 0c 18 30 7e 00 00 00 00 00 00 00 00 00
+ 1c 30 30 60 30 30 1c 00 00 00 00 00 00 00 00 00
+ 18 18 18 18 18 18 18 18 00 00 00 00 00 00 00 00
+ 38 0c 0c 06 0c 0c 38 00 00 00 00 00 00 00 00 00
+ 3b 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 7f 77 67 41 67 77 7f 00 00 00 00 00 00 00 00 00
+ ( 80 ) &str0 7e 81 7e 81 3c 42 00 00 00 00 00 00 00 00 18 18
+ ( 81 ) &str1 7e 81 7e 81 00 00 00 00 00 00 00 00 3c 42 18 18
+ ( 82 ) &str2 7e 81 00 00 00 00 00 00 00 00 7e 81 3c 42 18 18
+ ( 83 ) &str3 00 00 00 00 00 00 00 00 7e 81 7e 81 3c 42 18 18
+ ( 84 ) &anim0 7e 81 7e 81 3c 42 00 00 00 00 00 00 00 00 18 18
+ ( 85 ) &anim1 7e 81 7e 81 00 00 18 18 00 00 00 00 3c 42 00 00
+ ( 86 ) &anim2 7e 81 00 00 3c 42 18 18 00 00 7e 81 00 00 00 00
+ ( 87 ) &anim3 00 00 7e 81 3c 42 18 18 7e 81 00 00 00 00 00 00
+ ( 88 ) &wifi-off 7e 81 7e 81 3c 42 18 18 00 00 00 00 00 00 00 00
+ ( 89 ) &wifi-on 00 00 00 00 00 00 00 00 7e 81 7e 81 3c 42 18 18
+ ( 8a ) &dark-no 3c 42 a1 91 89 85 42 3c 00 00 00 00 00 00 00 00
+ ( 8b ) &lit-no 00 00 00 00 00 00 00 00 3c 42 a1 91 89 85 42 3c
+ ( 8c ) &dark-lock 00 18 24 24 7e 7e 7e 00 00 00 00 00 00 00 00 00
+ ( 8d ) &dark-key 38 6c 38 10 1c 10 1c 00 00 00 00 00 00 00 00 00
+ ( 8e ) &lit-lock 00 00 00 00 00 00 00 00 00 18 24 24 7e 7e 7e 00
+ ( 8f ) &lit-key 00 00 00 00 00 00 00 00 38 6c 38 10 1c 10 1c 00
+ ( 90 ) &sw 00 00 00 10 18 0f 07 00 18 18 1c 0f 07 00 00 00
+ ( 91 ) &se 00 00 00 08 18 f0 e0 00 18 18 38 f0 e0 00 00 00
+ ( 92 ) &nw 00 00 00 00 00 03 07 04 00 00 00 07 0f 1c 18 18
+ ( 93 ) &ne 00 00 00 00 00 c0 e0 20 00 00 00 e0 f0 38 18 18
+ ( 94 ) 00 00 00 00 00 c0 e0 20 18 18 38 f8 f8 38 18 18
+ ( 95 ) 00 00 00 00 00 03 07 04 18 18 1c 1f 1f 1c 18 18
+ ( 96 ) 00 00 00 00 00 c3 e7 24 00 00 00 ff ff 3c 18 18
+ ( 97 ) 00 00 00 00 00 ff ff 00 18 18 3c ff ff 00 00 00
+ ( 98 ) &vert 00 00 00 00 00 00 00 00 18 18 18 18 18 18 18 18
+ ( 99 ) &horiz 00 00 00 00 00 ff ff 00 00 00 00 ff ff 00 00 00
+ ( 9a ) &nesw 00 00 00 00 00 c3 e7 24 18 18 3c ff ff 3c 18 18
+ ( 9b ) &old-cursor 80 c0 e0 f0 f8 e0 10 00 80 c0 e0 f0 f8 e0 10 00
+ ( 9c ) &bar-top 00 7f 77 77 63 63 41 41 00 00 08 08 1c 1c 3e 3e
+ ( 9d ) &bar-bot 41 41 63 63 77 77 7f 00 3e 3e 1c 1c 08 08 00 00
+ ( 9e ) &bar-bg 6b 55 6b 55 6b 55 6b 55 00 00 00 00 00 00 00 00
+ ( 9f ) &bar-fg 00 00 00 00 00 00 00 00 00 7e 7e 7e 7e 7e 7e 00
+ ( a0 ) &cursor 80 c0 e0 f0 f8 e0 10 00 00 00 00 00 00 00 00 00
+ ( a1 ) &pointer 20 20 20 b8 7c 7c 38 38 00 00 00 00 00 00 00 00
+ ( a2 ) &lightning 0e 1c 38 7e 0c 18 10 20 00 00 00 00 00 00 00 00
diff --git a/wifi2.chr b/wifi2.chr
new file mode 100644
index 0000000..5c07e7d
Binary files /dev/null and b/wifi2.chr differ
diff --git a/wifi2.chr.nmt b/wifi2.chr.nmt
new file mode 100644
index 0000000..41f9f9b
Binary files /dev/null and b/wifi2.chr.nmt differ
