From 4657fe24908e369dceaf21d9bc12bf3683e0b678 Mon Sep 17 00:00:00 2001 From: neauoire Date: Sun, 9 Jan 2022 17:04:54 -0800 Subject: [PATCH] (gui/label.tal) Use UF2 properly --- projects/examples/demos/font.tal | 194 --------- projects/examples/gui/label.tal | 692 ++++++++++++++++++++++++++----- projects/software/supervisor.tal | 4 +- 3 files changed, 599 insertions(+), 291 deletions(-) delete mode 100644 projects/examples/demos/font.tal diff --git a/projects/examples/demos/font.tal b/projects/examples/demos/font.tal deleted file mode 100644 index 0118089..0000000 --- a/projects/examples/demos/font.tal +++ /dev/null @@ -1,194 +0,0 @@ -( uxnasm projects/examples/demos/font.tal bin/font.rom && uxnemu bin/font.rom ) - -%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } -%< { LTH } %> { GTH } %= { EQU } %! { NEQ } -%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } -%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } - -%RTN { JMP2r } -%TOS { #00 SWP } - -%GET-WIDTH { TOS ;font-data ++ LDA } -%GET-GLYPH { TOS #50 SFT2 ;font-data/glyphs ++ } - -%AUTO-NONE { #00 .Screen/auto DEO } -%AUTO-X { #01 .Screen/auto DEO } -%AUTO-Y { #02 .Screen/auto DEO } -%AUTO-ADDR { #04 .Screen/auto DEO } -%AUTO-X-ADDR { #05 .Screen/auto DEO } -%AUTO-Y-ADDR { #06 .Screen/auto DEO } - -( devices ) - -|00 @System &vector $2 &pad $6 &r $2 &g $2 &b $2 -|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 $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 - -( variables ) - -|0000 - -( init ) - -|0100 ( -> ) - - ( theme ) - #0fa7 .System/r DEO2 - #0fa7 .System/g DEO2 - #0fa7 .System/b DEO2 - - ( load font ) - #4900 .File/length DEO2 - ;font-path-large .File/name DEO2 - ;font-data .File/read DEO2 - ( draw label ) - #0020 #0020 ;title #01 ;draw-uf3 JSR2 - - ( load font ) - #2100 .File/length DEO2 - ;font-path-medium .File/name DEO2 - ;font-data .File/read DEO2 - ( draw label ) - #0020 #0048 ;body #02 ;draw-uf2 JSR2 - - ( load font ) - #0900 .File/length DEO2 - ;font-path-small .File/name DEO2 - ;font-data .File/read DEO2 - ( draw label ) - #0030 #00b8 ;footer #03 ;draw-uf1 JSR2 - -BRK - -@draw-uf1 ( x* y* text* color -- ) - - STH - SWP2 .Screen/y DEO2 - SWP2 DUP2 .Screen/x DEO2 SWP2 - &loop - LDAk - DUP #0a ! ,&no-linebreak JCN - ( move down ) STH OVR2 .Screen/x DEO2 STHr - ( incr y ) .Screen/y DEI2 #0010 ++ .Screen/y DEO2 - POP ,&continue JMP &no-linebreak - ( get addr ) STHk TOS #30 SFT2 ;font-data #0100 ++ ++ .Screen/addr DEO2 - ( get width ) STHr TOS ;font-data ++ LDA TOS - ( draw ) STHkr .Screen/sprite DEO - ( use width ) .Screen/x DEI2 ++ .Screen/x DEO2 - &continue - ( incr addr ) INC2 - LDAk ,&loop JCN - POP2 POP2 POPr - -RTN - -@draw-uf2 ( x* y* text* color -- ) - - STH - SWP2 .Screen/y DEO2 - SWP2 .Screen/x DEO2 - AUTO-Y-ADDR - &while - LDAk #0a ! ,&no-linebreak JCN - ( reset ) #0020 .Screen/x DEO2 - ( down ) .Screen/y DEI2k #0010 ++ ROT DEO2 - ,&continue JMP &no-linebreak - LDAk STHkr ,&sprite JSR - &continue - INC2 LDAk ,&while JCN - POP2 POPr - AUTO-NONE - RTN - - &sprite ( char color -- ) - .Screen/x DEI2 STH2 - .Screen/y DEI2 STH2 - ( glyph ) OVR GET-GLYPH .Screen/addr DEO2 - DUP .Screen/sprite DEOk DEO - STH2kr .Screen/y DEO2 - SWP GET-WIDTH - DUP #09 < ,&narrow JCN - .Screen/x DEI2k #0008 ++ ROT DEO2 - OVR .Screen/sprite DEOk DEO - STH2kr .Screen/y DEO2 - &narrow - POP2r - ( width ) TOS STH2r ++ .Screen/x DEO2 - POP - RTN - -RTN - -@draw-uf3 ( x* y* text* color -- ) - - STH - SWP2 .Screen/y DEO2 - SWP2 DUP2 .Screen/x DEO2 SWP2 - &loop - LDAk - DUP #0a ! ,&no-linebreak JCN - ( move down ) OVR2 .Screen/x DEO2 - ( incr y ) .Screen/y DEI2 #0010 ++ .Screen/y DEO2 - POP ,&continue JMP &no-linebreak - STHkr ,&sprite JSR - &continue - ( incr addr ) INC2 - LDAk ,&loop JCN - POP2 POP2 POPr - RTN - - &sprite ( char color -- ) - STH - ( get addr ) DUP TOS #30 SFT2 #30 SFT2k ROT POP ADD2 ;font-data #0100 ++ ++ .Screen/addr DEO2 - ( get width ) TOS ;font-data ++ LDA TOS - #0300 - &ver - #0300 - &hor - STHkr .Screen/sprite DEO - .Screen/x DEI2 #0008 ++ .Screen/x DEO2 - .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2 - INC GTHk ,&hor JCN - POP2 - .Screen/y DEI2 #0008 ++ .Screen/y DEO2 - .Screen/x DEI2 #0018 -- .Screen/x DEO2 - INC GTHk ,&ver JCN - POP2 - .Screen/y DEI2 #0018 -- .Screen/y DEO2 - ( use width ) .Screen/x DEI2 ++ .Screen/x DEO2 - POPr - RTN - -RTN - -@title - 5468 6520 466f 6720 486f 726e $1 - -@body - 4927 6c6c 206d 616b 6520 6120 736f 756e - 6420 7468 6174 2773 2073 6f20 616c 6f6e - 6520 0a74 6861 7420 6e6f 206f 6e65 2063 - 616e 206d 6973 7320 6974 2c20 7468 6174 - 2077 686f 6576 6572 200a 6865 6172 7320 - 6974 2077 696c 6c20 7765 6570 2069 6e20 - 7468 6569 7220 736f 756c 732c 200a 616e - 6420 6865 6172 7468 7320 7769 6c6c 2073 - 6565 6d20 7761 726d 6572 2c20 0a61 6e64 - 2062 6569 6e67 2069 6e73 6964 6520 7769 - 6c6c 2073 6565 6d20 6265 7474 6572 200a - 746f 2061 6c6c 2077 686f 2068 6561 7220 - 6974 2069 6e20 7468 6520 6469 7374 616e - 7420 746f 776e 732e 20 $1 - -@footer - 2d20 4279 2052 6179 2042 7261 6462 7572 - 79 $1 - -@font-path-large - "projects/fonts/geneva24.uf3 $1 -@font-path-medium - "projects/fonts/venice14.uf2 $1 -@font-path-small - "projects/fonts/atari8.uf1 $1 - -@font-data $100 &glyphs \ No newline at end of file diff --git a/projects/examples/gui/label.tal b/projects/examples/gui/label.tal index 3c1c61f..76493c1 100644 --- a/projects/examples/gui/label.tal +++ b/projects/examples/gui/label.tal @@ -1,13 +1,37 @@ ( GUI Labels ) +%+ { ADD } %- { SUB } %* { MUL } %/ { DIV } +%< { LTH } %> { GTH } %= { EQU } %! { NEQ } +%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } +%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } + +%=~ { EQUk NIP } %!~ { NEQk NIP } +%<~ { LTHk NIP } %>~ { GTHk NIP } + +%2* { #10 SFT } %2/ { #01 SFT } %2** { #10 SFT2 } %2// { #01 SFT2 } +%4* { #20 SFT } %4/ { #02 SFT } %4** { #20 SFT2 } %4// { #02 SFT2 } +%8* { #30 SFT } %8/ { #03 SFT } %8** { #30 SFT2 } %8// { #03 SFT2 } +%10* { #40 SFT } %10/ { #04 SFT } %10** { #40 SFT2 } %10// { #04 SFT2 } +%20* { #50 SFT } %20/ { #05 SFT } %20** { #50 SFT2 } %20// { #05 SFT2 } + +%IS-VALID { DUP #1f > SWP #7f < AND } + %RTN { JMP2r } -%2// { #01 SFT2 } -%8** { #30 SFT2 } +%TOS { #00 SWP } +%AUTO-NONE { #00 .Screen/auto DEO } +%AUTO-Y { #02 .Screen/auto DEO } +%AUTO-YADDR { #06 .Screen/auto DEO } + +%HALT { #010f DEO } +%EMIT { #18 DEO } +%PRINT { ;print-str JSR2 #0a EMIT } +%DEBUG { ;print-hex/byte JSR2 #0a EMIT } +%DEBUG2 { ;print-hex JSR2 #0a EMIT } ( devices ) |00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] -|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] +|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ( variables ) @@ -21,118 +45,596 @@ |0100 ( theme ) - #0f0f .System/r DEO2 - #0fff .System/g DEO2 - #0ff0 .System/b DEO2 + #f0d7 .System/r DEO2 + #f0de .System/g DEO2 + #f0dc .System/b DEO2 ( find screen center ) .Screen/width DEI2 2// .center/x STZ2 .Screen/height DEI2 2// .center/y STZ2 - ( draw ver line ) - .center/x LDZ2 .Screen/x DEO2 #0000 .Screen/y DEO2 - &draw-ver - ( draw ) #02 .Screen/pixel DEO - ( incr ) .Screen/y DEI2 #0002 ADD2 .Screen/y DEO2 - .Screen/y DEI2 .Screen/height DEI2 LTH2 ,&draw-ver JCN + ( ver ) + AUTO-Y + #0000 .Screen/y DEO2 + .center/x LDZ2 .Screen/x DEO2 + .Screen/height DEI2 #0000 + &ver + #43 .Screen/pixel DEO + .Screen/y DEI2k INC2 ROT DEO2 + INC2 GTH2k ,&ver JCN + POP2 POP2 - .center/x LDZ2 .center/y LDZ2 #0010 SUB2 #0c ;text1 ;draw-label-left JSR2 - .center/x LDZ2 .center/y LDZ2 #0c ;text2 ;draw-label-middle JSR2 - .center/x LDZ2 .center/y LDZ2 #0010 ADD2 #0c ;text3 ;draw-label-right JSR2 - .center/x LDZ2 .center/y LDZ2 #0020 ADD2 #0c ;text4 ;draw-label-middle JSR2 - .center/x LDZ2 .center/y LDZ2 #0030 ADD2 #0c ;text5 ;draw-label-middle JSR2 + .center/x LDZ2 .Screen/x DEO2 + .center/y LDZ2 #0020 -- .Screen/y DEO2 + ;left-txt #09 ;draw-uf2 JSR2 + + .center/x LDZ2 .Screen/x DEO2 + .center/y LDZ2 .Screen/y DEO2 + ;center-txt #09 ;draw-uf2-center JSR2 + + .center/x LDZ2 .Screen/x DEO2 + .center/y LDZ2 #0020 ++ .Screen/y DEO2 + ;right-txt #09 ;draw-uf2-right JSR2 + +BRK + +@draw-uf2-center ( text* color -- ) + + STH + DUP2 ,get-width JSR 2// .Screen/x DEI2 SWP2 -- .Screen/x DEO2 + STHr ,draw-uf2 JSR RTN -@draw-label-left ( x y color addr -- ) - - ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 .Screen/x DEO2 - .label/addr LDZ2 - &loop - ( draw ) LDAk #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO - ( incr ) INC2 - ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 - LDAk ,&loop JCN +@draw-uf2-right ( text* color -- ) + + STH + DUP2 ,get-width JSR .Screen/x DEI2 SWP2 -- .Screen/x DEO2 + STHr ,draw-uf2 JSR + +RTN + +@get-width ( text* -- width* ) + + LIT2r 0000 + &while + LDAk TOS ;font ++ LDA TOS STH2 ADD2r + INC2 LDAk ,&while JCN POP2 + STH2r RTN -@draw-label-middle ( x y color addr -- ) - - ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 - ( align ) .label/addr LDZ2 ;get-text-length JSR2 8** 2// SUB2 .Screen/x DEO2 - .label/addr LDZ2 - &loop - ( draw ) LDAk #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO - ( incr ) INC2 - ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 - LDAk ,&loop JCN - POP2 +@draw-uf2 ( text* color -- ) + + STH + AUTO-YADDR + &while + LDAk STHkr ,draw-glyph JSR + INC2 LDAk ,&while JCN + POP2 POPr + AUTO-NONE RTN -@draw-label-right ( x y color addr -- ) - - ( load ) .label/addr STZ2 .label/color STZ .Screen/y DEO2 - ( align ) .label/addr LDZ2 ;get-text-length JSR2 8** SUB2 .Screen/x DEO2 - .label/addr LDZ2 - &loop - ( draw ) LDAk #00 SWP 8** ;font ADD2 .Screen/addr DEO2 .label/color LDZ .Screen/sprite DEO - ( incr ) INC2 - ( incr ) .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 - LDAk ,&loop JCN - POP2 +@draw-glyph ( char color -- ) + + .Screen/x DEI2 STH2 + .Screen/y DEI2 STH2 + ( glyph ) OVR ,get-glyph JSR .Screen/addr DEO2 + DUP .Screen/sprite DEOk DEO + STH2kr .Screen/y DEO2 + ( get width ) SWP TOS ;font ++ LDA + DUP #09 < ,&narrow JCN + .Screen/x DEI2k #0008 ++ ROT DEO2 + OVR .Screen/sprite DEOk DEO + STH2kr .Screen/y DEO2 + &narrow + POP2r + ( width ) TOS STH2r ++ .Screen/x DEO2 + POP RTN -@get-text-length ( label* -- length ) - - #0000 ( counter ) - &loop - ( incr ) INC2 OVR2 OVR2 ADD2 - LDA ,&loop JCN - NIP2 +@get-glyph ( char -- addr* ) + + #09 =~ ,&tab JCN ( tab ) + #0a =~ ,&linebreak JCN ( linebreak ) + #0d =~ ,&linebreak JCN ( linebreak ) + DUP IS-VALID ,&valid JCN + POP ;unknown-icn RTN + &linebreak + POP ;linebreak-icn RTN + &tab + POP ;tab-icn RTN + &valid + TOS 20** ;font + #0100 ++ ++ RTN -@font ( spectrum-zx font ) -[ - 0000 0000 0000 0000 0000 2400 7e3c 0000 0000 2400 3c42 0000 0000 6c7c 7c38 1000 - 0010 387c 7c38 1000 0038 387c 6c10 3800 0010 387c 7c10 3800 0000 0018 1800 0000 - 007e 4242 4242 7e00 0000 1824 2418 0000 0018 2442 4224 1800 001e 063a 4a48 3000 - 0038 446c 107c 1000 000c 0808 0838 3800 003e 2222 2266 6600 0000 0822 0022 0800 - 0000 1018 1c18 1000 0000 0818 3818 0800 0008 1c00 001c 0800 0028 2828 2800 2800 - 003e 4a4a 3a0a 0a00 000c 3046 620c 3000 0000 0000 0000 ffff 0010 3800 3810 0038 - 0008 1c2a 0808 0800 0008 0808 2a1c 0800 0000 0804 7e04 0800 0000 1020 7e20 1000 - 0000 4040 7e00 0000 0000 0024 6624 0000 0000 1038 7c00 0000 0000 007c 3810 0000 - 0000 0000 0000 0000 0008 0808 0800 0800 0014 1400 0000 0000 0024 7e24 247e 2400 - 0008 1e28 1c0a 3c08 0042 0408 1020 4200 0030 4832 4c44 3a00 0008 1000 0000 0000 - 0004 0808 0808 0400 0010 0808 0808 1000 0000 1408 3e08 1400 0000 0808 3e08 0800 - 0000 0000 0008 0810 0000 0000 3c00 0000 0000 0000 0000 0800 0000 0204 0810 2000 - 003c 464a 5262 3c00 0018 2808 0808 3e00 003c 4202 3c40 7e00 003c 421c 0242 3c00 - 0008 1828 487e 0800 007e 407c 0242 3c00 003c 407c 4242 3c00 007e 0204 0810 1000 - 003c 423c 4242 3c00 003c 4242 3e02 3c00 0000 0008 0000 0800 0000 0800 0008 0810 - 0000 0810 2010 0800 0000 003e 003e 0000 0000 1008 0408 1000 003c 4202 0c00 0800 - 003c 425a 5442 3c00 0018 2442 7e42 4200 007c 427c 4242 7c00 003c 4240 4042 3c00 - 0078 4442 4244 7800 007e 407c 4040 7e00 003e 4040 7c40 4000 003c 4240 4e42 3c00 - 0042 427e 4242 4200 003e 0808 0808 3e00 0002 0202 4242 3c00 0044 4870 4844 4200 - 0040 4040 4040 7e00 0042 665a 4242 4200 0042 6252 4a46 4200 003c 4242 4242 3c00 - 007c 4242 7c40 4000 003c 4242 524a 3c00 007c 4242 7c44 4200 003c 403c 0242 3c00 - 00fe 1010 1010 1000 0042 4242 4242 3c00 0042 4242 4224 1800 0042 4242 5a66 4200 - 0042 2418 1824 4200 0082 4428 1010 1000 007e 0408 1020 7e00 000c 0808 0808 0c00 - 0040 2010 0804 0200 0018 0808 0808 1800 0008 1422 0000 0000 0000 0000 0000 7e00 - 0008 0400 0000 0000 0000 1c02 1e22 1e00 0020 203c 2222 3c00 0000 1e20 2020 1e00 - 0002 021e 2222 1e00 0000 1c22 3c20 1e00 000c 101c 1010 1000 0000 1c22 221e 021c - 0020 202c 3222 2200 0008 0018 0808 0400 0008 0008 0808 4830 0020 2428 3028 2400 - 0010 1010 1010 0c00 0000 6854 5454 5400 0000 5864 4444 4400 0000 3844 4444 3800 - 0000 7844 4478 4040 0000 3c44 443c 0406 0000 2c30 2020 2000 0000 3840 3804 7800 - 0010 103c 1010 0c00 0000 4444 4444 3800 0000 4444 2828 1000 0000 4454 5454 2800 - 0000 4428 1028 4400 0000 4444 443c 0438 0000 7c08 1020 7c00 000c 0810 1008 0c00 - 0008 0808 0808 0800 0030 1008 0810 3000 0000 0032 4c00 0000 3c42 99a1 a199 423c -] +@print-hex ( value* -- ) -@text1 [ "Left 20 "Aligned 00 ] -@text2 [ "Middle 20 "Aligned 00 ] -@text3 [ "Right 20 "Aligned 00 ] -@text4 [ "even 00 ] -@text5 [ "odd 00 ] \ No newline at end of file + SWP ,&byte JSR + &byte ( byte -- ) + STHk #04 SFT ,&parse JSR #18 DEO + STHr #0f AND ,&parse JSR #18 DEO + JMP2r + &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD JMP2r + &above #57 ADD JMP2r + +JMP2r + +@left-txt "Left 20 "Aligned 20 "Label $1 +@center-txt "Center 20 "Aligned 20 "Label $1 +@right-txt "Right 20 "Aligned 20 "Label $1 + +@unknown-icn + aa55 aa55 aa55 aa55 + aa55 aa55 aa55 aa55 + aa55 aa55 aa55 aa55 + aa55 aa55 aa55 aa55 +@tab-icn + 0000 0000 0000 1008 + 1000 0000 0000 0000 + 0000 0000 0000 0000 + 0000 0000 0000 0000 +@linebreak-icn + 0000 0000 0000 1028 + 1000 0000 0000 0000 + 0000 0000 0000 0000 + 0000 0000 0000 0000 + +@font ( venice14 ) + 0000 0000 0000 0000 0009 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0505 0809 080c 0d05 0707 0a09 0609 0608 + 0808 0808 0908 0808 0808 0505 0708 0709 + 000d 0a08 0b0a 090a 0c08 070c 090e 0c09 + 0a09 0c08 090b 0a0d 0d0a 0906 0806 0809 + 0509 0807 0a07 0708 0906 0609 050f 0a08 + 0908 0707 060a 090e 0a09 0807 0507 0800 + 0d0d 080a 0c09 0b09 0909 0909 0907 0707 + 0707 0606 0606 0a08 0808 0808 0a0a 0a0a + 0000 0000 0000 000a 0000 0005 0000 1009 + 0000 0000 0000 0000 0000 0000 0000 0c08 + 0905 0000 0000 000a 0a00 080d 0d09 0e0c + 090c 0808 0505 0000 0907 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3030 3030 3030 3000 3030 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 2424 2400 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1212 7f24 24fe 4848 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1038 5450 7038 1c14 5438 1000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3748 494b 360d 1a32 6241 0000 0000 + 0000 c0c0 8000 0080 4040 4080 0000 0000 + 0000 1c22 261c 1835 6343 463c 0000 0000 + 0000 0000 0000 e090 1020 8060 0000 0000 + 0000 2020 2000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0008 1030 2060 6060 6020 3010 0800 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0020 1018 080c 0c0c 0c08 1810 2000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0012 0c3f 0c12 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0008 0808 7f08 0808 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 3030 1020 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 7f00 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 3030 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0206 040c 0818 1030 2060 4000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3c66 6666 6666 6666 663c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0818 3818 1818 1818 183c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3c46 8606 0c18 3060 c2fc 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7e8c 1830 7c06 4686 8c78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 040c 1c2c 4c8d fe0c 0c1e 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7c62 6078 0c06 0606 4c38 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1c22 606c 7666 6666 663c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7e86 060c 0c18 1830 3030 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3c66 6666 3c66 6666 663c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3c66 6666 666e 3606 4438 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0030 3000 0000 3030 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0030 3000 0000 3030 1020 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0c18 3060 3018 0c00 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 6030 180c 1830 6000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3c46 0606 0c18 1000 1010 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0001 0200 0001 0306 7f98 30e0 0000 0000 + 00c0 6060 e0e0 6060 e060 6038 0000 0000 + 0010 7eb3 b333 3e31 3131 31ff 0000 0000 + 0000 0000 0000 0080 8080 8000 0000 0000 + 0000 7cc2 c2c4 c0c0 c0c2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0010 7fb1 b030 3030 3030 30ff 0000 0000 + 0000 0080 c0c0 c0c0 c0c0 8000 0000 0000 + 0010 7fb0 b030 3e30 3030 30ff 0000 0000 + 0000 8080 0000 0000 0040 8000 0000 0000 + 0010 7fb0 b030 3e30 3030 30e0 0000 0000 + 0000 8080 0000 0000 0000 0000 0000 0000 + 0000 3f61 c2c0 cfc3 c3c7 cb73 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0000 71b1 b131 7fb1 3131 31e1 0000 0000 + 00e0 8080 8080 8080 8090 a0c0 0000 0000 + 0000 7898 9818 1818 1819 1a1c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7898 9818 1818 1818 1818 1810 20c0 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 70b1 b336 3c38 3c36 33e1 0000 0000 + 0000 c080 0000 0000 0010 20c0 0000 0000 + 0000 3860 6060 6060 6060 61fe 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0000 70b8 bd2e 2420 2020 20c0 0000 0000 + 0000 70e0 6060 6060 6064 6870 0000 0000 + 0000 70b8 bc2e 2723 2120 20c0 0000 0000 + 0000 6040 4040 40c0 c0c0 4040 0000 0000 + 0000 3c46 c3c3 c3c3 c3c2 4438 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7fb1 b131 313f 3030 30e0 0000 0000 + 0000 0080 8080 8000 0000 0000 0000 0000 + 0000 3c46 c3c3 c3c3 c3d3 4a3c 0402 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0010 7fb1 b131 313f 3633 31e0 0000 0000 + 0000 0080 8080 8000 0000 90e0 0000 0000 + 0000 7cc2 e470 381c 4e86 c67c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 7f8c 8c0c 0c0c 0c0c 0c38 0000 0000 + 0000 8000 0000 0000 0000 0000 0000 0000 + 0000 61e1 6161 6161 6365 6931 0000 0000 + 0000 8080 8080 8080 80a0 c080 0000 0000 + 0000 61e3 6161 6163 666c 7870 0000 0000 + 0000 0080 8080 8000 0000 0000 0000 0000 + 0000 60e0 6060 6266 6e76 6747 0000 0000 + 0000 2070 3030 3030 60c0 8000 0000 0000 + 0000 60b0 980d 0707 0d18 3060 0000 0000 + 0000 3060 c080 0000 80c8 6830 0000 0000 + 0000 61e1 6161 6161 6163 6539 0101 021c + 0000 8080 8080 8080 8080 8080 8000 0000 + 0000 7f83 860c 1830 60c0 c1fe 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0078 6060 6060 6060 6060 6060 7800 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 4060 2030 1018 080c 0406 0200 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0078 1818 1818 1818 1818 1818 7800 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0010 2844 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 0080 0000 0000 + 0040 2010 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0070 c0c0 c0dc e6c6 c6c6 ccf8 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007c c4c0 c0c4 c870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0003 0606 067e c6c6 c6ce d667 0000 0000 + 0080 0000 0000 0000 0040 8000 0000 0000 + 0000 0000 007c c4c8 d0e2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 001c 3030 3078 3030 3030 3030 3030 20c0 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007e c6c6 c6ce d666 0604 0830 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0070 c0c0 c0ce d6e6 c6c6 c7c6 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0000 2040 0060 e060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1020 0030 70b0 3030 3030 3020 4080 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0070 c0c0 c0d8 e4c4 f8d8 cdc6 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0070 c0c0 c0c0 c0c0 c0c8 d0e0 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0067 eb73 6363 6363 0000 0000 + 0000 0000 0038 5898 181a 1c18 0000 0000 + 0000 0000 0067 eb73 6363 6363 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0000 0000 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 006e f363 6363 667c 6060 60c0 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007e c6c6 c6ce d666 0606 0706 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 006c f060 6060 7060 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0078 c4c0 780c 8c78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0020 60f8 6060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0063 e363 6367 6b33 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0000 0000 0042 e763 6264 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0042 e763 676b 7363 0000 0000 + 0000 0000 0010 3818 1020 4080 0000 0000 + 0000 0000 0061 b21c 0c16 2341 0000 0000 + 0000 0000 0000 0000 0000 4080 0000 0000 + 0000 0000 0063 e363 6367 6b33 0302 0438 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007e 860c 1830 61fe 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1830 3030 3060 3030 3030 3018 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 2020 2020 2020 2020 2020 2020 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3018 1818 180c 1818 1818 1830 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 4c00 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0001 0200 0001 0306 7f98 30e0 0000 0000 + 00c0 6060 e0e0 6060 e060 6038 0000 0000 + 0001 0200 0001 0306 7f98 30e0 0000 0000 + c0c0 6060 e0e0 6060 e060 6038 0000 0000 + 0000 7cc2 c2c4 c0c0 c0c2 c478 1010 2000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0010 7fb0 b030 3e30 3030 30ff 0000 0000 + 0000 8080 0000 0000 0040 8000 0000 0000 + 1300 70b8 bc2e 2723 2120 20c0 0000 0000 + 0000 6040 4040 40c0 c0c0 4040 0000 0000 + 0000 3c46 c3c3 c3c3 c3c2 4438 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 61e1 6161 6161 6365 6931 0000 0000 + 0000 8080 8080 8080 80a0 c080 0000 0000 + 0008 1000 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0010 0800 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 1028 4400 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0000 2400 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0032 4c00 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 1824 2418 007e c6c6 c6ce d766 0000 0000 + 0000 0000 0000 0000 0080 0000 0000 0000 + 0000 0000 007c c4c0 c0c4 c870 1010 2000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0008 1000 007c c4c8 d0e2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0020 1000 007c c4c8 d0e2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 1028 4400 007c c4c8 d0e2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 4800 007c c4c8 d0e2 c478 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0020 4000 0060 e060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0040 2000 0060 e060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 2050 8800 0060 e060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 9000 0060 e060 6064 6870 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0019 2600 0067 eb73 6363 6363 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0008 1000 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0020 1000 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 1028 4400 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 2400 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0032 4c00 007c c6c6 c6c6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0008 1000 0063 e363 6367 6b33 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0010 0800 0063 e363 6367 6b33 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0814 2200 0063 e363 6367 6b33 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0000 2400 0063 e363 6367 6b33 0000 0000 + 0000 0000 0000 0000 0040 8000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 1e33 3333 3631 3131 33e6 0000 0000 + 0000 0000 0000 0000 8080 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0010 2040 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0001 0200 0001 0306 7f98 30e1 0000 0000 + 00c0 7f61 e0e0 7c60 e060 61fe 0000 0000 + 0000 3d42 c7cb cbd3 d3e2 44b8 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 007d c6c6 c6cf d663 0000 0000 + 0000 0000 00e0 2040 8010 20c0 0000 0000 + 0000 0000 007c c6ce d6e6 cc78 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0808 0008 1830 6060 623c 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 6060 0060 6060 6060 6060 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0009 1224 4824 1209 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0024 1209 0409 1224 0000 0000 + 0000 0000 0000 0000 8000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0001 0200 0001 0306 7f98 30e0 0000 0000 + 00c0 6060 e0e0 6060 e060 6038 0000 0000 + 0001 0200 0001 0306 7f98 30e0 0000 0000 + 00c0 6060 e0e0 6060 e060 6038 0000 0000 + 4c00 3c46 c3c3 c3c3 c3c2 4438 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3f47 c3c3 c3c3 c3c3 473b 0000 0000 + 0000 f808 0000 e000 0004 08f0 0000 0000 + 0000 0000 007d c6c6 c6c7 ce79 0000 0000 + 0000 0000 00e0 2040 8010 20c0 0000 0000 + 0000 0000 0000 7f00 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 7f00 0000 0000 0000 0000 + 0000 0000 0000 e000 0000 0000 0000 0000 + 0000 2448 6c6c 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3636 1224 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 2040 6060 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 3030 1020 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 2400 0063 e363 6367 6b33 0302 0438 + 0000 0000 0000 0000 0000 0000 0000 0000 + 0000 0000 0000 0070 98ce 6438 0000 0000 + 0000 0000 0000 0000 0000 0000 0000 0000 diff --git a/projects/software/supervisor.tal b/projects/software/supervisor.tal index 04eba6b..1d3f20a 100644 --- a/projects/software/supervisor.tal +++ b/projects/software/supervisor.tal @@ -148,12 +148,12 @@ RTN ( working stack ) #0010 .Screen/y DEO2 DUP2 #0018 ** #0010 ++ .Screen/x DEO2 - DUP #fe00 LDA ( ptr ) EQU #41 + STH + DUP #fe00 LDA ( ptr ) EQU #4b + STH DUP2 #fe01 ++ LDA STHr ;draw-byte JSR2 ( return stack ) #0028 .Screen/y DEO2 DUP2 #0018 ** #0010 ++ .Screen/x DEO2 - DUP #ff00 LDA ( ptr ) EQU #41 + STH + DUP #ff00 LDA ( ptr ) EQU #4b + STH DUP2 #ff01 ++ LDA STHr ;draw-byte JSR2 INC2 GTH2k ,&wst JCN POP2 POP2