diff --git a/projects/software/launcher.tal b/projects/software/launcher.tal index d67518c..6b729d9 100644 --- a/projects/software/launcher.tal +++ b/projects/software/launcher.tal @@ -19,6 +19,7 @@ |10 @Console [ &vector $2 &read $1 &pad $5 &write $1 &error $1 ] |20 @Screen &vector $2 &width $2 &height $2 &pad $2 &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 &wheel $1 ] |a0 @File &vector $2 &success $2 &offset-hs $2 &offset-ls $2 &name $2 &length $2 &load $2 &save $2 ( variables ) @@ -26,25 +27,46 @@ |0000 @input $30 +@pointer + &x $2 &y $2 ( init ) |0100 ( -> ) ( theme ) - #a0f7 .System/r DEO2 - #a0f7 .System/g DEO2 - #a0f7 .System/b DEO2 + #e077 .System/r DEO2 + #e00c .System/g DEO2 + #e02a .System/b DEO2 ( vectors ) ;on-button .Controller/vector DEO2 + ;on-mouse .Mouse/vector DEO2 - #0020 #0020 ;welcome-txt #01 ;draw-label JSR2 - #0020 #0030 ;today-txt #01 ;draw-label JSR2 - #0020 #0050 ;prompt-txt #02 ;draw-label JSR2 + ( theme support ) + ;load-theme JSR2 BRK +@on-mouse ( -> ) + + ;pointer-icn .Screen/addr DEO2 + ( clear last cursor ) + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 + #40 .Screen/sprite DEO + + ( record pointer positions ) + .Mouse/x DEI2 .pointer/x STZ2 + .Mouse/y DEI2 .pointer/y STZ2 + + ( draw new cursor ) + .pointer/x LDZ2 .Screen/x DEO2 + .pointer/y LDZ2 .Screen/y DEO2 + #41 .Mouse/state DEI #01 = + .Screen/sprite DEO + +BRK + @on-button ( -> ) .Controller/key DEI BRK? @@ -60,6 +82,18 @@ BRK BRK +@redraw ( -- ) + + #0018 #0020 #0040 #0040 ;logo-icn #03 ;draw-icn JSR2 + #0020 #0070 ;welcome-txt #01 ;draw-label JSR2 + + #0020 #0080 ;today-txt #01 ;draw-label JSR2 + #0020 #00b0 ;prompt-txt #01 ;draw-label JSR2 + #0020 #00c0 ;do-txt #03 ;draw-label JSR2 + #03 ;form/draw JSR2 + +RTN + @form ( -- ) &append ( char -- ) @@ -68,7 +102,7 @@ BRK &can-append ( save ) STH2kr STA ( null ) #00 STH2r INC2 STA - #01 ,&draw JSR + #07 ,&draw JSR RTN &validate ( -- ) @@ -83,7 +117,7 @@ BRK &can-erase #00 ,&draw JSR ( remove ) #00 ,&seek JSR #0001 -- STA - #01 ,&draw JSR + #07 ,&draw JSR RTN &seek ( -- end* ) @@ -94,7 +128,8 @@ BRK &draw ( color -- ) STH - #0030 #0070 ;input STHr ;draw-label JSR2 + #0038 #00c0 ;input STHkr ;draw-label JSR2 + STHr ;draw-cursor JSR2 RTN RTN @@ -107,6 +142,36 @@ RTN RTN +@draw-cursor ( color -- ) + + STH + ;cursor-icn .Screen/addr DEO2 + STHkr .Screen/sprite DEO + .Screen/y DEI2 #0008 ++ .Screen/y DEO2 + STHr .Screen/sprite DEO + +RTN + +@draw-icn ( x* y* width* height* addr* color -- ) + + ( load ) STH .Screen/addr DEO2 ,&height STR2 ,&width STR2 ,&y STR2 ,&x STR2 + ,&height LDR2 #0000 + &ver + ( save ) DUP2 ,&y LDR2 ADD2 .Screen/y DEO2 + ,&width LDR2 #0000 + &hor + ( save ) DUP2 ,&x LDR2 ADD2 .Screen/x DEO2 + ( draw ) STHkr .Screen/sprite DEO + ( incr ) .Screen/addr DEI2 #0008 ADD2 .Screen/addr DEO2 + #0008 ADD2 GTH2k ,&hor JCN + POP2 POP2 + #0008 ADD2 GTH2k ,&ver JCN + POP2 POP2 + POPr + +RTN + &x $2 &y $2 &width $2 &height $2 + @draw-label ( x* y* addr* color -- ) STH STH2 @@ -114,7 +179,7 @@ RTN .Screen/x DEO2 STH2r &loop - ( top-addr ) LDAk #00 - TOS #0010 MUL2 ;font ++ .Screen/addr DEO2 + ( top-addr ) LDAk #20 - TOS #0010 MUL2 ;font ++ .Screen/addr DEO2 ( top-draw ) STHkr .Screen/sprite DEO ( bottom-addr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2 ( next-y ) .Screen/y DEI2 #0008 ++ .Screen/y DEO2 @@ -126,6 +191,27 @@ RTN RTN +( theme ) + +@theme-txt ".theme $1 + +@load-theme ( -- ) + + ;theme-txt .File/name DEO2 + #0006 .File/length DEO2 + #fffa .File/load DEO2 + + .File/success DEI2 #0006 !! ,&ignore JCN + #fffa LDA2 .System/r DEO2 + #fffc LDA2 .System/g DEO2 + #fffe LDA2 .System/b DEO2 + &ignore + ;redraw JSR2 + +RTN + +( helpers ) + @print-hex ( value* -- ) &short ( value* -- ) @@ -149,517 +235,141 @@ RTN "Today 20 "is 20 "21Q04 ". $1 @prompt-txt "What 20 "shall 20 "we 20 "do? $1 +@do-txt + "$: $1 + +@pointer-icn + 80c0 e0f0 f8e0 1000 +@cursor-icn + ffff ffff ffff ffff + +@logo-icn + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0003 + 0000 0000 0000 40c1 0000 0000 0000 7cff + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 1f7f 0707 0707 0707 + c3c7 dcf0 e0e0 e0e0 ff1f 0707 0303 0303 + 80c0 c0e0 e0e0 e0e0 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0707 0707 0707 0707 + e0e0 e0e0 e0e0 e0e0 0303 0303 0303 0303 + e0e0 e0e0 e0e0 e0e0 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0707 0707 0707 070f + e0e0 e0e0 e0e0 e0f0 0303 0303 0303 0707 + e0e0 e0e0 e0e0 f0f8 0000 0000 0000 0000 + 0000 0000 0000 0000 7f1f 0f07 0707 0707 + fce0 e0c0 c0c0 c0c0 7f0f 0707 0707 0707 + fef0 e0e0 e0e0 e0e0 3f00 0000 0000 0000 + fe00 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0707 0707 0707 0707 + c0c0 c0c0 c0c0 c0c0 0707 0707 0707 0707 + e0e0 e0e0 e0e0 e0e0 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0707 0707 0707 0303 + c0c0 c0c0 c0e0 e0f8 0707 0707 070f 3be3 + e0e0 e0e0 e0e0 e0fe 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0100 0000 0000 0000 + ffff 3e00 0000 0000 c383 0200 0000 0000 + f8c0 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + @font - 0000 0000 0000 0000 - 0000 0000 0000 0000 - 007e c381 a581 bd99 - c37e 0000 0000 0000 - 007e ffff dbff c3e7 - ff7e 0000 0000 0000 - 0000 44ee fefe fe7c - 3810 0000 0000 0000 - 0010 387c fefe 7c38 - 1000 0000 0000 0000 - 0018 3c3c ffe7 e718 - 187e 0000 0000 0000 - 0018 3c7e ffff 7e18 - 187e 0000 0000 0000 - 0000 0000 3c7e 7e3c - 0000 0000 0000 0000 - ffff ffff c381 81c3 - ffff ffff 0000 0000 - 0000 3c7e 6642 4266 - 7e3c 0000 0000 0000 - ffff c381 99bd bd99 - 81c3 ffff 0000 0000 - 003e 0e3a 72f8 cccc - cc78 0000 0000 0000 - 003c 6666 663c 187e - 1818 0000 0000 0000 - 001f 1919 1f18 1878 - f870 0000 0000 0000 - 007f 637f 6363 6367 - e7e6 c000 0000 0000 - 0000 18db 7ee7 e77e - db18 0000 0000 0000 - 0080 c0e0 f8fe f8e0 - c080 0000 0000 0000 - 0002 060e 3efe 3e0e - 0602 0000 0000 0000 - 0018 3c7e 1818 187e - 3c18 0000 0000 0000 - 0066 6666 6666 0000 - 6666 0000 0000 0000 - 007f dbdb db7b 1b1b - 1b1b 0000 0000 0000 - 007e 6330 3c66 663c - 0cc6 7e00 0000 0000 - 0000 0000 0000 00fe - fefe 0000 0000 0000 - 0018 3c7e 1818 187e - 3c18 7e00 0000 0000 - 0018 3c7e 1818 1818 - 1818 0000 0000 0000 - 0018 1818 1818 187e - 3c18 0000 0000 0000 - 0000 0018 0cfe 0c18 - 0000 0000 0000 0000 - 0000 0030 60fe 6030 - 0000 0000 0000 0000 - 0000 0000 c0c0 c0fe - 0000 0000 0000 0000 - 0000 0024 66ff 6624 - 0000 0000 0000 0000 - 0000 1010 3838 7c7c - fefe 0000 0000 0000 - 0000 fefe 7c7c 3838 - 1010 0000 0000 0000 - 0000 0000 0000 0000 - 0000 0000 0000 0000 - 0030 7878 7830 3000 - 3030 0000 0000 0000 - 0066 6666 2400 0000 - 0000 0000 0000 0000 - 006c 6cfe 6c6c 6cfe - 6c6c 0000 0000 0000 - 3030 7cc0 c078 0c0c - f830 3000 0000 0000 - 0000 00c4 cc18 3060 - cc8c 0000 0000 0000 - 0070 d8d8 70fa decc - dc76 0000 0000 0000 - 0030 3030 6000 0000 - 0000 0000 0000 0000 - 000c 1830 6060 6030 - 180c 0000 0000 0000 - 0060 3018 0c0c 0c18 - 3060 0000 0000 0000 - 0000 0066 3cff 3c66 - 0000 0000 0000 0000 - 0000 0018 187e 1818 - 0000 0000 0000 0000 - 0000 0000 0000 0000 - 3838 6000 0000 0000 - 0000 0000 00fe 0000 - 0000 0000 0000 0000 - 0000 0000 0000 0000 - 3838 0000 0000 0000 - 0000 0206 0c18 3060 - c080 0000 0000 0000 - 007c c6ce ded6 f6e6 - c67c 0000 0000 0000 - 0010 30f0 3030 3030 - 30fc 0000 0000 0000 - 0078 cccc 0c18 3060 - ccfc 0000 0000 0000 - 0078 cc0c 0c38 0c0c - cc78 0000 0000 0000 - 000c 1c3c 6ccc fe0c - 0c1e 0000 0000 0000 - 00fc c0c0 c0f8 0c0c - cc78 0000 0000 0000 - 0038 60c0 c0f8 cccc - cc78 0000 0000 0000 - 00fe c6c6 060c 1830 - 3030 0000 0000 0000 - 0078 cccc cc78 cccc - cc78 0000 0000 0000 - 0078 cccc cc7c 1818 - 3070 0000 0000 0000 - 0000 0038 3800 0038 - 3800 0000 0000 0000 - 0000 0038 3800 0038 - 3818 3000 0000 0000 - 000c 1830 60c0 6030 - 180c 0000 0000 0000 - 0000 0000 7e00 7e00 - 0000 0000 0000 0000 - 0060 3018 0c06 0c18 - 3060 0000 0000 0000 - 0078 cc0c 1830 3000 - 3030 0000 0000 0000 - 007c c6c6 dede dec0 - c07c 0000 0000 0000 - 0030 78cc cccc fccc - cccc 0000 0000 0000 - 00fc 6666 667c 6666 - 66fc 0000 0000 0000 - 003c 66c6 c0c0 c0c6 - 663c 0000 0000 0000 - 00f8 6c66 6666 6666 - 6cf8 0000 0000 0000 - 00fe 6260 647c 6460 - 62fe 0000 0000 0000 - 00fe 6662 647c 6460 - 60f0 0000 0000 0000 - 003c 66c6 c0c0 cec6 - 663e 0000 0000 0000 - 00cc cccc ccfc cccc - cccc 0000 0000 0000 - 0078 3030 3030 3030 - 3078 0000 0000 0000 - 001e 0c0c 0c0c cccc - cc78 0000 0000 0000 - 00e6 666c 6c78 6c6c - 66e6 0000 0000 0000 - 00f0 6060 6060 6266 - 66fe 0000 0000 0000 - 00c6 eefe fed6 c6c6 - c6c6 0000 0000 0000 - 00c6 c6e6 f6fe dece - c6c6 0000 0000 0000 - 0038 6cc6 c6c6 c6c6 - 6c38 0000 0000 0000 - 00fc 6666 667c 6060 - 60f0 0000 0000 0000 - 0038 6cc6 c6c6 cede - 7c0c 1e00 0000 0000 - 00fc 6666 667c 6c66 - 66e6 0000 0000 0000 - 0078 cccc c070 18cc - cc78 0000 0000 0000 - 00fc b430 3030 3030 - 3078 0000 0000 0000 - 00cc cccc cccc cccc - cc78 0000 0000 0000 - 00cc cccc cccc cccc - 7830 0000 0000 0000 - 00c6 c6c6 c6d6 d66c - 6c6c 0000 0000 0000 - 00cc cccc 7830 78cc - cccc 0000 0000 0000 - 00cc cccc cc78 3030 - 3078 0000 0000 0000 - 00fe ce98 1830 6062 - c6fe 0000 0000 0000 - 003c 3030 3030 3030 - 303c 0000 0000 0000 - 0000 80c0 6030 180c - 0602 0000 0000 0000 - 003c 0c0c 0c0c 0c0c - 0c3c 0000 0000 0000 - 1038 6cc6 0000 0000 - 0000 0000 0000 0000 - 0000 0000 0000 0000 - 0000 ff00 0000 0000 - 3030 1800 0000 0000 - 0000 0000 0000 0000 - 0000 0000 780c 7ccc - cc76 0000 0000 0000 - 00e0 6060 7c66 6666 - 66dc 0000 0000 0000 - 0000 0000 78cc c0c0 - cc78 0000 0000 0000 - 001c 0c0c 7ccc cccc - cc76 0000 0000 0000 - 0000 0000 78cc fcc0 - cc78 0000 0000 0000 - 0038 6c60 60f8 6060 - 60f0 0000 0000 0000 - 0000 0000 76cc cccc - 7c0c cc78 0000 0000 - 00e0 6060 6c76 6666 - 66e6 0000 0000 0000 - 0018 1800 7818 1818 - 187e 0000 0000 0000 - 000c 0c00 3c0c 0c0c - 0ccc cc78 0000 0000 - 00e0 6060 666c 786c - 66e6 0000 0000 0000 - 0078 1818 1818 1818 - 187e 0000 0000 0000 - 0000 0000 fcd6 d6d6 - d6c6 0000 0000 0000 - 0000 0000 f8cc cccc - cccc 0000 0000 0000 - 0000 0000 78cc cccc - cc78 0000 0000 0000 - 0000 0000 dc66 6666 - 667c 60f0 0000 0000 - 0000 0000 76cc cccc - cc7c 0c1e 0000 0000 - 0000 0000 ec6e 7660 - 60f0 0000 0000 0000 - 0000 0000 78cc 6018 - cc78 0000 0000 0000 - 0000 2060 fc60 6060 - 6c38 0000 0000 0000 - 0000 0000 cccc cccc - cc76 0000 0000 0000 - 0000 0000 cccc cccc - 7830 0000 0000 0000 - 0000 0000 c6c6 d6d6 - 6c6c 0000 0000 0000 - 0000 0000 c66c 3838 - 6cc6 0000 0000 0000 - 0000 0000 6666 6666 - 3c0c 18f0 0000 0000 - 0000 0000 fc8c 1860 - c4fc 0000 0000 0000 - 001c 3030 60c0 6030 - 301c 0000 0000 0000 - 0018 1818 1800 1818 - 1818 0000 0000 0000 - 00e0 3030 180c 1830 - 30e0 0000 0000 0000 - 0073 dace 0000 0000 - 0000 0000 0000 0000 - 0000 0010 386c c6c6 - fe00 0000 0000 0000 - 0078 cccc c0c0 c0cc - cc78 3060 0000 0000 - 00cc cc00 cccc cccc - cc76 0000 0000 0000 - 0c18 3000 78cc fcc0 - cc78 0000 0000 0000 - 3078 cc00 780c 7ccc - cc76 0000 0000 0000 - 00cc cc00 780c 7ccc - cc76 0000 0000 0000 - c060 3000 780c 7ccc - cc76 0000 0000 0000 - 386c 6c38 f80c 7ccc - cc76 0000 0000 0000 - 0000 0000 78cc c0c0 - cc78 3060 0000 0000 - 3078 cc00 78cc fcc0 - c07c 0000 0000 0000 - 00cc cc00 78cc fcc0 - c07c 0000 0000 0000 - c060 3000 78cc fcc0 - c07c 0000 0000 0000 - 006c 6c00 7818 1818 - 187e 0000 0000 0000 - 1038 6c00 7818 1818 - 187e 0000 0000 0000 - 6030 1800 7818 1818 - 187e 0000 0000 0000 - 00cc 0030 78cc ccfc - cccc 0000 0000 0000 - 78cc cc78 78cc ccfc - cccc 0000 0000 0000 - 0c18 00fc c4c0 f8c0 - c4fc 0000 0000 0000 - 0000 0000 fe1b 7fd8 - d8ef 0000 0000 0000 - 003e 78d8 d8fe d8d8 - d8de 0000 0000 0000 - 3078 cc00 78cc cccc - cc78 0000 0000 0000 - 00cc cc00 78cc cccc - cc78 0000 0000 0000 - c060 3000 78cc cccc - cc78 0000 0000 0000 - 3078 cc00 cccc cccc - cc76 0000 0000 0000 - c060 3000 cccc cccc - cc76 0000 0000 0000 - 0066 6600 6666 6666 - 3c0c 18f0 0000 0000 - 00cc 0078 cccc cccc - cc78 0000 0000 0000 - cc00 cccc cccc cccc - cc78 0000 0000 0000 - 0000 0000 78cc dcec - cc78 0000 0000 0000 - 3c66 6060 60fc 6060 - c0fe 0000 0000 0000 - 003a 6cce d6d6 d6e6 - 6cb8 0000 0000 0000 - 0000 0000 00c6 6c38 - 6cc6 0000 0000 0000 - 0e1b 1818 7e18 1818 - d870 0000 0000 0000 - 0c18 3000 780c 7ccc - cc76 0000 0000 0000 - 0c18 3000 7818 1818 - 187e 0000 0000 0000 - 0c18 3000 78cc cccc - cc78 0000 0000 0000 - 0c18 3000 cccc cccc - cc76 0000 0000 0000 - 0076 dc00 f8cc cccc - cccc 0000 0000 0000 - 76dc 00c6 e6f6 dece - c6c6 0000 0000 0000 - 0078 cccc 7e00 fe00 - 0000 0000 0000 0000 - 0078 cccc 7800 fe00 - 0000 0000 0000 0000 - 0030 3000 3060 c0c0 - cc78 0000 0000 0000 - 0038 44ba aaba b2aa - 4438 0000 0000 0000 - 0000 0000 00fc 0c0c - 0c00 0000 0000 0000 - 0062 e66c 7830 6ec3 - 860c 1f00 0000 0000 - 0063 e66c 7837 6fdb - b33f 0300 0000 0000 - 0030 3000 3030 7878 - 7830 0000 0000 0000 - 0000 0000 3366 cccc - 6633 0000 0000 0000 - 0000 0000 cc66 3333 - 66cc 0000 0000 0000 - 2492 4924 9249 2492 - 4924 9249 0000 0000 - 55aa 55aa 55aa 55aa - 55aa 55aa 0000 0000 - 6ddb b66d dbb6 6ddb - b66d dbb6 0000 0000 - 1818 1818 1818 1818 - 1818 1818 0000 0000 - 1818 1818 18f8 1818 - 1818 1818 0000 0000 - 0c18 0030 78cc ccfc - cccc 0000 0000 0000 - 78cc 0030 78cc ccfc - cccc 0000 0000 0000 - 6030 0030 78cc ccfc - cccc 0000 0000 0000 - 0038 44ba a2a2 a2ba - 4438 0000 0000 0000 - 6666 6666 e606 06e6 - 6666 6666 0000 0000 - 6666 6666 6666 6666 - 6666 6666 0000 0000 - 0000 0000 fe06 06e6 - 6666 6666 0000 0000 - 6666 6666 e606 06fe - 0000 0000 0000 0000 - 0030 3078 ccc0 c0cc - 7830 3000 0000 0000 - cccc cccc 78fc 30fc - 3030 0000 0000 0000 - 0000 0000 00f8 1818 - 1818 1818 0000 0000 - 1818 1818 181f 0000 - 0000 0000 0000 0000 - 1818 1818 18ff 0000 - 0000 0000 0000 0000 - 0000 0000 00ff 1818 - 1818 1818 0000 0000 - 1818 1818 181f 1818 - 1818 1818 0000 0000 - 0000 0000 00ff 0000 - 0000 0000 0000 0000 - 1818 1818 18ff 1818 - 1818 1818 0000 0000 - 0076 dc00 780c 7ccc - cc76 0000 0000 0000 - 76dc 0030 78cc ccfc - cccc 0000 0000 0000 - 6666 6666 6760 607f - 0000 0000 0000 0000 - 0000 0000 7f60 6067 - 6666 6666 0000 0000 - 6666 6666 e700 00ff - 0000 0000 0000 0000 - 0000 0000 ff00 00e7 - 6666 6666 0000 0000 - 6666 6666 6760 6067 - 6666 6666 0000 0000 - 0000 0000 ff00 00ff - 0000 0000 0000 0000 - 6666 6666 e700 00e7 - 6666 6666 0000 0000 - 0000 0000 00c6 7c6c - 7cc6 0000 0000 0000 - cc30 d80c 067e c6c6 - c67c 0000 0000 0000 - 00f8 6c66 66f6 6666 - 6cf8 0000 0000 0000 - 78cc 00fc c4c0 f8c0 - c4fc 0000 0000 0000 - 00cc 00fc c4c0 f8c0 - c4fc 0000 0000 0000 - 6030 00fc c4c0 f8c0 - c4fc 0000 0000 0000 - 00f0 3030 30fc 0000 - 0000 0000 0000 0000 - 1830 0078 3030 3030 - 3078 0000 0000 0000 - 78cc 0078 3030 3030 - 3078 0000 0000 0000 - 00cc 0078 3030 3030 - 3078 0000 0000 0000 - 1818 1818 18f8 0000 - 0000 0000 0000 0000 - 0000 0000 001f 1818 - 1818 1818 0000 0000 - ffff ffff ffff ffff - ffff ffff 0000 0000 - 0000 0000 0000 ffff - ffff ffff 0000 0000 - 0018 1818 1800 1818 - 1818 0000 0000 0000 - 6030 0078 3030 3030 - 3078 0000 0000 0000 - ffff ffff ffff 0000 - 0000 0000 0000 0000 - 1830 0078 cccc cccc - cc78 0000 0000 0000 - 0078 cccc d8cc cccc - f8c0 6000 0000 0000 - 78cc 0078 cccc cccc - cc78 0000 0000 0000 - 6030 0078 cccc cccc - cc78 0000 0000 0000 - 0076 dc00 78cc cccc - cc78 0000 0000 0000 - 76dc 0078 cccc cccc - cc78 0000 0000 0000 - 0000 0000 6666 6666 - 667b 60c0 0000 0000 - 0000 e060 7c66 667c - 60f0 0000 0000 0000 - 00f0 607c 6666 667c - 60f0 0000 0000 0000 - 1830 00cc cccc cccc - cc78 0000 0000 0000 - 78cc 00cc cccc cccc - cc78 0000 0000 0000 - 6030 00cc cccc cccc - cc78 0000 0000 0000 - 060c 1800 6666 6666 - 3c0c 18f0 0000 0000 - 1830 00cc cccc 7830 - 3078 0000 0000 0000 - 00fc 0000 0000 0000 - 0000 0000 0000 0000 - 0c18 3000 0000 0000 - 0000 0000 0000 0000 - 0000 0000 00fc 0000 - 0000 0000 0000 0000 - 0000 3030 fc30 3000 - fc00 0000 0000 0000 - 0000 0000 00f8 0000 - f800 0000 0000 0000 - e033 663c f837 6fdb - b33f 0300 0000 0000 - 007f dbdb db7b 1b1b - 1b1b 0000 0000 0000 - 007e 6330 3c66 663c - 0cc6 7e00 0000 0000 - 0000 3030 00fc 0030 - 3000 0000 0000 0000 - 0000 0000 0000 0000 - 0000 3070 0000 0000 - 003c 6666 663c 0000 - 0000 0000 0000 0000 - 00cc 0000 0000 0000 - 0000 0000 0000 0000 - 0000 0000 0018 0000 - 0000 0000 0000 0000 - 0030 7030 3078 0000 - 0000 0000 0000 0000 - 0078 0c38 0c78 0000 - 0000 0000 0000 0000 - 0078 0c18 307c 0000 - 0000 0000 0000 0000 - 0000 00fc fcfc fcfc - fc00 0000 0000 0000 - 0000 0000 0000 0000 - 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 183c 3c3c 1818 1800 1818 0000 0000 + 0066 6666 2400 0000 0000 0000 0000 0000 + 0000 006c 6cfe 6c6c 6cfe 6c6c 0000 0000 + 1818 7cc6 c2c0 7c06 0686 c67c 1818 0000 + 0000 0000 c2c6 0c18 3060 c686 0000 0000 + 0000 386c 6c38 76dc cccc cc76 0000 0000 + 0030 3030 6000 0000 0000 0000 0000 0000 + 0000 0c18 3030 3030 3030 180c 0000 0000 + 0000 3018 0c0c 0c0c 0c0c 1830 0000 0000 + 0000 0000 0066 3cff 3c66 0000 0000 0000 + 0000 0000 0018 187e 1818 0000 0000 0000 + 0000 0000 0000 0000 0018 1818 3000 0000 + 0000 0000 0000 00fe 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 1818 0000 0000 + 0000 0000 0206 0c18 3060 c080 0000 0000 + 0000 386c c6c6 d6d6 c6c6 6c38 0000 0000 + 0000 1838 7818 1818 1818 187e 0000 0000 + 0000 7cc6 060c 1830 60c0 c6fe 0000 0000 + 0000 7cc6 0606 3c06 0606 c67c 0000 0000 + 0000 0c1c 3c6c ccfe 0c0c 0c1e 0000 0000 + 0000 fec0 c0c0 fc06 0606 c67c 0000 0000 + 0000 3860 c0c0 fcc6 c6c6 c67c 0000 0000 + 0000 fec6 0606 0c18 3030 3030 0000 0000 + 0000 7cc6 c6c6 7cc6 c6c6 c67c 0000 0000 + 0000 7cc6 c6c6 7e06 0606 0c78 0000 0000 + 0000 0000 1818 0000 0018 1800 0000 0000 + 0000 0000 1818 0000 0018 1830 0000 0000 + 0000 0006 0c18 3060 3018 0c06 0000 0000 + 0000 0000 007e 0000 7e00 0000 0000 0000 + 0000 0060 3018 0c06 0c18 3060 0000 0000 + 0000 7cc6 c60c 1818 1800 1818 0000 0000 + 0000 007c c6c6 dede dedc c07c 0000 0000 + 0000 1038 6cc6 c6fe c6c6 c6c6 0000 0000 + 0000 fc66 6666 7c66 6666 66fc 0000 0000 + 0000 3c66 c2c0 c0c0 c0c2 663c 0000 0000 + 0000 f86c 6666 6666 6666 6cf8 0000 0000 + 0000 fe66 6268 7868 6062 66fe 0000 0000 + 0000 fe66 6268 7868 6060 60f0 0000 0000 + 0000 3c66 c2c0 c0de c6c6 663a 0000 0000 + 0000 c6c6 c6c6 fec6 c6c6 c6c6 0000 0000 + 0000 3c18 1818 1818 1818 183c 0000 0000 + 0000 1e0c 0c0c 0c0c cccc cc78 0000 0000 + 0000 e666 666c 7878 6c66 66e6 0000 0000 + 0000 f060 6060 6060 6062 66fe 0000 0000 + 0000 c6ee fefe d6c6 c6c6 c6c6 0000 0000 + 0000 c6e6 f6fe dece c6c6 c6c6 0000 0000 + 0000 7cc6 c6c6 c6c6 c6c6 c67c 0000 0000 + 0000 fc66 6666 7c60 6060 60f0 0000 0000 + 0000 7cc6 c6c6 c6c6 c6d6 de7c 0c0e 0000 + 0000 fc66 6666 7c6c 6666 66e6 0000 0000 + 0000 7cc6 c660 380c 06c6 c67c 0000 0000 + 0000 7e7e 5a18 1818 1818 183c 0000 0000 + 0000 c6c6 c6c6 c6c6 c6c6 c67c 0000 0000 + 0000 c6c6 c6c6 c6c6 c66c 3810 0000 0000 + 0000 c6c6 c6c6 d6d6 d6fe ee6c 0000 0000 + 0000 c6c6 6c7c 3838 7c6c c6c6 0000 0000 + 0000 6666 6666 3c18 1818 183c 0000 0000 + 0000 fec6 860c 1830 60c2 c6fe 0000 0000 + 0000 3c30 3030 3030 3030 303c 0000 0000 + 0000 0080 c0e0 7038 1c0e 0602 0000 0000 + 0000 3c0c 0c0c 0c0c 0c0c 0c3c 0000 0000 + 1038 6cc6 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 00ff 0000 + 3030 1800 0000 0000 0000 0000 0000 0000 + 0000 0000 0078 0c7c cccc cc76 0000 0000 + 0000 e060 6078 6c66 6666 667c 0000 0000 + 0000 0000 007c c6c0 c0c0 c67c 0000 0000 + 0000 1c0c 0c3c 6ccc cccc cc76 0000 0000 + 0000 0000 007c c6fe c0c0 c67c 0000 0000 + 0000 386c 6460 f060 6060 60f0 0000 0000 + 0000 0000 0076 cccc cccc cc7c 0ccc 7800 + 0000 e060 606c 7666 6666 66e6 0000 0000 + 0000 1818 0038 1818 1818 183c 0000 0000 + 0000 0606 000e 0606 0606 0606 6666 3c00 + 0000 e060 6066 6c78 786c 66e6 0000 0000 + 0000 3818 1818 1818 1818 183c 0000 0000 + 0000 0000 00ec fed6 d6d6 d6c6 0000 0000 + 0000 0000 00dc 6666 6666 6666 0000 0000 + 0000 0000 007c c6c6 c6c6 c67c 0000 0000 + 0000 0000 00dc 6666 6666 667c 6060 f000 + 0000 0000 0076 cccc cccc cc7c 0c0c 1e00 + 0000 0000 00dc 7666 6060 60f0 0000 0000 + 0000 0000 007c c660 380c c67c 0000 0000 + 0000 1030 30fc 3030 3030 361c 0000 0000 + 0000 0000 00cc cccc cccc cc76 0000 0000 + 0000 0000 0066 6666 6666 3c18 0000 0000 + 0000 0000 00c6 c6d6 d6d6 fe6c 0000 0000 + 0000 0000 00c6 6c38 3838 6cc6 0000 0000 + 0000 0000 00c6 c6c6 c6c6 c67e 060c f800 + 0000 0000 00fe cc18 3060 c6fe 0000 0000 + 0000 0e18 1818 7018 1818 180e 0000 0000 + 0000 1818 1818 0018 1818 1818 0000 0000 + 0000 7018 1818 0e18 1818 1870 0000 0000 diff --git a/src/devices/ppu.h b/src/devices/ppu.h index aba6fd9..0d954ba 100644 --- a/src/devices/ppu.h +++ b/src/devices/ppu.h @@ -23,8 +23,7 @@ typedef unsigned int Uint32; typedef struct Ppu { Uint16 width, height; - int i0, i1, redraw; - unsigned int *dat, stride; + unsigned int i0, i1, redraw, *dat, stride; } Ppu; void ppu_frame(Ppu *p);