( 54K . Metadata ) |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 $5 &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 |a0 @File/vector $2 &success $1 &success-lb $1 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |0050 @Varvara/version |0056 @Field/varvara |0083 @Field/icon |00a0 @Field/manifest |000 @src/buf $40 @metadata/varvara $2 &icon $2 &manifest $2 |100 @on-reset ( -> ) ;meta #06 DEO2 ( | theme ) theme/ ( | size ) #0100 .Screen/width DEO2 #0078 .Screen/height DEO2 ( | start ) [ LIT2 03 -Console/type ] DEI AND ?{ metadata/ } ;src/on-console .Console/vector DEO2 BRK @meta 00 ( ) "Meta 0a ( ) "A 20 "Metadata 20 "Viewer 0a ( ) "By 20 "Devine 20 "Lu 20 "Linvega 0a ( ) "6 20 "Jun 20 "2026 $1 ( fields ) 02 [ 56 =Varvara/version 83 =appicon ] ( @|Src ) @src/on-console ( -> ) [ LIT2 02 -Console/type ] DEI LTH ?{ .Console/read DEI [ LIT2 00 &ptr -&buf ] INCk ,&ptr STR STZ2 BRK } #0000 .Console/vector DEO2 ;&buf metadata/ BRK ( @|Metadata ) @metadata/ ( buf* -- ) .File/name DEO2 #0006 .File/length DEO2 ;&header .File/read DEO2 .File/success-lb DEI ?{ !/ } #0637 ;&deo LDA2 NEQ2 ?/ ;&start LDA2 #0100 SUB2 file/ ( | version ) #0001 .File/length DEO2 ;&version .File/read DEO2 ( | body ) LIT2r =&body &>s STH2kr DUP2 .File/read DEO2 INC2r LDA ?&>s POP2r ( | fields ) ;&length DUP2 .File/read DEO2 LDAk #03 MUL #00 SWP .File/length DEO2 INC2 .File/read DEO2 ( | parse fields ) ;&fields DUP2 #00 ;&length LDA #0003 MUL2 ADD2 SWP2 &>lp LDAk .Field/varvara NEQ ?{ / } LDAk .Field/icon NEQ ?{ / } LDAk .Field/manifest NEQ ?{ / } #0003 ADD2 GTH2k ?&>lp POP2 POP2 !/ @metadata/ ( -- ) ;dict/body-nometa / ;src/buf chicago/ ;appicon/nometa / #0000 !/ @metadata/ ( -- ) ;dict/body-nofile / ;src/buf LDAk ?{ POP2 ;dict/blank } chicago/ ;appicon/nofile !/ @metadata/ ( field* -- field* ) INC2k LDA2 .&varvara STZ2 JMP2r @metadata/ ( field* -- field* ) INC2k LDA2 .&icon STZ2 JMP2r @metadata/ ( field* -- field* ) INC2k LDA2 .&manifest STZ2 JMP2r @metadata/ ( str* -- ) #0038 .Screen/x DEO2 #000c .Screen/y DEO2 !chicago/ @metadata/ ( addr* -- ) #0008 .Screen/x DEO2 #0008 .Screen/y DEO2 !icon/ @metadata/ ( -- ) ;&body / .&icon LDZ2 icon/load / .&varvara LDZ2 !/ @metadata/ ( version* -- ) ORAk ?{ #0058 .Screen/y DEO2 ;line/wave-blank line/ #000c .Screen/x DEO2 #0060 .Screen/y DEO2 POP2 ;dict/unknown-field !chicago/ } #0058 .Screen/y DEO2 ;line/wave line/ #0000 .Screen/x DEO2 #0060 .Screen/y DEO2 [ LIT2 82 -Screen/pixel ] DEO #000c .Screen/x DEO2 #0060 .Screen/y DEO2 ;dict/varvara chicago/ chicago/ LIT "K chicago/ ;dict/compatible !chicago/ ( @|Etc ) @icon/load ( addr* -- sprite* ) ORAk ?{ POP2 ;appicon JMP2r } #0100 SUB2 file/ #0090 .File/length DEO2 ;&buf DUP2 .File/read DEO2 JMP2r @icon/ ( location* -- ) ( | background ) ;bubble .Screen/addr DEO2 [ LIT2 46 -Screen/auto ] DEO [ LIT2 05 -Screen/sprite ] DEOk DEOk DEOk DEOk DEO ( | icon ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 .Screen/y DEI2 #0020 SUB2 .Screen/y DEO2 .Screen/addr DEO2 [ LIT2 26 -Screen/auto ] DEO [ LIT2 85 -Screen/sprite ] DEOk DEOk DEO JMP2r @line/ ( addr* -- ) .Screen/addr DEO2 [ LIT2 f2 -Screen/auto ] DEO #0000 DUP2 .Screen/x DEO2 [ LIT2r 85 -Screen/sprite ] DEOkr #0080 ADD2 .Screen/x DEO2 .Screen/y DEI2 #0008 SUB2 .Screen/y DEO2 DEOr JMP2r ( @|Chicago ) @chicago/next-glyph ( addr* -- addr* ) INC2 LDAk ( utf8 ) #06 SFT #02 EQU ?/next-glyph JMP2r @chicago/get-utf8-addr ( addr* -- addr* glyph* ) LDAk #20 LTH ?{ LDAk #7f GTH ?{ LDAk #20 SUB #00 SWP #50 SFT2 ;/glyphs ADD2 JMP2r } } LDAk #0a NEQ ?{ ;&blank JMP2r } ;&check JMP2r @chicago/get-utf8-width ( addr* -- addr* width* ) LDAk #7f GTH ?{ LDAk #0000 ROT ;&widths ADD2 LDA JMP2r } #0008 JMP2r @chicago/ ( -- ) .Screen/y DEI2 #0010 ADD2 .Screen/y DEO2 JMP2r @chicago/ ( text* -- ) [ LIT2 15 -Screen/auto ] DEO .Screen/x DEI2 ,&anchor STR2 &>wsc LDAk ?{ POP2 JMP2r } / LDAk #0a NEQ ?{ [ LIT2 &anchor $2 ] .Screen/x DEO2 / } /next-glyph !&>wsc @chicago/ ( addr* -- addr* ) [ LITr -Screen/x ] DEI2r ( glyph* ) /get-utf8-addr .Screen/addr DEO2 ( width* ) /get-utf8-width STH2 ( draw2 ) [ LIT2 &color 05 -Screen/sprite ] ( draw1 ) DUPr [ LITr 08 LTHr JMPr DEOk ] DEO ADD2r [ LITr -Screen/x ] DEO2r JMP2r @chicago/ ( char -- ) #00 SWP ( ) DUP2 #20 SUB #50 SFT2 ;&glyphs ADD2 .Screen/addr DEO2 ( ) ;&widths ADD2 LDA #00 SWP .Screen/x DEI2 ADD2 ( ) ,&color LDR .Screen/sprite DEOk DEO .Screen/x DEO2 JMP2r @chicago/ ( short* -- ) [ LIT2 15 -Screen/auto ] DEO #000a SWP2 [ LITr ff ] &>get SWP2k DIV2k MUL2 SUB2 STH POP OVR2 DIV2 ORAk ?&>get POP2 POP2 &>put STHr INCk ?{ POP JMP2r } [ LIT "0 ] ADD / !&>put ( @|theme ) @theme/ ( -- ) #f0ad #f0ef #f0be ( >> ) @theme/ ( r* g* b* -- ) .System/b DEO2 .System/g DEO2 .System/r DEO2 JMP2r @theme/ ( -- ) ;&path .File/name DEO2 #0002 .File/length DEO2 ;&r .File/read DEO2 ;&g .File/read DEO2 ;&b .File/read DEO2 .File/success-lb DEI ?{ !/ } [ LIT2 &r $2 ] [ LIT2 &g $2 ] [ LIT2 &b $2 ] !/ &path ".theme $1 ( @|stdlib ) @file/ ( length* -- ) .File/name DEI2k ROT DEO2 #0000 INC2k .File/length DEO2 &>l ;&b .File/read DEO2 INC2 GTH2k ?&>l POP2 POP2 JMP2r &b $1 @str/ ( str* -- ) LDAk DUP ?{ POP POP2 JMP2r } #18 DEO INC2 !/ ( @|Assets ) @dict/varvara "Varvara 20 00 &unknown-field "No 20 "version 20 "found. 0a 00 &body-nometa "No 20 "metadata 20 "found: 0a 00 &body-nofile "Invalid 20 "file: 0a 00 &compatible 20 "compatible. 00 &blank " 00 @line/wave [ 0c33 c000 0000 0000 000c 3fff ffff ffff ] &wave-blank [ 0c33 c000 0000 0000 0000 0000 0000 0000 ] @chicago/check [ aa55 aa55 aa55 aa55 aa55 aa55 aa55 aa55 ] &blank [ 0000 0000 0000 0000 0000 0000 0000 0000 ] @appicon [ 0000 0000 0f10 101f 0000 0000 000f 0f00 0000 0000 ff00 00ff 0000 0000 00ff ff00 0000 0000 f078 78b8 0000 0000 00b0 b000 1010 1010 1010 1010 0000 0000 0000 0000 0000 0042 0042 3c00 0000 0000 0000 0000 0808 0808 0808 0808 0000 0000 0000 0000 1010 0f00 0000 0000 0000 0000 0000 0000 0000 ff00 0000 0000 0000 0000 0000 0000 0808 f000 0000 0000 0000 0000 0000 0000 ] &nometa [ 0000 0000 0f10 101f 0000 0000 000f 0f00 0000 0000 ff00 00ff 0000 0000 00ff ff00 0000 0000 f078 78b8 0000 0000 00b0 b000 1010 1010 1010 1010 0000 0000 0000 0000 0000 0042 003c 4200 0000 0000 0000 0000 0808 0808 0808 0808 0000 0000 0000 0000 1010 0f00 0000 0000 0000 0000 0000 0000 0000 ff00 0000 0000 0000 0000 0000 0000 0808 f000 0000 0000 0000 0000 0000 0000 ] &nofile [ 0000 0000 0f10 101f 0000 0000 000f 0f00 0000 0000 ff00 00ff 0000 0000 00ff ff00 0000 0000 f078 78b8 0000 0000 00b0 b000 1010 1010 1010 1010 0000 0000 0000 0000 0000 4424 1424 4400 0000 0000 0000 0000 0808 0808 0808 0808 0000 0000 0000 0000 1010 0f00 0000 0000 0000 0000 0000 0000 0000 ff00 0000 0000 0000 0000 0000 0000 0808 f000 0000 0000 0000 0000 0000 0000 ] @bubble [ 0000 030c 1010 2020 0000 ff00 0000 0000 0000 ff00 0000 0000 0000 ff00 0000 0000 0000 c030 0808 0404 2020 2020 2020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0404 0201 0204 0404 2020 2020 2020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0404 0404 0404 0404 2020 2020 2020 2020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0404 0404 0404 0404 2020 1010 0c03 0000 0000 0000 00ff 0000 0000 0000 00ff 0000 0000 0000 00ff 0000 0404 0808 30c0 0000 ] @chicago/widths [ 0000 0000 0000 0000 0008 0000 0000 0000 000b 0b09 0b00 0000 0000 0000 0000 0000 0406 070a 070b 0a03 0505 0707 0407 0407 0808 0808 0808 0808 0808 0404 0608 0608 0b08 0808 0807 0708 0806 0709 070c 0908 0808 0807 0608 080c 0808 0805 0705 0808 0608 0807 0808 0608 0804 0608 040c 0808 0808 0607 0608 080c 0808 0805 0505 0808 ] &glyphs [ 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3030 3030 3000 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0028 2828 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0909 3f12 127f 2424 0000 0000 0000 0000 0000 8000 0000 0000 0000 0000 0000 0000 1038 5470 7038 1c1c 5438 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3749 4a32 0404 090a 1211 0000 0000 0000 0000 0000 0000 8040 4080 0000 0000 0000 003c 6666 3067 6666 663c 0000 0000 0000 0000 0080 8000 0000 0000 0000 0000 0000 0040 4040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 6060 6060 6060 6020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 3030 3030 3030 3020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 5438 5410 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 107c 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6060 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0404 0808 1010 2020 4040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0018 3818 1818 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 060c 1830 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0c18 3c06 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0006 0e16 2646 7f06 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 6060 7c06 0606 463c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 3060 7c66 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0606 060c 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 663c 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 3e06 0c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6000 0000 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6000 0000 6060 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1830 60c0 6030 1800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7e00 7e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 c060 3018 3060 c000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 4606 0c18 1800 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1f20 4e52 524d 201f 0000 0000 0000 0000 0080 4040 4080 0000 0000 0000 0000 003c 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 6060 6060 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 6666 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 6078 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6060 6078 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6260 606e 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 667e 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000c 0c0c 0c0c cccc cc78 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0063 666c 7870 786c 6663 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6060 6060 6060 607c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0040 6070 795f 4e44 4040 0000 0000 0000 0020 60e0 e060 6060 6060 0000 0000 0000 0041 6171 795d 4f47 4341 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 6666 663c 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 667c 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6460 7038 1c0c 4c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00fc 3030 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 6478 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6666 667f 0000 0000 0000 0060 6060 6060 6060 4080 0000 0000 0000 0066 6666 663c 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 663c 1818 1818 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 0606 0c18 3060 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7060 6060 6060 6060 6060 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4040 2020 1010 0808 0404 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7030 3030 3030 3030 3030 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0008 1422 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 463e 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 607c 6666 6666 667c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6460 6060 6438 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0006 063e 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 7e60 623c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 3078 3030 3030 3030 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 607c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 0060 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0018 0018 1818 1818 1818 1898 7000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6066 6c78 7078 6c66 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0060 6060 6060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007f 6666 6666 6666 0000 0000 0000 0000 00c0 6060 6060 6060 0000 0000 0000 0000 007c 6666 6666 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003c 6666 6666 663c 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007c 6666 6666 667c 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 003e 6666 6666 663e 0606 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 006c 7060 6060 6060 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0038 6470 381c 4c38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0030 3078 3030 3030 3018 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 663e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 6478 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 667f 0000 0000 0000 0000 0060 6060 6060 4080 0000 0000 0000 0000 0066 6666 3c66 6666 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0066 6666 6666 663e 0646 3c00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 007e 060c 1830 607e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1020 2020 2040 2020 2020 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2020 2020 2020 2020 2020 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4020 2020 2010 2020 2020 4000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0032 4c00 0000 0000 0000 0000 ] @metadata/header $1 [ &start $3 &deo $2 &version $1 &body $100 &length $1 &fields $ff ] @icon/buf $90