( build: uxnasm src/view.tal view.rom | start: uxnemu view.rom ) |00 @System/vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $1 &rl $1 &g $1 &gl $1 &b $1 &bl $1 &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 |80 @Controller/vector $2 &button $1 &key $1 |90 @Mouse/vector $2 &x $2 &y $2 &state $1 &pad $3 &sx $2 &sy $1 &sy-lb $1 |a0 @File/vector $2 &success $1 &success-lb $1 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 |c0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 |000 @scene/id $1 &seen $2 &stop $1 |100 @on-reset ( -> ) ;meta #06 DEO2 theme/ #0140 .Screen/width DEO2 #00c8 .Screen/height DEO2 ;canvas/on-mouse .Mouse/vector DEO2 [ LIT2 01 -scene/stop ] STZ #00 scene/ BRK @meta 00 ( name ) "Flickview 0a ( details ) "A 20 "Point-n-click 20 "Viewer 0a ( author ) "By 20 "Devine 20 "Lu 20 "Linvega 0a ( date ) "25 20 "Mar 20 "2025 $2 ( @|Scene ) @scene/on-frame ( -> ) [ LIT &timer $1 ] INCk ,&timer STR ?{ #0000 .Screen/vector DEO2 scene/ } BRK @scene/ BRK } POP BRK @canvas/ ( -- ) [ LIT2 05 -Screen/auto ] DEO ;&mem .Screen/addr DEO2 #0000 .Screen/x DEO2 #0000 .Screen/y DEO2 #1900 [ LIT2r 81 -Screen/sprite ] &>v ( -- ) #2800 &>h ( -- ) DEOkr INC GTHk ?&>h POP2 ( | down ) #0000 .Screen/x DEO2 .Screen/y DEI2k #0008 ADD2 ROT DEO2 INC GTHk ?&>v POP2 POP2r JMP2r @canvas/get-addr ( x* y* -- x* y* addr* ) ( x ) OVR2 #03 SFT2 ( y ) OVR2 #03 SFT2 #0028 MUL2 ADD2 ( ) #40 SFT2 ;&mem ADD2 ( ) OVR2 #0007 AND2 ADD2 JMP2r @canvas/get-pixel ( x* y* -- color ) ( get tile addr ) /get-addr STH2 ( make bit mask ) POP2 NIP #07 AND #80 SWP SFT ( ch1 ) DUP LDAkr STHr AND #00 NEQ SWP ( ch2 ) STH2r #0008 ADD2 LDA AND #00 NEQ DUP ADD ORA JMP2r ( @|Cursor ) @cursor/get-addr ( color -- addr* ) INCk ?{ POP ;cursor/arrow-chr JMP2r } DUP #fe NEQ ?{ POP ;cursor/mask-chr JMP2r } POP ;cursor/hand-chr JMP2r @cursor/ ( color -- ) [ LIT2 12 -Screen/auto ] DEO #40 ;fill-icn / [ LIT2 16 -Screen/auto ] DEO #c1 SWP /get-addr #0000 .Mouse/state DEI NEQ #60 SFT2 ADD2 ( | continue ) .Mouse/x DEI2 ,&x STR2 .Mouse/y DEI2 ,&y STR2 ( >> ) @cursor/ ( color addr* -- ) .Screen/addr DEO2 [ LIT2 &x $2 ] #0004 SUB2 .Screen/x DEO2 [ LIT2 &y $2 ] #0004 SUB2 .Screen/y DEO2 .Screen/sprite DEOk DEO JMP2r @cursor/mask-chr [ 6394 8841 2241 8894 0063 773e 1c3e 7763 0080 8000 0000 8080 0000 0000 0000 0000 6300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 63f7 ff7f 3e7f fff7 0063 773e 1c3e 7763 0080 8000 0000 8080 0000 0000 0000 0000 6300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ] &arrow-chr [ 0000 0000 1814 1211 0000 0000 0008 0c0e 0000 0000 0000 0000 0000 0000 0000 0000 1010 1013 1418 0000 0f0f 0f0c 0800 0000 8040 20c0 0000 0000 0080 c000 0000 0000 0000 0000 181c 1e1f 0000 0000 0008 0c0e 0000 0000 0000 0000 0000 0000 0000 0000 1f1f 1f1f 1c18 0000 0f0f 0f0c 0800 0000 80c0 e0c0 0000 0000 0080 c000 0000 0000 ] &hand-chr [ 0000 0000 0814 1417 0000 0000 0008 0808 0000 0000 0000 00c0 0000 0000 0000 0000 1010 2010 1008 0700 0f0f 1f0f 0f07 0000 2010 1010 2020 c000 c0e0 e0e0 c0c0 0000 0000 0000 0000 0817 0000 0000 0000 0008 0000 0000 0000 00c0 0000 0000 0000 0000 1010 2010 1008 0700 0f0f 1f0f 0f07 0000 2010 1010 2020 c000 c0e0 e0e0 c0c0 0000 ] ( @|Theme ) @theme/ ( -- ) #f0af #f0d7 #f0b6 ( >> ) @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 ?{ !theme/ } [ LIT2 &r $2 ] [ LIT2 &g $2 ] [ LIT2 &b $2 ] !theme/ &path ".theme $1 @fill-icn [ ffff ffff ffff ffff ffff ffff ffff ffff ] @canvas/mem $3e80 &memcap ( - ) ( lnk ) &links &link1 $1 &link2 $1 ( rgb ) &color &r $1 &g $1 &b $1 ( req ) &masks &mask1 $2 &mask2 $2 ( mov ) &time $1