From 64275dda4ed15140fba109b21654c12c7214173d Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Tue, 1 Dec 2015 02:40:42 +1100 Subject: [PATCH] 20030702 release --- avr.txt | 9 + bin/{checksum => CHECKSUM} | Bin 128 -> 128 bytes bin/appinst.bat | 2 +- bin/appinst.bat% | 2 +- bin/banked/grlogin | Bin 20510 -> 20627 bytes bin/good/CHECKSUM | Bin 0 -> 128 bytes bin/good/kernel.bin | Bin 0 -> 83727 bytes bin/good/uzboot.bin | Bin 0 -> 109260 bytes bin/good/uzboot.gz | Bin 0 -> 107458 bytes bin/good/uzidisk.dat | Bin 0 -> 4194304 bytes bin/kernel.bin | Bin 81698 -> 83727 bytes bin/mkboot.ucp | 6 + bin/mkboot.ucp% | 139 + bin/mkboot.ucp.org | 130 + bin/n.ucp | 6 + bin/n.ucp% | 527 + bin/n.ucp.org | 520 + bin/passwd.txt | 1 + bin/passwd.txt% | 3 +- bin/passwd.txt.org | 6 + bin/passwd.txt.org% | 7 + bin/profile.tsys.sh | 4 + bin/tstsys.sh% | 4 + bin/tsys.sh% | 4 + bin/uzboot.bin | Bin 108453 -> 109260 bytes bin/uzboot.gz | Bin 106651 -> 107458 bytes bin/uzidisk.dat | Bin 4194304 -> 4194304 bytes devlog.txt | 9 + lib/c0b.lst | 336 + lib/c0b.rst | 336 + lib/c0l.lst | 335 + relnotes/20030702.txt | 60 + src/avr/tsv3.lst | 5765 +++++++++++ src/avrsample.old/aaa | Bin 0 -> 72407 bytes src/avrsample.old/avr_make | 68 + src/avrsample.old/avr_make% | 68 + src/avrsample.old/hello.c | 60 + src/avrsample.old/hello.elf | Bin 0 -> 5979 bytes src/avrsample.old/hello.h | 7 + src/avrsample.old/hello.hex | 14 + src/avrsample.old/hello.lst | 325 + src/avrsample.old/hello.map | 311 + src/avrsample.old/hello.o | Bin 0 -> 3972 bytes src/avrsample.old/hello.s | 228 + src/avrsample.old/io.com | Bin 0 -> 33194 bytes src/avrsample.old/ispd.exe | Bin 0 -> 69514 bytes src/avrsample.old/libc/calloc.c | 41 + src/avrsample.old/libc/calloc.s | 82 + src/avrsample.old/libc/fdevopen.c | 102 + src/avrsample.old/libc/fdevopen.s | 139 + src/avrsample.old/libc/gcrt1.S | 177 + src/avrsample.old/libc/gcrt1.i | 157 + src/avrsample.old/libc/macros.inc | 216 + src/avrsample.old/libc/malloc.c | 420 + src/avrsample.old/libc/malloc.s | 600 ++ src/avrsample.old/libc/memset.S | 78 + src/avrsample.old/libc/memset.i | 86 + src/avrsample.old/libc/stdio_private.h | 67 + src/avrsample.old/makefile | 38 + src/avrsample.old/makefile% | 39 + src/avrsample.old/n.bat | 2 + src/avrsample.old/nick | 123 + src/avrsample.old/r.bat | 1 + src/avrsample.old/x.bat | 1 + src/avrsample/a.sh | 7 + src/avrsample/a.sh% | 7 + src/avrsample/a.tar | Bin 0 -> 20480 bytes src/avrsample/aaa | Bin 0 -> 72407 bytes src/avrsample/avr_make | 68 + src/avrsample/avr_make% | 68 + src/avrsample/hello.c | 118 + src/avrsample/hello.c! | 105 + src/avrsample/hello.c# | 60 + src/avrsample/hello.c% | 116 + src/avrsample/hello.eep | 1 + src/avrsample/hello.elf | Bin 0 -> 19351 bytes src/avrsample/hello.h | 6 + src/avrsample/hello.h# | 7 + src/avrsample/hello.hex | 183 + src/avrsample/hello.lst | 597 ++ src/avrsample/hello.map | 432 + src/avrsample/hello.o | Bin 0 -> 5156 bytes src/avrsample/hello.s | 416 + src/avrsample/hello.tar.gz | Bin 0 -> 1810 bytes src/avrsample/io.com | Bin 0 -> 33194 bytes src/avrsample/ispd.exe | Bin 0 -> 69514 bytes src/avrsample/libc/calloc.c | 41 + src/avrsample/libc/calloc.s | 82 + src/avrsample/libc/fdevopen.c | 102 + src/avrsample/libc/fdevopen.s | 139 + src/avrsample/libc/gcrt1.S | 177 + src/avrsample/libc/gcrt1.i | 157 + src/avrsample/libc/macros.inc | 216 + src/avrsample/libc/malloc.c | 420 + src/avrsample/libc/malloc.s | 600 ++ src/avrsample/libc/memset.S | 78 + src/avrsample/libc/memset.i | 86 + src/avrsample/libc/stdio_private.h | 67 + src/avrsample/makefile | 39 + src/avrsample/makefile% | 39 + src/avrsample/n.bat | 2 + src/avrsample/n.sh | 2 + src/avrsample/nick | 123 + src/avrsample/out.s | 187 + src/avrsample/r.bat | 1 + src/avrsample/r.sh | 1 + src/avrsample/x.bat | 1 + src/bin/avr_make | 63 + src/bin/avr_make2 | 64 + src/bin/revava.exe | Bin 0 -> 122955 bytes src/gui/grlogin.i86 | 710 +- src/gui/grlogin.map | 76 +- src/gui/login.c | 2 +- src/gui/login.c.org | 93 + src/gui/login.lst | 683 +- src/gui/login.rel | 101 +- src/gui/login.rst | 683 +- src/gui/login.s01 | 11 +- src/gui/wnd.rst | 9960 +++++++++---------- src/kernel/build.ban | 6 +- src/kernel/{build.ban% => build.ban.save} | 22 +- src/kernel/cmx/escc.asm | 5 +- src/kernel/cmx/escc.asm% | 980 ++ src/kernel/cmx/escc.asm.org | 980 ++ src/kernel/kernel.lnk | 2 + src/kernel/kernel.lnk% | 3 + src/kernel/n.bat | 2 +- src/kernel/n.bat.org | 6 + src/kernel/uzi/devno.h | 34 + src/kernel/uzi/devtty.c.org | 502 - src/kernel/uzi/main.c | 12 +- src/kernel/uzi/main.c.org | 832 -- src/kernel/uzi/testsystem.c | 275 +- src/kernel/uzi/testsystem.h | 11 +- src/kernel/uzi/touchscreen.c | 122 +- src/kernel/uzi/touchscreen.h | 14 + src/mkutil/revava-0.3/Avr.C | 427 + src/mkutil/revava-0.3/Avr.h | 91 + src/mkutil/revava-0.3/Avr.o | Bin 0 -> 10005 bytes src/mkutil/revava-0.3/CHANGES | 28 + src/mkutil/revava-0.3/COPYING | 340 + src/mkutil/revava-0.3/Error.h | 99 + src/mkutil/revava-0.3/Flash.C | 268 + src/mkutil/revava-0.3/Flash.h | 55 + src/mkutil/revava-0.3/Flash.o | Bin 0 -> 6829 bytes src/mkutil/revava-0.3/IntelHex.C | 105 + src/mkutil/revava-0.3/IntelHex.h | 42 + src/mkutil/revava-0.3/IntelHex.o | Bin 0 -> 4758 bytes src/mkutil/revava-0.3/Main.C | 149 + src/mkutil/revava-0.3/Main.o | Bin 0 -> 9054 bytes src/mkutil/revava-0.3/Makefile | 67 + src/mkutil/revava-0.3/Object.C | 66 + src/mkutil/revava-0.3/Object.h | 31 + src/mkutil/revava-0.3/Object.o | Bin 0 -> 7319 bytes src/mkutil/revava-0.3/README | 211 + src/mkutil/revava-0.3/Source.C | 735 ++ src/mkutil/revava-0.3/Source.C% | 735 ++ src/mkutil/revava-0.3/Source.h | 54 + src/mkutil/revava-0.3/Source.o | Bin 0 -> 26096 bytes src/mkutil/revava-0.3/TODO | 24 + src/mkutil/revava-0.3/make_labels.pl | 228 + src/mkutil/revava-0.3/make_test_source.C | 478 + src/mkutil/revava-0.3/make_test_source.exe | Bin 0 -> 98755 bytes src/mkutil/revava-0.3/make_test_source.o | Bin 0 -> 7119 bytes src/mkutil/revava-0.3/n.bat | 2 + src/mkutil/revava-0.3/n.bat% | 2 + src/mkutil/revava-0.3/revava.exe | Bin 0 -> 122955 bytes src/nicktemp/avr_make | 68 + src/nicktemp/hello.c | 49 + src/nicktemp/hello.eep | 1 + src/nicktemp/hello.elf | Bin 0 -> 18368 bytes src/nicktemp/hello.h | 6 + src/nicktemp/hello.hex | 170 + src/nicktemp/hello.lst | 328 + src/nicktemp/hello.map | 426 + src/nicktemp/hello.o | Bin 0 -> 3972 bytes src/nicktemp/hello.s | 238 + src/nicktemp/hello.tar.gz | Bin 0 -> 1810 bytes src/nicktemp/makefile | 39 + src/testsystem/aap.diff | 2 + src/testsystem/aap.interleave | Bin 0 -> 126 bytes src/testsystem/cdout | 1 + src/testsystem/cdout2 | Bin 0 -> 62 bytes src/testsystem/doit | 12 + src/testsystem/n.sh | 2 +- src/testsystem/n.sh.org | 2 + src/testsystem/prout | 1 + src/testsystem/prout2 | 1 + src/testsystem/rtc | Bin 0 -> 770 bytes src/testsystem/rtc1 | Bin 0 -> 772 bytes src/testsystem/rtcon | 1 + src/testsystem/rtcrec | 1 + src/testsystem/scan | Bin 0 -> 359 bytes src/testsystem/testter.c.new1 | 325 + src/testsystem/{testter.c => testter.c.org} | 0 src/testsystem/testter.exe | Bin 0 -> 40242 bytes src/testsystem/tsout | 1 + src/testsystem/tter.c | 498 + src/testsystem/tter.c.save | 485 + src/testsystem/tter.exe | Bin 0 -> 48558 bytes uzi.bat | 2 +- uzipatch.bat | 2 +- 202 files changed, 32051 insertions(+), 7513 deletions(-) create mode 100644 avr.txt rename bin/{checksum => CHECKSUM} (50%) create mode 100644 bin/good/CHECKSUM create mode 100644 bin/good/kernel.bin create mode 100644 bin/good/uzboot.bin create mode 100644 bin/good/uzboot.gz create mode 100644 bin/good/uzidisk.dat create mode 100644 bin/mkboot.ucp% create mode 100644 bin/mkboot.ucp.org create mode 100644 bin/n.ucp% create mode 100644 bin/n.ucp.org create mode 100644 bin/passwd.txt.org create mode 100644 bin/passwd.txt.org% create mode 100644 bin/profile.tsys.sh create mode 100644 bin/tstsys.sh% create mode 100644 bin/tsys.sh% create mode 100644 devlog.txt create mode 100644 lib/c0b.lst create mode 100644 lib/c0b.rst create mode 100644 lib/c0l.lst create mode 100644 relnotes/20030702.txt create mode 100644 src/avr/tsv3.lst create mode 100644 src/avrsample.old/aaa create mode 100644 src/avrsample.old/avr_make create mode 100644 src/avrsample.old/avr_make% create mode 100644 src/avrsample.old/hello.c create mode 100644 src/avrsample.old/hello.elf create mode 100644 src/avrsample.old/hello.h create mode 100644 src/avrsample.old/hello.hex create mode 100644 src/avrsample.old/hello.lst create mode 100644 src/avrsample.old/hello.map create mode 100644 src/avrsample.old/hello.o create mode 100644 src/avrsample.old/hello.s create mode 100644 src/avrsample.old/io.com create mode 100644 src/avrsample.old/ispd.exe create mode 100644 src/avrsample.old/libc/calloc.c create mode 100644 src/avrsample.old/libc/calloc.s create mode 100644 src/avrsample.old/libc/fdevopen.c create mode 100644 src/avrsample.old/libc/fdevopen.s create mode 100644 src/avrsample.old/libc/gcrt1.S create mode 100644 src/avrsample.old/libc/gcrt1.i create mode 100644 src/avrsample.old/libc/macros.inc create mode 100644 src/avrsample.old/libc/malloc.c create mode 100644 src/avrsample.old/libc/malloc.s create mode 100644 src/avrsample.old/libc/memset.S create mode 100644 src/avrsample.old/libc/memset.i create mode 100644 src/avrsample.old/libc/stdio_private.h create mode 100644 src/avrsample.old/makefile create mode 100644 src/avrsample.old/makefile% create mode 100644 src/avrsample.old/n.bat create mode 100644 src/avrsample.old/nick create mode 100644 src/avrsample.old/r.bat create mode 100644 src/avrsample.old/x.bat create mode 100644 src/avrsample/a.sh create mode 100644 src/avrsample/a.sh% create mode 100644 src/avrsample/a.tar create mode 100644 src/avrsample/aaa create mode 100644 src/avrsample/avr_make create mode 100644 src/avrsample/avr_make% create mode 100644 src/avrsample/hello.c create mode 100644 src/avrsample/hello.c! create mode 100644 src/avrsample/hello.c# create mode 100644 src/avrsample/hello.c% create mode 100644 src/avrsample/hello.eep create mode 100644 src/avrsample/hello.elf create mode 100644 src/avrsample/hello.h create mode 100644 src/avrsample/hello.h# create mode 100644 src/avrsample/hello.hex create mode 100644 src/avrsample/hello.lst create mode 100644 src/avrsample/hello.map create mode 100644 src/avrsample/hello.o create mode 100644 src/avrsample/hello.s create mode 100644 src/avrsample/hello.tar.gz create mode 100644 src/avrsample/io.com create mode 100644 src/avrsample/ispd.exe create mode 100644 src/avrsample/libc/calloc.c create mode 100644 src/avrsample/libc/calloc.s create mode 100644 src/avrsample/libc/fdevopen.c create mode 100644 src/avrsample/libc/fdevopen.s create mode 100644 src/avrsample/libc/gcrt1.S create mode 100644 src/avrsample/libc/gcrt1.i create mode 100644 src/avrsample/libc/macros.inc create mode 100644 src/avrsample/libc/malloc.c create mode 100644 src/avrsample/libc/malloc.s create mode 100644 src/avrsample/libc/memset.S create mode 100644 src/avrsample/libc/memset.i create mode 100644 src/avrsample/libc/stdio_private.h create mode 100644 src/avrsample/makefile create mode 100644 src/avrsample/makefile% create mode 100644 src/avrsample/n.bat create mode 100644 src/avrsample/n.sh create mode 100644 src/avrsample/nick create mode 100644 src/avrsample/out.s create mode 100644 src/avrsample/r.bat create mode 100644 src/avrsample/r.sh create mode 100644 src/avrsample/x.bat create mode 100644 src/bin/avr_make create mode 100644 src/bin/avr_make2 create mode 100644 src/bin/revava.exe create mode 100644 src/gui/login.c.org rename src/kernel/{build.ban% => build.ban.save} (89%) create mode 100644 src/kernel/cmx/escc.asm% create mode 100644 src/kernel/cmx/escc.asm.org create mode 100644 src/kernel/n.bat.org create mode 100644 src/kernel/uzi/devno.h delete mode 100644 src/kernel/uzi/devtty.c.org delete mode 100644 src/kernel/uzi/main.c.org create mode 100644 src/mkutil/revava-0.3/Avr.C create mode 100644 src/mkutil/revava-0.3/Avr.h create mode 100644 src/mkutil/revava-0.3/Avr.o create mode 100644 src/mkutil/revava-0.3/CHANGES create mode 100644 src/mkutil/revava-0.3/COPYING create mode 100644 src/mkutil/revava-0.3/Error.h create mode 100644 src/mkutil/revava-0.3/Flash.C create mode 100644 src/mkutil/revava-0.3/Flash.h create mode 100644 src/mkutil/revava-0.3/Flash.o create mode 100644 src/mkutil/revava-0.3/IntelHex.C create mode 100644 src/mkutil/revava-0.3/IntelHex.h create mode 100644 src/mkutil/revava-0.3/IntelHex.o create mode 100644 src/mkutil/revava-0.3/Main.C create mode 100644 src/mkutil/revava-0.3/Main.o create mode 100644 src/mkutil/revava-0.3/Makefile create mode 100644 src/mkutil/revava-0.3/Object.C create mode 100644 src/mkutil/revava-0.3/Object.h create mode 100644 src/mkutil/revava-0.3/Object.o create mode 100644 src/mkutil/revava-0.3/README create mode 100644 src/mkutil/revava-0.3/Source.C create mode 100644 src/mkutil/revava-0.3/Source.C% create mode 100644 src/mkutil/revava-0.3/Source.h create mode 100644 src/mkutil/revava-0.3/Source.o create mode 100644 src/mkutil/revava-0.3/TODO create mode 100644 src/mkutil/revava-0.3/make_labels.pl create mode 100644 src/mkutil/revava-0.3/make_test_source.C create mode 100644 src/mkutil/revava-0.3/make_test_source.exe create mode 100644 src/mkutil/revava-0.3/make_test_source.o create mode 100644 src/mkutil/revava-0.3/n.bat create mode 100644 src/mkutil/revava-0.3/n.bat% create mode 100644 src/mkutil/revava-0.3/revava.exe create mode 100644 src/nicktemp/avr_make create mode 100644 src/nicktemp/hello.c create mode 100644 src/nicktemp/hello.eep create mode 100644 src/nicktemp/hello.elf create mode 100644 src/nicktemp/hello.h create mode 100644 src/nicktemp/hello.hex create mode 100644 src/nicktemp/hello.lst create mode 100644 src/nicktemp/hello.map create mode 100644 src/nicktemp/hello.o create mode 100644 src/nicktemp/hello.s create mode 100644 src/nicktemp/hello.tar.gz create mode 100644 src/nicktemp/makefile create mode 100644 src/testsystem/aap.diff create mode 100644 src/testsystem/aap.interleave create mode 100644 src/testsystem/cdout create mode 100644 src/testsystem/cdout2 create mode 100644 src/testsystem/doit create mode 100644 src/testsystem/n.sh.org create mode 100644 src/testsystem/prout create mode 100644 src/testsystem/prout2 create mode 100644 src/testsystem/rtc create mode 100644 src/testsystem/rtc1 create mode 100644 src/testsystem/rtcon create mode 100644 src/testsystem/rtcrec create mode 100644 src/testsystem/scan create mode 100644 src/testsystem/testter.c.new1 rename src/testsystem/{testter.c => testter.c.org} (100%) create mode 100644 src/testsystem/testter.exe create mode 100644 src/testsystem/tsout create mode 100644 src/testsystem/tter.c create mode 100644 src/testsystem/tter.c.save create mode 100644 src/testsystem/tter.exe diff --git a/avr.txt b/avr.txt new file mode 100644 index 00000000..6d65aa45 --- /dev/null +++ b/avr.txt @@ -0,0 +1,9 @@ + +AVR files used in current config: +================================= +- touchscreen: 0026, HAS LP295x --> Nick's TSV3 +- customer display: 9850, NO LP295x --> CS64V0 +- printer: 9927, NO LP295x --> MT102V0 +- compactflash: 0233, NO LP295x --> CFLASHV1 +- motherboard: 0151 --> WPOV2 + diff --git a/bin/checksum b/bin/CHECKSUM similarity index 50% rename from bin/checksum rename to bin/CHECKSUM index 5dfbe493a3c2fd857a06863899b2967e40365055..b53d28a8576130895d8bf5db7a7bb8e91edf821a 100644 GIT binary patch literal 128 zcmZ>?bTl_GHZV6ZGBh(aG&ON{wDNWh@^kgkbMo|KU|_H`v@`;WIr;mCKt&iB+*}O} Hq^JY{sHGC+ literal 128 zcmXqaa&|E=HZV1^Ff=owTnIr;mCKt&iB+*}O} Hq^JY{xib?B diff --git a/bin/appinst.bat b/bin/appinst.bat index 0836b57e..45f12114 100644 --- a/bin/appinst.bat +++ b/bin/appinst.bat @@ -1,2 +1,2 @@ ucp < appinst.ucp -copy uzidisk.dat f:\ +copy uzidisk.dat i:\ diff --git a/bin/appinst.bat% b/bin/appinst.bat% index 09788264..0836b57e 100644 --- a/bin/appinst.bat% +++ b/bin/appinst.bat% @@ -1,2 +1,2 @@ ucp < appinst.ucp -copy uzidisk.dat e:\ +copy uzidisk.dat f:\ diff --git a/bin/banked/grlogin b/bin/banked/grlogin index 6e6f53dbd3c1c8745f762b61afd452539fe0ef8e..c55a6b21ea1afd496712ff70750222cfa0ddcce2 100644 GIT binary patch delta 3277 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 WTP*jEl^85b*$J}EVj}0QMgIjMO0IPP delta 3426 zcma)8e{|E;75~0((w2tOHX<%nTJrryB~75eNol3E(2z9!k#f`%4PZ_rCea>(%jyQxa@6S_@8nQFo2G{6? zu}f#q4CBn;G}uPNm7SqI2SzWALj(klgOW4D;7W$(WN*oTDm}iTsfko2tc`wM^Fg6*PYh&dEE{BzhNkC!u+&{p2|{-L|5D z4AQ4p{DtIE&&rL6b8zL-rCAIiGJpj-d{3X??oYEJR8Ugq5Plg1RGv&%n0dQ2rAKvlKknpy4_=C%|?!d35pO?-VJH z(x=A{aKdK{u*s|-2@&9ewv6?${$oO(ITaX&J!bX9&eyC;yZLoyxAuVZfb zI=>F%R$TBgMl!uHtMJS&t-33GW><96>)mL{XLeaTW63Cf)h4k$C9tN`-4T>{!%nvr z-i|tY3YU>H^o7C#oPSzqN;utYx-3ymQLy8(#Q245=n2GT!Oug#O1}_^$h^yOIy+;A z7w^GwKO4cTSYuqKP!&8eXqZ(Z?_qfY4dr#b?gKpVfP6p}kQ2-CuJ%J~j49Dg$Ju)j zne-xo+ZQpt)Wy(Zu4-DP!z9qV>gEo47vn1)@467W4YQJRI5mFwU8Y*6LWpb^sjLu) zsWf0ZP=hT2+&s8cs8^waV&j!rfg=$z(DUtXKJ((3Vpg3M6^0K7RwrtiS8DeV4W}LG zK^;44=)zi&ALyaEwc^G+4?8o4^kNJ(oBgpxdd=Lz!i8oY{r_(H-%F0wE@PLxSDV{0 zcS-1dZ|Oi!%wSx?2E8$r4H{z-8=WdJPWJtx374ZazYv`-;t`MwvoN7oHq z^(iC|pWn}MN!&}m`+Ps~HTwL%pZT8l{nn@876&9m3QYUttlXN%5KfW*N z7RIN4mUJ9R{N5#bIi!>W_Z4uB%ico&fcFYCkITGAh{{`5zL_l?6iw?@P&5-V`!Ih* z1T}}{2;A4ebsf)F)-wN!gY}Z~UQYBInVs_`<#+b2g| z$Zt^#@-QV^_>($mM{yuEKt1Zy>*Vc`#+gkUuHnpB= z-`47ARn(cmtA^%;&|`kE93o)(Jr~-&SJ|>bV~{N@CkYO8a`k4Bt&XA8aaqc87^g?r z6fHaqz9USmrKBd^)FE>dyr-bKKUC_cAC(;EC!91;s^kCAPJdmxSL~DDrSlZn`h{D# zlFj#^%L{Adkj)(`zN4S7-$TE-V+DV(j%KdOPM3=T6scL*5<+Azb*(XyKH9Nne<~5U z3i(pGu2AiryJ=ck9pAZ@y2~u&5&FwA3(t4baG5~<9sH&&jr`!m6BU`6=OqO3jGVMt zd!jsHt^Ac`;R-!JB+>gTR%Z@L-33Du6vcEO3+Y^hoR^RmiVZ0EYDE!0TN(VaB7^8) z9loy;@Uof#mKcxaE4FB;&q{Uc{5PJLlCfkpqMpzq>xlx8g!2+Twob$Z8D5v2d0A4< zA$_%Anf@FsGm`MRBz_@@m^c?#8u>HpX<211k1J25jtxDP<-E9_uC*>!{jJl+MmkoR zb0cb!ONPM^-E>*nZP>*!Z=uzoyDVM66?i70VXDc1)lM!fOrJGl37&FJf^F(Zbe+Cl z%c;>hTkGkw){+Hs6=FKTdKz23;bP(yRpXCU;d^^fEKN9&6^wmQJWLxUNN%qGy1GhVb5wuP27c881goVAPo^ekuiOk;3 zENl^?kMHha%&fCsL?5-h!U}f0#ESGEw&mDJ-e9k=k4PC9%6Lj?tqN6F5oZ@ujt`lU zon;PXDfb*?L`r7qCSD+(WUby9;-b&k2L($n>(#M8k29w+rcJ;Oheac73J4{=bbpmo zZ>}!*Q@8j=w^A~pUu`TU30!nju!{*0FM#7d0A;}mnWQ@w_ zXtm>~BrEuUvy)`KQ4=q(SSE91^2)95-lX5uuMH1V^#QWTnDXmyY-2Y#^2=WyG diff --git a/bin/good/CHECKSUM b/bin/good/CHECKSUM new file mode 100644 index 0000000000000000000000000000000000000000..b53d28a8576130895d8bf5db7a7bb8e91edf821a GIT binary patch literal 128 zcmZ>?bTl_GHZV6ZGBh(aG&ON{wDNWh@^kgkbMo|KU|_H`v@`;WIr;mCKt&iB+*}O} Hq^JY{sHGC+ literal 0 HcmV?d00001 diff --git a/bin/good/kernel.bin b/bin/good/kernel.bin new file mode 100644 index 0000000000000000000000000000000000000000..fdb3dc96dad79d764ee60ac3470a604bdfca9a08 GIT binary patch literal 83727 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œLv{PX%n2@+cjFdZ8%p3Z<7Ck&T>QE2s2@}D< z!JMnz^ouI_-N;8Q9E3`B<%|d=8LzvuCJW7?d5`Xa!FAC_^LZS|vH1>NJ|sE>oWK3Z z-GGe6Z74c$X4ZnfjaRT$g8-X~@emH))ImUee^|_gAYvRst9I zvkdwq?XepD z&L936A{OE|h_%r%GaYbbUaZ=w{^0hZs=a9E93wxeUK~5|hBaA9t52z$Rrg$7T0Q;y zue!B$jddT@_0@rsqRUA}KBO1N{6^1d;cBm?`P~zlSTFJoLX9{LM?SH@QMULYtNXVL zs^ffib;v*>938G()u}aLJVOC@J24*%IJIEVkP%~QSOU1!na(f&-ky%5mPvz?6xE@Y zu=j}P2Eb#G7pnvDC*Z^2i}`4i9`4#e_a7>YL+h|d!sSC`p%;@~vd5Pe6Z#@oZs&as z87ZM`hA3;?O^Tq9hHz=Aq*D8;(SXyvILe%ihDGM)BQ@K|;#`AsO+U7nNAlsVc5yrEq4bf^Sksyd8UiWCrIBcCX)@Uk6 zt>E&Y23Yqwcs-+3hz!gyurAVqHPwarPSQmO{UPuvCa<${x2y~N2hi z2JtWvKV3;sNXtdwkcEN`4lXznP=n3894L(QqobgQWM2MVD~m-J4Pl|8}vTt zJB_=9M*vi_?XLld4$S{5fU^HqfYhA?5{4~FyF8W@(^5yq_T?{4B*+_%#@(p&g z9DX0hz%T}eF))mQVGR6#3IlwWj>8_<%?w23GPYX})5QqpQCuKPk9UjB7F`TC=mv*g z>-@7P^VWC$8MnTxR%Ncm!`gRQzuxVv3P%vjgaRbw-d!$4YKUgK+pJ&cq>zLyZjyE- zDYe+_c(=ZdOv|AbB`Z8^%M-A>Al(tR-Lpe3P|=hOcITMRzqMHT_I zH{9>enMnsUEGygaB}>3?$~4{1jmi_;xQ_#W&GIncqiY(Zgdw+yd;vzW8@rYmyaiU< zSR=C$*qfLbi>|$zdUZAR3f+JpJGieG;6>EsI0R$6Af^D<0@xEtOa&jGdo0y!~%@#f2)ra>KJs{og{pb&}l z4>~Zs=BP#`RV_A7hKK+RcHrEk19tlV&i^j9= z$F1HXXorHCP=Q2Q!{Q~6yh1;KSQCnC9P{6QQkkboa=C$u?*sycM3Je72!~AIpkRe$d*2 zb!|kk2FL1Xk)L9F#t_iFwya@)K+Q=c=ohJ4R!U@-G18$(CMC=ombP&B(Bf5S5uNYR zDP7FoB{;B<;AZ%6CGY`^*_7)q?$kXOb$~}02MFpG0irO^1_<5H0tFI4k9rXMg21gu znFv@7Lv7QS!x}lHin(&upes3$M8ffDh!eU48+LDR8SNsXt4#fTw|fg~@pGy4f|tnV zaUv)7!{&7I#~@+o!!vMW?%f`ry&{Hm`+8P7KVhY;s=B;NiKQ{e)aFg8B@5wcwHcY7 zg)r$&NpWAB3ZCqHA5qRkZ*gt@_mKFhHh`aA^tjDE}MlI$=)6AVW1Wmciy<#_9^3QosQHP_ePu%uT3XS1Wm;B@(2kBZ?fC^~#3I4DK+1x7?C!~$^2Ce4ZgeE7Vk8Fd) z`7FE=qg&KYl42ePNjCp$dyDy2Y)gZ&Ot!FCQH2G1H;Hz`X-NVtyAmc?w-=_6V)bU$ zyj*Qg;ZOuh1qa_#;Dl6Tz$PfsJ68KcU!+OvWmGQ7XuQXXt~~yoy>ci zR7$7UHhJJ&U_A;LFmxs7Emp2Fb%pwsevtaL#8NSlF0FtPMH)k>GhmL(k}V}QL5Ovb z4s*d^+EXamy#i$qI%^SJ8!c|0F&XC!tfP6H2V54Uhioetdq{nS8z8BU=lftnLU(Sr zh3{hB1+lh^aD7W8hU*0uuB-RJ^DU8H@O&6HB3M~;IS9#7OHU+sLe|Z`D=fCJ%^}4b zGw9*6oXy@%k>1}A!TXJoM(^eb77EgkA#uw#a|=ZbGAIGiLv$xMHwAv|ugI!uZj2O_ zH)m@nK-Fwu|GvV$ji}Gu6e)^pb6zdfyh*D`<#-vTOw%~i?O40bEL^LxqZgQ z2t?w@Um-7>>7x3SV!C!9J<-NBI0xW$h$JKV~4pU5=7lyfh6xL{7pu`y8@}LN#467zHaZm zk3cK-#`10>E1H4KQzo8OxLv-y4=1%IeYpBS%aP{N6_KuY z`l3f}=U_msCgSX$B>UVtY4H0+vxiXRHR|}M6Zd~`>_AI%OL*EGb6Mnptoy@{%xT}{ zK6eb)L#sU*hy3p3_FYCt`%a_Xye~pe@AmXPkDvgoAdGgtD{>z zU-8|8DBN=F!0FQJ+9u!cfEsRhbLsNPnNtJ-#serM(gNO^+RoCN+9vn;llwakoOHgh zwBLr;$Nlc(%GRyFHBO!Uxbo0LzctPs!P)`(O_=CO$}!G=aKNmt#ThAi?EA0Gfl=@p_jtX z1v9|LU+@ghy#cMXksW2OTi;1L8krxPY7oHIw0FFNMmy9!Mhc8Pu$*n5F$#fzU_Y;0NYq37;LP>4Ikc19(u{2z zl9pIWsyhehh0B#z6N#$BuHV9i$HWS26P#*$cPU3C2n0n_yq@p#*--vUbbqAtpX+2I z`v>hMdIE&qqukgNaJWwoPaf(_aXde_?T$WoUO#ui+_iHtfqmtv6kIQH_R#bvlN$my zk=#5DTgiy1vnEAvguU527Y?7kQ|=xx`ihFR-M0O-^M+CGEZ+cpgq+N%Duho1ol$oQ z!X0)-x0bBRU1-&f2Wf=}dD!`0;bQ#|oK~7UBNr4(;)+oW^7=?`nO z!RAnuSFoinC2HdY=p3PgW;??i&8#T6oTMMH9#ozSt(cLpJ%`9H|Jy$z%k>OMY>26q zHBk_`?wfHEW6QX-Hc^!!Dl%nkF<(}A7NjU-or>e7!%5)FK&CRQwA}=o+@-MqP@A)t z+S0f-vNVVM?sMU9!{xZ}eIlm(6LMj?dwlr6F;kP1lBGnL$02c@d*-=hhv*ztk)-2Ot>aHQ`% z?uL=+C!ywfkTolDGFScdWAVp2SODQt}wr|2Cb~T)o6!3AV;gr{{h@20;Ti|z8a|n$$1-)Iw2}LaQRYHe1*&B zqJn~iQqW5@P6#YP4DhjQA2}3YzBsywse-=fb z)3r?$eM;AskPmSh)Es;$Y^NCz7qxu;C=Z50iWMxXbL_f1lFV|-7kyX$;Q)ZJA+x4J{DA@=as zv4*BB^!-x38fH~C#Hy^HuI$~h3xQ`*&c03od16WcaQ~1}>ss8&qv78^+Mx}QX#ycn z97xh)NCer}Lpn`B0t+<#{n&-RfuiBK2!7&*-?+>Yis}ZbXNX!Hb+JdbUf2vKXP$O5 zlQCWo=40h2#8Nuv150HPA>1hPVAX<0Y}(obgMYdbOG3-7*#(E9eb%>4=)I-OTo2q~ ztOu7d_1l(%bi?SeKzTX1jD8l%fA;sH_0Ng|( z?KBk F2nnbaLJo}<&$_}G@lk@^s(dNB<1bbQudvZtfmcqz^T^llvM9PLSN@r@FQa^ zA%qpZ;_$#lOpZ^9d8Z|p3?Ytf*J1}N+O^nO*S>2J%;GQ+TM-BHVz4QtoCP*5hF$@} zW!qCu5NYcOZTY~ioT@Uz6vc^tO;CImZ<12-6a%J93U#P<%3x0$&D9d9xVBctg zVIhryPb3Z0(c!s%zKbkr$}%f$eC0p#noW7_}ospU@BR_S)9 zGJRJqCk?0y>h!gkcM>R|gF4ab2W93_m7kTMBrQX0_v%fp4g@!&6^AyN+DecSAc#6D zGOwwl3(+5$ZH1PRJyDHP;Oh9m(Y|UBMRFB}!pkn%9mcZXt`L{(kz~cy)EKheo_#ZR z%eYK>6xLjk_WztG%840qNMABC zUP)#H8B*;t%)hO-5*K3x^CRY%wn3#3B-sSqpo&*%HO;%NcT1j3=KP=xCTtGFWoB9ktye#<*o$Cer`826 zi0lczk^V^P2iOsoS+)xCjDM%7zF@&Y6n$)f(l}#*;(2Ge4JQ7&$f~Xgg&l-k(LO4b8usV3b|q&>4|-G zl4%NO%GhSw&h#{tZ(}J)`T^o{5%;5?+k|O^gY+14#{xLw|Cs%PMWA$hwBEBY#r$a^ zqD_9{R!0@lX5MoT(h(7DX2FGA_3=cTF-V3$#EUH0VyYciuM{?Z8HMCIq9SU*AyZ@B z#aO~$#sVRK(Vgwwx@rk8;)pHw>C*!jt%M8z{HfFd0rCz9|{PBV@I z-AH*rf7`!%+tfCtLgvsmMpk?*9{P1wtT`vvka|L{15raHNX*O-<(XQbIQj6?mG&oO zZHEj2i?_5!=f^~i1UevSYMO)w7>pT{t!1z2n~a4k$>L8Cz4&YJAR=(G)d>q(8ELkL z$iHk^#SG_@EX|kGDFYdQlvot zh-3whgvS^U?s@$+H{uvDAFK}v5NJ6+>sGNBiNoMvv$B!-Kh}oQM^pRP2w_y$(%=s2|g_hp8v`!1!Fo} zC5Ex$l+@=~v<%~K7{>C@B+UxAV#P!zoKc2fAVUN*J;}aq!^w;XgA6iS+JExkz;5>; zCg*4CtfY?ol;jA#|NX!!xpm0~?c)K5)*~LoUpZ3dffT}D*5GhdkMXXdY4?lrbe}Vv zoAX{bTkrD7u?lF20XV(+4TM3UA256yQ|~9%vPZ|&YR1W$`5K%=q+vu71#m^BXR%gW z`%G7jj1m5miKd-)MGY+4CkX4OudzQ#yaI_GQP@ESuZgikQaB~1f!BN|W5)%?4oUDN z+Oa9Ds5vL9&r6eDY0XQ083t-g(;5&BXGQ%<;s06`pX_crn1Md>VU6v6@g+-$lSOq3 zFy|cDRdQL=?+SAu5n@1y`mf0~98t!JF+6WXR6LY(SX!d)JX}9{BH;ZfXwXkYrq%F^66S8p|=NnX$$wr~GXELZ)LT z7BVeKNkJ{dzZ%Kh2p42TGqLWhSbI)Q9wAlY$x|meMzepwNsQ;NljlwzBsdO5K-8bL z^Q1)MX>>i#L0k(=!AN#1JAWp=^R&03^HMHCgSI+993iqSM8;ZC9VgLu;*Q&C5*0qn zJwJC5O_Ix{2S2S>V12abs4QaQxn6(N5bbqgni4S*t=Tv*T<9)+C7JvzQozm_BM`Z0 zywgRIHwgULYiMtjR#0ECd6(26OAsQ)JdCm9KBqmVx6k=BM^^gCHnz>YWix~u%0`~I z_&{`&8)n$F+auBjt)v3z=+liXFvID{j8)V{OD0O^g!=3Wo@?|N;nc>iuIQzg8fMxN1ne2KUpUNeMK4EF)S7@%wO5onTzWok=3qYpRC&lSdaa=S^6s7*5C=oVe zP=fkEfH_D4Ys*6=>y!b19UUrn(h2!B;eTCL+!#Fg_y&0!h+g+@#Rj~6PWXQ+-QwjSt^FO=E3K=hSsFuJ>BKR_V;;VLw zid~}S1yTK?VT!;`5!~g@6oK7Q*wmq)g~sFhlUGFbtGa395n1)3@S>rE9S*lSJilPn z=(vOZW-QZuDye$DKf zfAUYM@zltg0CvK+P{jsO{2WB8zjlOfua>WXg1@03#e1B%nD-DL6iba(P$18^J4N*_ zk!V!;_5r}n=}O&zn7LDw?|L3kA!iaA9=GxmT7Q{aFRsV!^K`2wfSOOospA?tZwBf` z@OjTQW+n9}S@LBCRd+itbd%bT%!D9`;FtE!;?<@;znE2q<@eMkC0nFv4&`9r4G`ru zI*f6+gZK`2qg2B*6TlcmCw>*!^8#MJh-8 zemXxkh+rcr0Gr;X7sjo=zUrAF0&j@mn3dzZd~CmsqL&{A`e~KRv5& zB&ln0)4$O}QPm_W_8}mw7a+kgvq_ZiqqTxay4%cOFg=^OSCj{>XAemlr$H=f8;45S zDc0=TNQqR{ax$(?3>i_ws8zmGRP7ZNK`tTh?f=s<8Dqfcx#!<+=h)aEqb!*E}}@CRrY^POPAnZ4?xbQbHLP=!H8C83#)| z028Scs}2r~GgF?hx6lfqV;0MDWU+rS02`7^VrQc5ouXe+pBH6_d6~SV!o%PK#^;0K z6ry5}Q7GXj2NE6vSlP?3Q_wBLb1H?SwY;Ii%>)^eK~f3uA)*G98kuh<$tR#z)CV$P z+Yn7JOebHcLNF!

WP2M|9W2LnE;jO{kwl#j{xi)KO22|JyXi9`JY$lg~RT`JFs znlO=?giPH?lf;Dp2b%L1A7c8jluiYBU?89etnI;i#)^2Ff|rotMtnn=Rzt*F=!Qte zK@Cy8!~(~1Ca~B8%~F^3tZ*xTZ4+SN#A-YciV#w=lZ zk!TuEDArrSOz}W;<34vPkS7Wz#bvzBiTBXa>q+w>8_@1*cHxNxwyi0*92_d<*l*C& zF{;Zl1#67|kPXX`Vcqn)@Kia#;Gmxk}4-vod6ko`n_`XSfpa0A=kO-d( z4@kC52Ct6$pj$>h!(T>FpOZ zI{#mJVE?@{e}};T9RxstO8;EfbnwP99A1$L(a3MB!&2c~b8U5@8_TeE^4jW*sr=kC zk-oa!J)pFs&I&NqQDk9JP>$t||HfIrAt1o>f zr|k&txmGyrKJ*M{SAzHJ2kibj*KDr~9Cd@|g(5mZ(?(ez>mO>SFCe((&~o5dIFJ|G zZ887-ak~}0rnU^VP#Ls3T8RZl0sCw!$Ss2XrGdXFkEWz}uBBfoIECWU2RkR%Ykp&| z(|923s_bNP)6;S7?7w(gGJAZHZ2O}01ma`ir(qYh<$`m z6S@G-SttNP7m}a5O0uJU3Nx+uMN~(hcg=FpI0_Ay3C>7%$N9qu_3n`85S@~^huIHD za%3K-ks~+mUA$q>{3H66b893G$EehP;jE!;A8g(`Ytx?T?Ne_1$a=qxYtuioAL&_> ze&c*JLgDvUj&_XHwaog+>aH3NjBJyjLX-G-7Gj^XSHWHfu}Fw{gp2^)Ad8t{WOQLY zBW2Cz)|)BL20shzpdT0H4-QbDDnIE@F*qb2igOt%!D)oKQVRAiU4E$~a?lKDfo`RR z)JeBZ%}oKFOk(4#jvGdK`ejeF0xaltBdgJDI2{LU9O__ldSTvNGpTEg-^&sx|3BGC B&)Wb1 literal 0 HcmV?d00001 diff --git a/bin/good/uzboot.bin b/bin/good/uzboot.bin new file mode 100644 index 0000000000000000000000000000000000000000..02bbd26e2a7f160e44f48fcc80f8a8130d59bdd2 GIT binary patch literal 109260 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%0A5zu2SrduE&+kb$8X4H`S0}AS{ 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
RFK6)y8r8aMmeZ^>Vz&Yt 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 literal 0 HcmV?d00001 diff --git a/bin/good/uzboot.gz b/bin/good/uzboot.gz new file mode 100644 index 0000000000000000000000000000000000000000..bda1f8301724c7564d02ff68b20c8b24d0e0579f GIT binary patch literal 107458 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 Ay8r+H literal 0 HcmV?d00001 diff --git a/bin/good/uzidisk.dat b/bin/good/uzidisk.dat new file mode 100644 index 0000000000000000000000000000000000000000..e3eb7a4bf37c9ef0ea69819997b48922b6d860b1 GIT binary patch literal 4194304 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%0A*%QhsoO=eiwGuzjlF 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�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�U% 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%0Dnfc)gxCd%bW!APY>i&6DeMz+!+C+^kz_%ff`2C( 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 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF Q5FkK+009C7{z(b^Kc1QALI3~& literal 0 HcmV?d00001 diff --git a/bin/kernel.bin b/bin/kernel.bin index 3ff5041c41b2fcb3de83c4ac576fd5956e1e739f..fdb3dc96dad79d764ee60ac3470a604bdfca9a08 100644 GIT binary patch delta 14947 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

e93J@J7sZdgJ~Pk;p)>IUxEKK$!CQ1 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

>8-V-4 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 bJmc_;$CHa^0-lL@CgI7mTNmAS?(zQv8yeQU delta 137641 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 diff --git a/devlog.txt b/devlog.txt new file mode 100644 index 00000000..e35eeebd --- /dev/null +++ b/devlog.txt @@ -0,0 +1,9 @@ + +13/6-16/6: Cleaned-up and extended functionality of "testter", now called + "tter" + => /uzi/src/testsystem/testsystem.c + +16/6: Set the default baudrate on ESCC2 of the Z85C30 to 38400 baud. + => /uzi/src/testsystem/escc.asm + + diff --git a/lib/c0b.lst b/lib/c0b.lst new file mode 100644 index 00000000..52d8e041 --- /dev/null +++ b/lib/c0b.lst @@ -0,0 +1,336 @@ + 1 ; c0b.asm by Nick for UZI180 banked memory model + 2 + 3 ; ----------------------------------------------------------------------------- + 4 + 00000000 5 .if 0 + 6 $ io64180.s01 + 7 .endif + 8 + 9 module _c0b + 10 + 11 public __init ; vendor _init + 00000000 12 .if 0 + 13 extern brk ; vendor _brk + 14 .endif + 15 extern main ; vendor _main + 16 extern exit ; vendor _exit + 17 + 18 extern l__DEFAULT ; e_hsize + 19 extern s_RCODE ; e_idata + 20 extern s_UDATA0 ; e_udata + 21 extern s_CSTACK ; e_stack + 22 extern e_CSTACK ; e_break + 23 + 00000001 24 .if 1 + 25 extern ?BANK_CALL_DIRECT_L08 + 26 .endif + 27 + 0000A6C9 28 E_MAGIC equ 0a6c9h + 00000002 29 E_FORMAT_BANKED equ 2 + 00001000 30 E_STACK_SIZE equ 1000h + 31 + 32 ; ----------------------------------------------------------------------------- + 33 ; forward definitions of segments, to set the linkage order (c0l must be first) + 34 + 35 rseg RCODE + 36 ; rseg TEMP + 37 ; rseg DATA0 + 38 ; rseg WCSTR + 39 rseg CONST + 40 rseg CSTR + 41 rseg IDATA0(NUL) + 42 rseg CDATA0 + 43 rseg ECSTR(NUL) + 44 rseg CCSTR + 45 rseg CODE(NUL) ; needs to be at end for banked model + 46 rseg UDATA0 + 47 rseg CSTACK + 48 + 49 ; ----------------------------------------------------------------------------- + 50 + 00000001 51 .if 1 + 52 rseg _DEFAULT ; means header is discarded at loading + 53 .else + 54 rseg RCODE ; means header is visible to loaded pgm + 55 .endif + 56 + 00000001 57 .if 1 + 00000000 C9 A6 58 defw E_MAGIC ; e_magic + 00000002 02 00 59 defw E_FORMAT_BANKED ; e_format + 00000004 78 56 34 12 60 defd 12345678h ; e_size + 00000008 00 00 61 defw l__DEFAULT ; e_hsize + 0000000A 00 00 62 defw s_RCODE ; e_idata + 0000000C 00 00 63 defw __init ; e_entry + 0000000E 00 00 64 defw s_UDATA0 ; e_udata + 00000010 00 00 65 defw s_CSTACK ; e_stack + 00000012 00 00 66 defw e_CSTACK ; e_break + 67 .else + 68 jp __init + 69 .endif + 70 + 71 ; ----------------------------------------------------------------------------- + 72 + 73 rseg RCODE + 74 + 00000000 75 __init:: + 00000000 76 .if 0 + 77 ld a,'A' + 78 call abyte + 79 .endif + 80 + 00000000 81 .if 0 + 82 ld de,.sfb.CSTACK ; 1st argument to brk() + 83 + 00000000 84 .if 0 + 85 ld hl,LWRD brk + 86 ld a,BYTE3 brk + 87 call ?BANK_CALL_DIRECT_L08 + 88 .else + 89 call brk + 90 .endif + 91 + 92 call seg_init + 93 .endif + 94 + 95 ; now there are the next stack structure: + 96 ; +4 envp + 97 ; +2 argv + 98 ; sp-> +0 argc + 00000001 99 .if 1 + 00000000 D1 100 pop de + 00000001 ED 53 00 00 101 ld (_argc),de ; vendor __argc (2nd argument to main) + 00000005 C1 102 pop bc + 00000006 ED 43 02 00 103 ld (_argv),bc ; vendor __argv (1st argument to main) + 0000000A E1 104 pop hl + 0000000B 22 04 00 105 ld (environ),hl ; vendor _environ + 106 .else + 107 ld ix,0 + 108 add ix,sp + 109 ld l,(ix+4) + 110 ld h,(ix+5) + 111 ld (environ),hl ; vendor _environ + 112 ld c,(ix+2) + 113 ld b,(ix+3) + 114 ld (_argv),bc ; vendor __argv (1st argument to main) + 115 ld e,(ix+0) + 116 ld d,(ix+1) + 117 ld (_argc),de ; vendor __argc (2nd argument to main) + 118 .endif + 119 + 00000001 120 .if 1 + 0000000E 21 00 00 121 ld HL,LWRD main ; banked call to _main() + 00000011 3E 00 122 ld A,BYTE3 main + 00000013 CD 00 00 123 call ?BANK_CALL_DIRECT_L08 + 124 .else + 125 call main ; vendor _main ; non-banked call to _main() + 126 .endif + 127 + 00000016 EB 128 ex de,hl ; de = exitcode (1st argument to exit) + 129 + 00000001 130 .if 1 + 00000017 21 00 00 131 ld HL,LWRD exit ; banked call to _exit() + 0000001A 3E 00 132 ld A,BYTE3 exit + 0000001C C3 00 00 133 jp ?BANK_CALL_DIRECT_L08 + 134 .else + 135 jp exit ; vendor _exit ; non-banked call to _exit() + 136 .endif + 137 + 138 ; ----------------------------------------------------------------------------- + 139 + 00000000 140 .if 0 + 141 seg_init: + 142 ld HL,.sfe.UDATA0 + 143 ld DE,.sfb.UDATA0 + 144 call zero_mem + 145 + 146 ld DE,.sfb.IDATA0 ; destination address + 147 ld HL,.sfe.CDATA0 ;+4000h ; really 8:0000 + .sfe.CDATA0 + 148 ld BC,.sfb.CDATA0 ;+4000h ; really 8:0000 + .sfb.CDATA0 + 149 call copy_mem + 150 + 151 ld DE,.sfb.ECSTR ; destination address + 152 ld HL,.sfe.CCSTR ;+4000h ; really 8:0000 + .sfe.CCSTR + 153 ld BC,.sfb.CCSTR ;+4000h ; really 8:0000 + .sfb.CCSTR + 154 + 155 ; Just fall in to the copy_mem function + 156 + 157 copy_mem: + 158 XOR A + 159 SBC HL,BC + 160 PUSH BC + 161 LD C,L + 162 LD B,H ; BC - that many bytes + 163 POP HL ; source address + 164 RET Z ; If block size = 0 return now + 165 LDIR + 166 RET + 167 + 168 zero_mem: + 169 XOR A + 170 again: PUSH HL + 171 SBC HL,DE + 172 POP HL + 173 RET Z + 174 LD (DE),A + 175 INC DE + 176 JR again + 177 .endif + 178 + 179 ; ----------------------------------------------------------------------------- + 180 + 00000000 181 .if 0 + 182 public _abyte + 183 + 184 _abyte:: + 00000000 185 .if 0 ; SDCC + 186 ld hl,2 + 187 add hl,sp + 188 ld a,(hl) + 189 .else ; IAR + 190 ld a,e + 191 .endif + 192 + 193 public abyte + 194 + 195 abyte:: + 00000000 196 .if 0 + 197 ret + 198 .else + 199 push af + 200 .endif + 201 + 202 L1$: in0 a,(STAT1) + 203 and 10b + 204 jr z,L1$ + 205 + 206 pop af + 207 out0 (TDR1),a + 208 + 00000000 209 .if 0 + 210 di + 211 .endif + 00000000 212 .if 0 + 213 ei + 214 .endif + 215 ret + 216 + 217 public _acrlf + 218 + 219 _acrlf:: + 220 + 221 public acrlf + 222 + 223 acrlf:: + 224 ld a,0dh + 225 call abyte + 226 ld a,0ah + 227 jr abyte + 228 + 229 public _ahexw + 230 + 231 _ahexw:: + 00000000 232 .if 0 ; SDCC + 233 ld hl,2 + 234 add hl,sp + 235 ld e,(hl) + 236 inc hl + 237 ld d,(hl) + 238 .endif + 239 ex de,hl + 240 + 241 public ahexw + 242 + 243 ahexw:: + 244 ld a,h + 245 call ahexb + 246 ld a,l + 247 + 248 public ahexb + 249 + 250 ahexb:: + 251 push af + 252 rrca + 253 rrca + 254 rrca + 255 rrca + 256 call ahexn + 257 pop af + 258 + 259 public ahexn + 260 + 261 ahexn:: + 262 and 0fh + 263 add a,90h + 264 daa + 265 adc a,40h + 266 daa + 267 jr abyte + 268 + 269 public amess + 270 + 271 amess:: + 272 ex (sp),hl + 273 push af + 274 + 275 L01$: ld a,(hl) + 276 inc hl + 277 or a + 278 jr z,L02$ + 279 + 280 call abyte + 281 jr L01$ + 282 + 283 L02$: pop af + 284 ex (sp),hl + 285 ret + 286 .endif + 287 + 288 ; ----------------------------------------------------------------------------- + 289 + 290 public _argc, _argv, environ, errno, __cleanup + 291 ;public __argc, __argv, _environ, _errno, ___cleanup + 292 + 293 rseg UDATA0 + 00000000 294 _argc: defs 2 ; vendor __argc + 00000002 295 _argv: defs 2 ; vendor __argv + 00000004 296 environ: defs 2 ; vendor _environ + 00000006 297 errno: defs 2 ; vendor _errno + 00000008 298 __cleanup: defs 3 ; oopsy 2 ; vendor ___cleanup + 299 + 300 rseg CSTACK + 00000000 301 defs E_STACK_SIZE + 302 + 303 ; ----------------------------------------------------------------------------- + 304 + 00001000 305 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | ?BANK_CALL_DIR ******** GX + E_FORMAT_BANKE = 00000002 | E_MAGIC = 0000A6C9 + E_STACK_SIZE = 00001000 | 9 __cleanup 00000008 GR + 1 __init 00000000 GR | 9 _argc 00000000 GR + 9 _argv 00000002 GR | e_CSTACK ******** GX + 9 environ 00000004 GR | 9 errno 00000006 GR + exit ******** GX | l__DEFAULT ******** GX + main ******** GX | s_CSTACK ******** GX + s_RCODE ******** GX | s_UDATA0 ******** GX + + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. +Hexadecimal [32-Bits] + +Area Table + + 0 _DEFAULT size 14 flags 0 + 1 RCODE size 1F flags 0 + 2 CONST size 0 flags 0 + 3 CSTR size 0 flags 0 + 4 IDATA0 size 0 flags 1 + 5 CDATA0 size 0 flags 0 + 6 ECSTR size 0 flags 1 + 7 CCSTR size 0 flags 0 + 8 CODE size 0 flags 1 + 9 UDATA0 size B flags 0 + A CSTACK size 1000 flags 0 diff --git a/lib/c0b.rst b/lib/c0b.rst new file mode 100644 index 00000000..10fed4b9 --- /dev/null +++ b/lib/c0b.rst @@ -0,0 +1,336 @@ + 1 ; c0b.asm by Nick for UZI180 banked memory model + 2 + 3 ; ----------------------------------------------------------------------------- + 4 + 00000000 5 .if 0 + 6 $ io64180.s01 + 7 .endif + 8 + 9 module _c0b + 10 + 11 public __init ; vendor _init + 00000000 12 .if 0 + 13 extern brk ; vendor _brk + 14 .endif + 15 extern main ; vendor _main + 16 extern exit ; vendor _exit + 17 + 18 extern l__DEFAULT ; e_hsize + 19 extern s_RCODE ; e_idata + 20 extern s_UDATA0 ; e_udata + 21 extern s_CSTACK ; e_stack + 22 extern e_CSTACK ; e_break + 23 + 00000001 24 .if 1 + 25 extern ?BANK_CALL_DIRECT_L08 + 26 .endif + 27 + 0000A6C9 28 E_MAGIC equ 0a6c9h + 00000002 29 E_FORMAT_BANKED equ 2 + 00001000 30 E_STACK_SIZE equ 1000h + 31 + 32 ; ----------------------------------------------------------------------------- + 33 ; forward definitions of segments, to set the linkage order (c0l must be first) + 34 + 35 rseg RCODE + 36 ; rseg TEMP + 37 ; rseg DATA0 + 38 ; rseg WCSTR + 39 rseg CONST + 40 rseg CSTR + 41 rseg IDATA0(NUL) + 42 rseg CDATA0 + 43 rseg ECSTR(NUL) + 44 rseg CCSTR + 45 rseg CODE(NUL) ; needs to be at end for banked model + 46 rseg UDATA0 + 47 rseg CSTACK + 48 + 49 ; ----------------------------------------------------------------------------- + 50 + 00000001 51 .if 1 + 52 rseg _DEFAULT ; means header is discarded at loading + 53 .else + 54 rseg RCODE ; means header is visible to loaded pgm + 55 .endif + 56 + 00000001 57 .if 1 + 00000000 C9 A6 58 defw E_MAGIC ; e_magic + 00000002 02 00 59 defw E_FORMAT_BANKED ; e_format + 00000004 78 56 34 12 60 defd 12345678h ; e_size + 00000008 14 00 61 defw l__DEFAULT ; e_hsize + 0000000A 00 81 62 defw s_RCODE ; e_idata + 0000000C 00 81 63 defw __init ; e_entry + 0000000E 5A 81 64 defw s_UDATA0 ; e_udata + 00000010 65 81 65 defw s_CSTACK ; e_stack + 00000012 65 91 66 defw e_CSTACK ; e_break + 67 .else + 68 jp __init + 69 .endif + 70 + 71 ; ----------------------------------------------------------------------------- + 72 + 73 rseg RCODE + 74 + 00008100 75 __init:: + 00000000 76 .if 0 + 77 ld a,'A' + 78 call abyte + 79 .endif + 80 + 00000000 81 .if 0 + 82 ld de,.sfb.CSTACK ; 1st argument to brk() + 83 + 00000000 84 .if 0 + 85 ld hl,LWRD brk + 86 ld a,BYTE3 brk + 87 call ?BANK_CALL_DIRECT_L08 + 88 .else + 89 call brk + 90 .endif + 91 + 92 call seg_init + 93 .endif + 94 + 95 ; now there are the next stack structure: + 96 ; +4 envp + 97 ; +2 argv + 98 ; sp-> +0 argc + 00000001 99 .if 1 + 00008100 D1 100 pop de + 00008101 ED 53 5A 81 101 ld (_argc),de ; vendor __argc (2nd argument to main) + 00008105 C1 102 pop bc + 00008106 ED 43 5C 81 103 ld (_argv),bc ; vendor __argv (1st argument to main) + 0000810A E1 104 pop hl + 0000810B 22 5E 81 105 ld (environ),hl ; vendor _environ + 106 .else + 107 ld ix,0 + 108 add ix,sp + 109 ld l,(ix+4) + 110 ld h,(ix+5) + 111 ld (environ),hl ; vendor _environ + 112 ld c,(ix+2) + 113 ld b,(ix+3) + 114 ld (_argv),bc ; vendor __argv (1st argument to main) + 115 ld e,(ix+0) + 116 ld d,(ix+1) + 117 ld (_argc),de ; vendor __argc (2nd argument to main) + 118 .endif + 119 + 00000001 120 .if 1 + 0000810E 21 6E 40 121 ld HL,LWRD main ; banked call to _main() + 00008111 3E 00 122 ld A,BYTE3 main + 00008113 CD 36 81 123 call ?BANK_CALL_DIRECT_L08 + 124 .else + 125 call main ; vendor _main ; non-banked call to _main() + 126 .endif + 127 + 00008116 EB 128 ex de,hl ; de = exitcode (1st argument to exit) + 129 + 00000001 130 .if 1 + 00008117 21 F7 40 131 ld HL,LWRD exit ; banked call to _exit() + 0000811A 3E 00 132 ld A,BYTE3 exit + 0000811C C3 36 81 133 jp ?BANK_CALL_DIRECT_L08 + 134 .else + 135 jp exit ; vendor _exit ; non-banked call to _exit() + 136 .endif + 137 + 138 ; ----------------------------------------------------------------------------- + 139 + 00000000 140 .if 0 + 141 seg_init: + 142 ld HL,.sfe.UDATA0 + 143 ld DE,.sfb.UDATA0 + 144 call zero_mem + 145 + 146 ld DE,.sfb.IDATA0 ; destination address + 147 ld HL,.sfe.CDATA0 ;+4000h ; really 8:0000 + .sfe.CDATA0 + 148 ld BC,.sfb.CDATA0 ;+4000h ; really 8:0000 + .sfb.CDATA0 + 149 call copy_mem + 150 + 151 ld DE,.sfb.ECSTR ; destination address + 152 ld HL,.sfe.CCSTR ;+4000h ; really 8:0000 + .sfe.CCSTR + 153 ld BC,.sfb.CCSTR ;+4000h ; really 8:0000 + .sfb.CCSTR + 154 + 155 ; Just fall in to the copy_mem function + 156 + 157 copy_mem: + 158 XOR A + 159 SBC HL,BC + 160 PUSH BC + 161 LD C,L + 162 LD B,H ; BC - that many bytes + 163 POP HL ; source address + 164 RET Z ; If block size = 0 return now + 165 LDIR + 166 RET + 167 + 168 zero_mem: + 169 XOR A + 170 again: PUSH HL + 171 SBC HL,DE + 172 POP HL + 173 RET Z + 174 LD (DE),A + 175 INC DE + 176 JR again + 177 .endif + 178 + 179 ; ----------------------------------------------------------------------------- + 180 + 00000000 181 .if 0 + 182 public _abyte + 183 + 184 _abyte:: + 00000000 185 .if 0 ; SDCC + 186 ld hl,2 + 187 add hl,sp + 188 ld a,(hl) + 189 .else ; IAR + 190 ld a,e + 191 .endif + 192 + 193 public abyte + 194 + 195 abyte:: + 00000000 196 .if 0 + 197 ret + 198 .else + 199 push af + 200 .endif + 201 + 202 L1$: in0 a,(STAT1) + 203 and 10b + 204 jr z,L1$ + 205 + 206 pop af + 207 out0 (TDR1),a + 208 + 00000000 209 .if 0 + 210 di + 211 .endif + 00000000 212 .if 0 + 213 ei + 214 .endif + 215 ret + 216 + 217 public _acrlf + 218 + 219 _acrlf:: + 220 + 221 public acrlf + 222 + 223 acrlf:: + 224 ld a,0dh + 225 call abyte + 226 ld a,0ah + 227 jr abyte + 228 + 229 public _ahexw + 230 + 231 _ahexw:: + 00000000 232 .if 0 ; SDCC + 233 ld hl,2 + 234 add hl,sp + 235 ld e,(hl) + 236 inc hl + 237 ld d,(hl) + 238 .endif + 239 ex de,hl + 240 + 241 public ahexw + 242 + 243 ahexw:: + 244 ld a,h + 245 call ahexb + 246 ld a,l + 247 + 248 public ahexb + 249 + 250 ahexb:: + 251 push af + 252 rrca + 253 rrca + 254 rrca + 255 rrca + 256 call ahexn + 257 pop af + 258 + 259 public ahexn + 260 + 261 ahexn:: + 262 and 0fh + 263 add a,90h + 264 daa + 265 adc a,40h + 266 daa + 267 jr abyte + 268 + 269 public amess + 270 + 271 amess:: + 272 ex (sp),hl + 273 push af + 274 + 275 L01$: ld a,(hl) + 276 inc hl + 277 or a + 278 jr z,L02$ + 279 + 280 call abyte + 281 jr L01$ + 282 + 283 L02$: pop af + 284 ex (sp),hl + 285 ret + 286 .endif + 287 + 288 ; ----------------------------------------------------------------------------- + 289 + 290 public _argc, _argv, environ, errno, __cleanup + 291 ;public __argc, __argv, _environ, _errno, ___cleanup + 292 + 293 rseg UDATA0 + 0000815A 294 _argc: defs 2 ; vendor __argc + 0000815C 295 _argv: defs 2 ; vendor __argv + 0000815E 296 environ: defs 2 ; vendor _environ + 00008160 297 errno: defs 2 ; vendor _errno + 00008162 298 __cleanup: defs 3 ; oopsy 2 ; vendor ___cleanup + 299 + 300 rseg CSTACK + 00008165 301 defs E_STACK_SIZE + 302 + 303 ; ----------------------------------------------------------------------------- + 304 + 00001000 305 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | ?BANK_CALL_DIR ******** GX + E_FORMAT_BANKE = 00000002 | E_MAGIC = 0000A6C9 + E_STACK_SIZE = 00001000 | 9 __cleanup 00000008 GR + 1 __init 00000000 GR | 9 _argc 00000000 GR + 9 _argv 00000002 GR | e_CSTACK ******** GX + 9 environ 00000004 GR | 9 errno 00000006 GR + exit ******** GX | l__DEFAULT ******** GX + main ******** GX | s_CSTACK ******** GX + s_RCODE ******** GX | s_UDATA0 ******** GX + + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. +Hexadecimal [32-Bits] + +Area Table + + 0 _DEFAULT size 14 flags 0 + 1 RCODE size 1F flags 0 + 2 CONST size 0 flags 0 + 3 CSTR size 0 flags 0 + 4 IDATA0 size 0 flags 1 + 5 CDATA0 size 0 flags 0 + 6 ECSTR size 0 flags 1 + 7 CCSTR size 0 flags 0 + 8 CODE size 0 flags 1 + 9 UDATA0 size B flags 0 + A CSTACK size 1000 flags 0 diff --git a/lib/c0l.lst b/lib/c0l.lst new file mode 100644 index 00000000..0695ad60 --- /dev/null +++ b/lib/c0l.lst @@ -0,0 +1,335 @@ + 1 ; c0l.asm by Nick for UZI180 large memory model + 2 + 3 ; ----------------------------------------------------------------------------- + 4 + 00000000 5 .if 0 + 6 $ io64180.s01 + 7 .endif + 8 + 9 module _c0l + 10 + 11 public __init ; vendor _init + 00000000 12 .if 0 + 13 extern brk ; vendor _brk + 14 .endif + 15 extern main ; vendor _main + 16 extern exit ; vendor _exit + 17 + 18 extern l__DEFAULT ; e_hsize + 19 extern s_RCODE ; e_idata + 20 extern s_UDATA0 ; e_udata + 21 extern s_CSTACK ; e_stack + 22 extern e_CSTACK ; e_break + 23 + 00000000 24 .if 0 + 25 extern ?BANK_CALL_DIRECT_L08 + 26 .endif + 27 + 0000A6C9 28 E_MAGIC equ 0a6c9h + 00000001 29 E_FORMAT_LARGE equ 1 + 00001000 30 E_STACK_SIZE equ 1000h + 31 + 32 ; ----------------------------------------------------------------------------- + 33 ; forward definitions of segments, to set the linkage order (c0l must be first) + 34 + 35 rseg RCODE + 36 rseg CODE ; needs to be at start for large model + 37 ; rseg TEMP + 38 ; rseg DATA0 + 39 ; rseg WCSTR + 40 rseg CONST + 41 rseg CSTR + 42 rseg IDATA0(NUL) + 43 rseg CDATA0 + 44 rseg ECSTR(NUL) + 45 rseg CCSTR + 46 rseg UDATA0 + 47 rseg CSTACK + 48 + 49 ; ----------------------------------------------------------------------------- + 50 + 00000001 51 .if 1 + 52 rseg _DEFAULT ; means header is discarded at loading + 53 .else + 54 rseg RCODE ; means header is visible to loaded pgm + 55 .endif + 56 + 00000001 57 .if 1 + 00000000 C9 A6 58 defw E_MAGIC ; e_magic + 00000002 01 00 59 defw E_FORMAT_LARGE ; e_format + 00000004 78 56 34 12 60 defd 12345678h ; e_size + 00000008 00 00 61 defw l__DEFAULT ; e_hsize + 0000000A 00 00 62 defw s_RCODE ; e_idata + 0000000C 00 00 63 defw __init ; e_entry + 0000000E 00 00 64 defw s_UDATA0 ; e_udata + 00000010 00 00 65 defw s_CSTACK ; e_stack + 00000012 00 00 66 defw e_CSTACK ; e_break + 67 .else + 68 jp __init + 69 .endif + 70 + 71 ; ----------------------------------------------------------------------------- + 72 + 73 rseg RCODE + 74 + 00000000 75 __init:: + 00000000 76 .if 0 + 77 ld a,'A' + 78 call abyte + 79 .endif + 80 + 00000000 81 .if 0 + 82 ld de,.sfb.CSTACK ; 1st argument to brk() + 83 + 00000000 84 .if 0 + 85 ld hl,LWRD brk + 86 ld a,BYTE3 brk + 87 call ?BANK_CALL_DIRECT_L08 + 88 .else + 89 call brk + 90 .endif + 91 + 92 call seg_init + 93 .endif + 94 + 95 ; now there are the next stack structure: + 96 ; +4 envp + 97 ; +2 argv + 98 ; sp-> +0 argc + 00000001 99 .if 1 + 00000000 D1 100 pop de + 00000001 ED 53 00 00 101 ld (_argc),de ; vendor __argc (2nd argument to main) + 00000005 C1 102 pop bc + 00000006 ED 43 02 00 103 ld (_argv),bc ; vendor __argv (1st argument to main) + 0000000A E1 104 pop hl + 0000000B 22 04 00 105 ld (environ),hl ; vendor _environ + 106 .else + 107 ld ix,0 + 108 add ix,sp + 109 ld l,(ix+4) + 110 ld h,(ix+5) + 111 ld (environ),hl ; vendor _environ + 112 ld c,(ix+2) + 113 ld b,(ix+3) + 114 ld (_argv),bc ; vendor __argv (1st argument to main) + 115 ld e,(ix+0) + 116 ld d,(ix+1) + 117 ld (_argc),de ; vendor __argc (2nd argument to main) + 118 .endif + 119 + 00000000 120 .if 0 + 121 ld HL,LWRD main ; banked call to _main() + 122 ld A,BYTE3 main + 123 call ?BANK_CALL_DIRECT_L08 + 124 .else + 0000000E CD 00 00 125 call main ; vendor _main ; non-banked call to _main() + 126 .endif + 127 + 00000011 EB 128 ex de,hl ; de = exitcode (1st argument to exit) + 129 + 00000000 130 .if 0 + 131 ld HL,LWRD exit ; banked call to _exit() + 132 ld A,BYTE3 exit + 133 jp ?BANK_CALL_DIRECT_L08 + 134 .else + 00000012 C3 00 00 135 jp exit ; vendor _exit ; non-banked call to _exit() + 136 .endif + 137 + 138 ; ----------------------------------------------------------------------------- + 139 + 00000000 140 .if 0 + 141 seg_init: + 142 ld HL,.sfe.UDATA0 + 143 ld DE,.sfb.UDATA0 + 144 call zero_mem + 145 + 146 ld DE,.sfb.IDATA0 ; destination address + 147 ld HL,.sfe.CDATA0 ;+4000h ; really 8:0000 + .sfe.CDATA0 + 148 ld BC,.sfb.CDATA0 ;+4000h ; really 8:0000 + .sfb.CDATA0 + 149 call copy_mem + 150 + 151 ld DE,.sfb.ECSTR ; destination address + 152 ld HL,.sfe.CCSTR ;+4000h ; really 8:0000 + .sfe.CCSTR + 153 ld BC,.sfb.CCSTR ;+4000h ; really 8:0000 + .sfb.CCSTR + 154 + 155 ; Just fall in to the copy_mem function + 156 + 157 copy_mem: + 158 XOR A + 159 SBC HL,BC + 160 PUSH BC + 161 LD C,L + 162 LD B,H ; BC - that many bytes + 163 POP HL ; source address + 164 RET Z ; If block size = 0 return now + 165 LDIR + 166 RET + 167 + 168 zero_mem: + 169 XOR A + 170 again: PUSH HL + 171 SBC HL,DE + 172 POP HL + 173 RET Z + 174 LD (DE),A + 175 INC DE + 176 JR again + 177 .endif + 178 + 179 ; ----------------------------------------------------------------------------- + 180 + 00000000 181 .if 0 + 182 public _abyte + 183 + 184 _abyte:: + 00000000 185 .if 0 ; SDCC + 186 ld hl,2 + 187 add hl,sp + 188 ld a,(hl) + 189 .else ; IAR + 190 ld a,e + 191 .endif + 192 + 193 public abyte + 194 + 195 abyte:: + 00000000 196 .if 0 + 197 ret + 198 .else + 199 push af + 200 .endif + 201 + 202 L1$: in0 a,(STAT1) + 203 and 10b + 204 jr z,L1$ + 205 + 206 pop af + 207 out0 (TDR1),a + 208 + 00000000 209 .if 0 + 210 di + 211 .endif + 00000000 212 .if 0 + 213 ei + 214 .endif + 215 ret + 216 + 217 public _acrlf + 218 + 219 _acrlf:: + 220 + 221 public acrlf + 222 + 223 acrlf:: + 224 ld a,0dh + 225 call abyte + 226 ld a,0ah + 227 jr abyte + 228 + 229 public _ahexw + 230 + 231 _ahexw:: + 00000000 232 .if 0 ; SDCC + 233 ld hl,2 + 234 add hl,sp + 235 ld e,(hl) + 236 inc hl + 237 ld d,(hl) + 238 .endif + 239 ex de,hl + 240 + 241 public ahexw + 242 + 243 ahexw:: + 244 ld a,h + 245 call ahexb + 246 ld a,l + 247 + 248 public ahexb + 249 + 250 ahexb:: + 251 push af + 252 rrca + 253 rrca + 254 rrca + 255 rrca + 256 call ahexn + 257 pop af + 258 + 259 public ahexn + 260 + 261 ahexn:: + 262 and 0fh + 263 add a,90h + 264 daa + 265 adc a,40h + 266 daa + 267 jr abyte + 268 + 269 public amess + 270 + 271 amess:: + 272 ex (sp),hl + 273 push af + 274 + 275 L01$: ld a,(hl) + 276 inc hl + 277 or a + 278 jr z,L02$ + 279 + 280 call abyte + 281 jr L01$ + 282 + 283 L02$: pop af + 284 ex (sp),hl + 285 ret + 286 .endif + 287 + 288 ; ----------------------------------------------------------------------------- + 289 + 290 public _argc, _argv, environ, errno, __cleanup + 291 ;public __argc, __argv, _environ, _errno, ___cleanup + 292 + 293 rseg UDATA0 + 00000000 294 _argc: defs 2 ; vendor __argc + 00000002 295 _argv: defs 2 ; vendor __argv + 00000004 296 environ: defs 2 ; vendor _environ + 00000006 297 errno: defs 2 ; vendor _errno + 00000008 298 __cleanup: defs 2 ; vendor ___cleanup + 299 + 300 rseg CSTACK + 00000000 301 defs E_STACK_SIZE + 302 + 303 ; ----------------------------------------------------------------------------- + 304 + 00001000 305 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | E_FORMAT_LARGE = 00000001 + E_MAGIC = 0000A6C9 | E_STACK_SIZE = 00001000 + 9 __cleanup 00000008 GR | 1 __init 00000000 GR + 9 _argc 00000000 GR | 9 _argv 00000002 GR + e_CSTACK ******** GX | 9 environ 00000004 GR + 9 errno 00000006 GR | exit ******** GX + l__DEFAULT ******** GX | main ******** GX + s_CSTACK ******** GX | s_RCODE ******** GX + s_UDATA0 ******** GX + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. +Hexadecimal [32-Bits] + +Area Table + + 0 _DEFAULT size 14 flags 0 + 1 RCODE size 15 flags 0 + 2 CODE size 0 flags 0 + 3 CONST size 0 flags 0 + 4 CSTR size 0 flags 0 + 5 IDATA0 size 0 flags 1 + 6 CDATA0 size 0 flags 0 + 7 ECSTR size 0 flags 1 + 8 CCSTR size 0 flags 0 + 9 UDATA0 size A flags 0 + A CSTACK size 1000 flags 0 diff --git a/relnotes/20030702.txt b/relnotes/20030702.txt new file mode 100644 index 00000000..be7e24df --- /dev/null +++ b/relnotes/20030702.txt @@ -0,0 +1,60 @@ + +This is a full uzi build. + +It is basically a further development of the 030528 release +where the major differences are in changes and additions to the +testsystem. + +/uzi/src/testsystem/tter + +This program runs in a UNIX environment (Cygwin is OK too) +and controls the recording and playback of the terminal, +see tter -? for more. The baudrate is current default at 38400 + +/uzi/src/kernel/uzi + +Here are the changes to the kernel regarding the testsystem. +Files: +testsystem.c +testsystem.h +touchscreen.c +touchscreen.h +devno.h + + +The testsystem is hardcoded to record/playback on Serial 3 + +The kernel currently comes alive with the testsystem enabled. This +is for now hardcoded and will be changed in the future to be enabled +or disabled at will. + +This means that currently all device output is redirected to Serial 3 +out and if "tter -r" is listening, is recorded. The recorded data is +tagged with the device id (UZI minor device number) of its source. +Format: ESC + +Playback with "tter -p" will redirect the input received on Serial 3 +as if received from the devices concerned. + +Commands currently supported via Serial 3 input: +ESC R Toggles RTC of terminal between internal source (defaulr) or + external source +ESC r Toggles on/off internal source RTC to be routed to Serial 3 + output in order to be recorded + +Note that ESC in the to be recorded data stream is always escaped +(ESC becomes ESC ESC) + +Known problems: +- on the keyboard of the hyperterminal causes an interrupt + interference with the testsystem_rx_handler on Serial 3 input. Symptom: + hyperterminal shows: testsystem_rx_handler: ERROR port = .., c = .. +- The testsystem is quite slow during playback. One of the reasons is + that each byte during recording is taggged with the device id, thus + causes the amount of data to be processed to be trippled. The reason + this is that "remembering" the currently active device and tag the + data only when it changes, causes conflicts between multiple interrupts + happening at the same time. In fact some mutex needs to be used + to protect critical data in testsystem_rx_hook. This will be implemented + in the next release. + diff --git a/src/avr/tsv3.lst b/src/avr/tsv3.lst new file mode 100644 index 00000000..4e99835f --- /dev/null +++ b/src/avr/tsv3.lst @@ -0,0 +1,5765 @@ +Toms AVR macro assembler version 1.18 (May 9 2003) +Copyright (C) 2000 - Tom Mortensen +E-mail: tom@tavrasm.org WWW: http://www.tavrasm.org + ++------------------+-----------------------------------------------------------+ +| Value | Text | +|------------------|-----------------------------------------------------------| +| | ; TSV3.ASM +| | +| | ; 19FEB02 REVISE FOR GREATER CONTRAST VOLTAGE FOR ALBERT'S 2ND BATCH -15V +| | ; 01FEB02 REVISE FOR 7.3728MHz XTAL (SEE !!!) +| | +| | ; 22JUN01 REVISE -VE VOLTAGE GENERATION +| | ; TO WORK WITH REV E PARTS +| | ; ;!! INDICATES CHANGES +| | +| | ;** INDICATES CHANGES FOR LOW VCC AVR MOD +| | +| | .INCLUDE "8535DEF.INC" +| | ;*************************************************************************** +| | ;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y +| | ;* +| | ;* Number :AVR000 +| | ;* File Name :"8535def.inc" +| | ;* Title :Register/Bit Definitions for the AT90S8535 +| | ;* Date :98.05.22 +| | ;* Version :1.22 +| | ;* Support telephone :+47 72 88 43 88 (ATMEL Norway) +| | ;* Support fax :+47 72 88 43 99 (ATMEL Norway) +| | ;* Support E-mail :avr@atmel.com +| | ;* Target MCU :AT90S8535 +| | ;* +| | ;* DESCRIPTION +| | ;* When including this file in the assembly program file, all I/O register +| | ;* names and I/O register bit names appearing in the data book can be used. +| | ;* In addition, the six registers forming the three data pointers X, Y and +| | ;* Z have been assigned names XL - ZH. Highest RAM address for Internal +| | ;* SRAM is also defined +| | ;* +| | ;* The Register names are represented by their hexadecimal address. +| | ;* +| | ;* The Register Bit names are represented by their bit number (0-7). +| | ;* +| | ;* Please observe the difference in using the bit names with instructions +| | ;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" +| | ;* (skip if bit in register set/cleared). The following example illustrates +| | ;* this: +| | ;* +| | ;* in r16,PORTB ;read PORTB latch +| | ;* sbr r16,(1<>6) +| | STS XPAGE,YH +| | RCALL ADRYP ; AND SET XPAGE +| | LDI YH,HIGH(@0<<2) +| | LDI YL,(LOW(@0) & $3F) | (HIGH(@0) & $C0) +| | .endMACRO +| | +| | .MACRO ADRL +| | OUT PORTC,@0 ; SET L ADDRESS FOR DSPRAM +| | .endMACRO +| | +| | .MACRO ADRH +| | OUT PORTA,@0 ; SET H ADDRESS FOR DSPRAM +| | SBI PORTB,3 +| | CBI PORTB,3 +| | STS LATCH11_SAV,@0 ; IS THIS NEEDED? +| | .endMACRO +| | +| | ;.MACRO ADRINC +| | ; INC @0 ; INC LOW ORDER DSPRAM ADDRESS +| | ; SBRC @0,6 ; ROLLS OVER IF BIT 6 SET +| | ;; RCALL INCADRY ; INC HIGH ORDER DSPRAM ADDRESS +| | ;.ENDMACRO ; (RCALL IS IN MAINLINE CODE) +| | +| | .MACRO A0_A13 +| | MOV R19,@0 +| | ANDI R19,$3F +| | OUT PORTC,R19 +| | +| | MOV R19,@1 +| | LSL R19 +| | LSL R19 +| | BST @0,7 ; A7 +| | BLD R19,1 +| | BST @0,6 ; A6 +| | BLD R19,0 +| | OUT PORTA,R19 +| | CLI +| | SBI PORTB,3 +| | CBI PORTB,3 +| | SEI +| | STS LATCH11_SAV,R19 +| | .endMACRO +| | +| | .MACRO A14_A18 +| | CLI +| | LDS R19,LATCH10_SAV ; AND THIS +| | EOR R19,@0 +| | ANDI R19,$E0 +| | EOR R19,@0 +| | OUT PORTA,R19 +| | SBI PORTB,4 +| | CBI PORTB,4 +| | SEI +| | STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| | .endMACRO +| | +| | .MACRO A0_A15 +| | PUSH R19 +| | +| | MOV R19,@0 +| | ANDI R19,$3F +| | OUT PORTC,R19 +| | +| | MOV R19,@1 +| | LSL R19 +| | LSL R19 +| | BST @0,7 ; A7 +| | BLD R19,1 +| | BST @0,6 ; A6 +| | BLD R19,0 +| | OUT PORTA,R19 +| | SBI PORTB,3 +| | CBI PORTB,3 +| | STS LATCH11_SAV,@1 +| | +| | LDS R19,LATCH10_SAV ; AND THIS +| | BST @1,7 ; A15 +| | BLD R19,1 +| | BST @1,6 ; A14 +| | BLD R19,0 +| | OUT PORTA,R19 +| | SBI PORTB,4 +| | CBI PORTB,4 +| | STS LATCH10_SAV,R19 +| | +| | POP R19 +| | .endMACRO +| | +| | .MACRO RAMWR +| | OUT PORTA,@0 +| | CLI +| | CBI PORTB,1 +| | CBI PORTB,0 +| | NOP +| | SBI PORTB,0 +| | SEI +| | SBI PORTB,1 +| | .endMACRO +| | +| | .MACRO RAMWRX +| | OUT PORTA,@0 +| | CBI PORTB,1 +| | CBI PORTB,0 +| | NOP +| | SBI PORTB,0 +| | SBI PORTB,1 +| | .endMACRO +| | +| | .MACRO RAMRXW +| | CLR @1 +| | OUT DDRA,@1 +| | CLI +| | CBI PORTB,0 +| | NOP +| | CBI PORTB,1 +| | IN @1,PINA +| | EOR @0,@1 +| | SBRC FLAGS,0 +| | OR @0,@1 +| | LDI @1,$FF +| | OUT DDRA,@1 +| | OUT PORTA,@0 +| | NOP +| | SBI PORTB,0 +| | SEI +| | SBI PORTB,1 +| | .endMACRO +| | +| | .MACRO RAMRD +| | CLR F +| | OUT DDRA,F ; PORTA INPUT +| | CLI +| | CBI PORTB,0 ; CS_ON +| | NOP +| | SBI PORTB,0 ; CS_OFF +| | IN @0,PINA ; READ DATA +| | SEI +| | LDI F,$FF +| | OUT DDRA,F ; PORTA OUTPUT +| | .endMACRO +| | +| | .MACRO RAMRDX +| | CLR F +| | OUT DDRA,F ; PORTA INPUT +| | CBI PORTB,0 ; CS_ON +| | NOP +| | SBI PORTB,0 ; CS_OFF +| | IN @0,PINA ; READ DATA +| | LDI F,$FF +| | OUT DDRA,F ; PORTA OUTPUT +| | .endMACRO +| | +| | .MACRO PHOTO +| | OUT PORTA,@0 ; SELECT PHOTODIODE CHANNEL +| | LDS @0,LATCH12_SAV +| | OUT PORTC,@0 +| | SBI PORTC,0 +| | SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| | CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | CBI PORTC,0 +| | SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| | CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | .endMACRO +| | +| | .MACRO LED +| | OUT PORTA,@0 ; MAIN LED DRIVE PORT +| | LDS @0,LATCH12_SAV +| | OUT PORTC,@0 +| | SBI PORTC,1 +| | SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| | CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | CBI PORTC,1 +| | SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| | CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | .endMACRO +| | +| | .MACRO LEDLO +| | LDS D,LATCH12_SAV ; DRIVE LED COMMON LO +| | CBR D,1<<4 +| | OUT PORTC,D +| | SBI PORTB,2 +| | CBI PORTB,2 +| | STS LATCH12_SAV,D +| | .endMACRO +| | +| | .MACRO LEDHI +| | LDS D,LATCH12_SAV ; DRIVE LED COMMON HI +| | SBR D,1<<4 +| | OUT PORTC,D +| | SBI PORTB,2 +| | CBI PORTB,2 +| | STS LATCH12_SAV,D +| | .endMACRO +| | +| | .MACRO SPKHI +| | LDS D,LATCH12_SAV ; DRIVE SPEAKER HI +| | SBR D,1<<3 +| | CBR D,1<<2 +| | OUT PORTC,D +| | SBI PORTB,2 +| | CBI PORTB,2 +| | STS LATCH12_SAV,D +| | .endMACRO +| | +| | .MACRO SPKLO +| | LDS D,LATCH12_SAV ; DRIVE SPEAKER LO +| | CBR D,1<<3 +| | SBR D,1<<2 +| | OUT PORTC,D +| | SBI PORTB,2 +| | CBI PORTB,2 +| | STS LATCH12_SAV,D +| | .endMACRO +| | +| | .MACRO SPKOFF +| | LDS D,LATCH12_SAV ; DRIVE SPEAKER OFF +| | CBR D,1<<3 +| | CBR D,1<<2 +| | OUT PORTC,D +| | SBI PORTB,2 +| | CBI PORTB,2 +| | STS LATCH12_SAV,D +| | .endMACRO +| | +| | .EQU T1_INIT =-818 ;$FB35 +| | .EQU T1_FULL_SCALE =-716 ;50.0HZ ; SETS LCD FRAME RATE TEMPORARY TO STOP FLIKER +| | ;.EQU T1_FULL_SCALE =-651 ;53.5HZ ; SETS LCD FRAME RATE +| | ;.EQU T1_FULL_SCALE =-600 ;54.8HZ ; SETS LCD FRAME RATE +| | +| | .EQU CONTRAST_LONG =-340 ; ALL LONG PULSES IS FULLY DARK (DON'T SATURATE) +| | ;.EQU CONTRAST_LONG =-250 ; ALL LONG PULSES IS FULLY DARK (DON'T SATURATE) +| | .EQU CONTRAST_MID =-200 +| | .EQU CONTRAST_SHORT = -43 ; ALL SHORT PULSES IS FULLY LIGHT +| | +| | .EQU VCC_NOMINAL =-552 ;$FCC4 +| | +| | .EQU VEE_MIN =-710 ; MIN IS FULLY DARK +| | .EQU VEE_INIT =-340 +| | .EQU VEE_MAX = -43 ; MAX IS FULLY LIGHT +| | +| | ; WHEN VCC = $FCC4 FOR 6.0V: +| | .EQU CONTRAST_MIN =-710 ; MIN IS FULLY DARK +| | .EQU CONTRAST_INIT =-640 +| | .EQU CONTRAST_MAX =-580 ; MAX IS FULLY LIGHT +| | +| | ; GENEROUS LIMITS FOR EXPERIMENTATION: +| | ;.EQU CONTRAST_MIN =$FC80 ; MIN IS FULLY DARK +| | ;.EQU CONTRAST_MAX =$FF80 ; MAX IS FULLY LIGHT +| | ;.EQU CONTRAST_INIT =$FE10 +| | +| | .EQU CONTRAST_STEP =4 +| | +| | .EQU DISP_DSPRAM =$60000 ; DISPLAY BUFFER +| | .EQU DRAW_DSPRAM =$62000 ; DRAWING BUFFER +| | .EQU CHSET_DSPRAM =$64000 ; START OF CHARACTER SETS +| | .EQU RTN_DSPRAM =$6E000 ; KEYBOARD RETURN CODE TABLE +| | .EQU DISPLAY_LINES =$80 +| | .EQU CHARACTER_SETS =10 +| | .EQU RAM =$60 ; START OF SRAM +| | .EQU TX_SIZE =$20 +| | .EQU RX_SIZE =$80 +| | +| | .EQU TK_LED_PULSE =14 ; 18US ?? CLOCKS OF /8 +| | .EQU TK_DELAY_0 =19 ; ??US DELAY TILL START OF LED PULSE (/8) +| | ;.EQU TK_DELAY_0 =$20 ;$38 ; ??US DELAY TILL START OF LED PULSE +| | ;.EQU TK_DELAY_0 =$25 ;$38 ; 54US ?? CLOCKS OF /8 +| | .EQU TK_DELAY_1 =$10 ;$28 ; CLOCKS OF /64, CHANNEL SELECT DELAY +| | .EQU TK_DELAY_2 =$00 ; CLOCKS OF /1024, VDD POWER ON DELAY +| | ; $D0 IS TOO SHORT, $E0 SEEMS TO WORK +| | +| | .EQU API_ADDRESS =$02 ; TOUCHSCREEN ADDRESS +| | .EQU API_TIMEOUT =33 ;50 ; 50 * 100 uSEC = APPROX 5mSEC +| | .EQU API_RATE_SLOW =$5F ;$8F ; DIVISOR FOR 4800 BPS +| | .EQU API_RATE_FAST =$03 ;$05 ; DIVISOR FOR 115200 BPS +| | .EQU EEWR_ENABLE =5 ; SET BY FG WHILE OK TO WRITE EEPROM +| | .EQU APISIZE =6 ; SET IF EXPECTING API DATA SIZE CMD +| | .EQU APIDATA =7 ; SET IF TRANSFERRING API DATA TX/RX +| | +| | .DEF PATTERN =R0 ; FOR HALFTONE_RECT ROUTINE +| | .DEF SR =R1 +| | .DEF RX_PTR =R2 +| | .DEF RX_COUNT =R3 +| | .DEF TX_PTR =R4 +| | .DEF TX_COUNT =R5 +| | .DEF API_REMAIN =R6 +| | .DEF API_WATCHDOG =R12 +| | +| | .DEF Y_SIZE =R7 +| | .DEF X_SIZE =R8 +| | .DEF LINE_CNT =R9 +| | .DEF XBYTE =R10 +| | .DEF FLAGS =R11 +| | ; FLAGS BIT 0 0=XOR MODE 1=OR MODE +| | ; BIT 1 0=FILL RECT 1=CLEAR RECT +| | ; BIT 2 0=OPEN ZEROS 1=CROSSED ZEROS +| | ; BIT 3 0=TEXT MODE 1=GRAPHICS MODE +| | ; BIT 4 0=FIXED 1=PROPORTIONAL +| | ; BIT 5 0=DISPLAY DISABLED 1=DISPLAY ENABLED +| | ; BIT 6 0=TURNED OFF VIA TRANSIT SW 1=TURNED OFF VIA COMMAND +| | ; BIT 7 USED TO CONTROL LED PULSING FOR TOUCHSCREEN EVERY 2ND CYCLE +| | .DEF SCAN =R13 +| | .DEF API_STATE =R14 +| | +| | .DEF W =R15 +| | .DEF F =R16 ; FG +| | .DEF A =R17 ; FG +| | .DEF B =R18 ; FG +| | .DEF C =R20 ; INT +| | .DEF D =R21 ; INT +| | .DEF E =R25 ; INT +| | ;.DEF ? =R19 ; INT +| | +| | .DEF XPIXEL =R22 +| | .DEF CURSORX =R23 +| | .DEF CURSORY =R24 +| | +| | ; for AVRA / TAVRASM: +| | ;.def XL =R26 +| | ;.def XH =R27 +| | ;.def YL =R28 +| | ;.def YH =R29 +| | ;.def ZL =R30 +| | ;.def ZH =R31 +| | +| | .DSEG +| | .ORG RAM +| | +| 000060 -DATA- | TX_BUF: .BYTE TX_SIZE +| 000080 -DATA- | RX_BUF: .BYTE RX_SIZE +| | +| 000100 -DATA- | XBYTE_SAV: .BYTE 1 ; 063 +| 000101 -DATA- | X_SIZE_SAV: .BYTE 1 ; 066 +| 000102 -DATA- | XPIXEL_SAV: .BYTE 1 ; 067 +| 000103 -DATA- | PTR: .BYTE 3 ; 068 +| 000106 -DATA- | PORT_STATE: .BYTE 1 ; 0FA +| 000107 -DATA- | ACTIVE_ZONE: .BYTE 1 ; 0FB +| | +| 000108 -DATA- | TMPL: .BYTE 1 ; 0FE +| 000109 -DATA- | TMPH: .BYTE 1 ; 0FF +| 00010A -DATA- | VCCL: .BYTE 1 ; 100 +| 00010B -DATA- | VCCH: .BYTE 1 ; 101 +| 00010C -DATA- | VEEL: .BYTE 1 ; 102 +| 00010D -DATA- | VEEH: .BYTE 1 ; 103 +| 00010E -DATA- | CONTRASTL: .BYTE 1 ; 104 +| 00010F -DATA- | CONTRASTH: .BYTE 1 ; 105 +| | +| 000110 -DATA- | BUZZ_TIME: .BYTE 1 ; 10B +| 000111 -DATA- | BUZZ_PERIOD: .BYTE 1 +| 000112 -DATA- | TEMP: .BYTE 1 ; 10C +| | +| 000113 -DATA- | DEBOUNCE: .BYTE 1 +| 000114 -DATA- | ROW_INDEX: .BYTE 1 +| 000115 -DATA- | ROW_BITMAP: .BYTE 2 +| 000117 -DATA- | LATCH10_SAV: .BYTE 1 +| 000118 -DATA- | LATCH11_SAV: .BYTE 1 +| 000119 -DATA- | LATCH12_SAV: .BYTE 1 +| 00011A -DATA- | XPAGE: .BYTE 1 +| 00011B -DATA- | ROWBUF: .BYTE 32 ; BUFFER FOR DSPRAM BLOCK READ/WRITE +| | +| 00013B -DATA- | LINE_COUNT: .BYTE 1 ; CURRENT POSITION TO TEST LINE_FLAGS +| 00013C -DATA- | LINE_FLAGS: .BYTE 16 ; BUFFER 1 BIT PER LINE FOR COPY REQUIRED +| | +| 00014C -DATA- | CLOCKING_PTR: .BYTE 2 +| | +| 00014E -DATA- | CHAR_X: .BYTE 1 +| 00014F -DATA- | CHAR_Y: .BYTE 1 +| 000150 -DATA- | CHAR_PTR: .BYTE 2 +| | +| 000152 -DATA- | RECT_X: .BYTE 1 +| 000153 -DATA- | RECT_Y: .BYTE 1 +| 000154 -DATA- | RECT_XX: .BYTE 1 +| 000155 -DATA- | RECT_YY: .BYTE 1 +| | +| 000156 -DATA- | RECTNC_X: .BYTE 1 +| 000157 -DATA- | RECTNC_Y: .BYTE 1 +| 000158 -DATA- | RECTNC_XX: .BYTE 1 +| 000159 -DATA- | RECTNC_YY: .BYTE 1 +| | +| 00015A -DATA- | TOUCH_KEY: .BYTE 1 +| 00015B -DATA- | TOUCH_X: .BYTE 1 +| 00015C -DATA- | TOUCH_Y: .BYTE 1 +| 00015D -DATA- | TOUCH_XX: .BYTE 1 +| 00015E -DATA- | TOUCH_YY: .BYTE 1 +| | +| 00015F -DATA- | TIME_HSEC_64K: .BYTE 1 +| 000160 -DATA- | TIME_HSEC_256: .BYTE 1 +| 000161 -DATA- | TIME_HSEC: .BYTE 1 +| 000162 -DATA- | TIME_SECOND: .BYTE 1 +| 000163 -DATA- | TIME_MINUTE: .BYTE 1 +| 000164 -DATA- | TIME_HOUR: .BYTE 1 +| 000165 -DATA- | DATE_DAY: .BYTE 1 +| 000166 -DATA- | DATE_MONTH: .BYTE 1 +| 000167 -DATA- | DATE_YEAR: .BYTE 1 +| | +| 000168 -DATA- | SCAN_STATE: .BYTE 1 +| 000169 -DATA- | LATCH5_SAV: .BYTE 1 +| 00016A -DATA- | TURNON_COUNT: .BYTE 1 +| 00016B -DATA- | BREAK_COUNT: .BYTE 1 +| | +| 00016C -DATA- | CURSORX_SAVE: .BYTE 1 +| 00016D -DATA- | CURSORY_SAVE: .BYTE 1 +| 00016E -DATA- | FLAGS_SAVE: .BYTE 1 +| 00016F -DATA- | PTR_SAVE: .BYTE 3 +| | +| 000172 -DATA- | SCROLL_COUNT: .BYTE 1 +| 000173 -DATA- | SCROLL_X: .BYTE 1 +| 000174 -DATA- | SCROLL_Y: .BYTE 1 +| 000175 -DATA- | SCROLL_XX: .BYTE 1 +| 000176 -DATA- | SCROLL_YY: .BYTE 1 +| | +| | .ESEG +| | .ORG $000 +| | +| 000000 00 EEPROM | .DB $00,$00 ; DON'T USE ADDR $000 +| 000001 00 EEPROM | +| 000002 00 EEPROM | EE_CONTRAST: .DB $00,$00 ; RELY ON CONTRAST_INIT TO INITIALISE +| 000003 00 EEPROM | +| | +| | .CSEG +| | .ORG $0000 +| | +| 000000 C00D | RJMP RESET_ENTRY +| 000001 C606 | RJMP GO_EXT_INT0 +| 000002 C606 | RJMP GO_EXT_INT1 +| 000003 9518 | RETI ; TIM2_CMP +| 000004 C605 | RJMP GO_TIM2_OVF ; TIM2_OVF +| 000005 9518 | RETI ; TIM1_CAPT +| 000006 9518 | RETI ; TIM1_COMPA +| 000007 9518 | RETI ; TIM1_COMPB +| 000008 C602 | RJMP GO_T1_OVERFLOW +| 000009 C602 | RJMP GO_T0_OVERFLOW +| 00000A 9518 | RETI ; SPI_STC +| 00000B > INT_HANDLERS ; API BUS +| 00000B C6ED > RJMP RX_COMPLETE ; UART RX COMPLETE HANDLER +| 00000C C6D7 > RJMP TX_EMPTY ; UART DATA REGISTER EMPTY HANDLER +| 00000D C72E > RJMP TX_COMPLETE ; UART TX COMPLETE HANDLER +| | +| | RESET_ENTRY: +| 00000E E002 | LDI F,HIGH(RAMEND) ; INIT STACK POINTER +| 00000F BF0E | OUT SPH,F +| 000010 E50F | LDI F,LOW(RAMEND) +| 000011 BF0D | OUT SPL,F +| 000012 E810 | LDI A,$80 +| 000013 B918 | OUT ACSR,A ; POWER DOWN ANALOG COMPARATOR +| | +| 000014 95A8 | WDR ; RESET WATCHDOG +| 000015 E01F | LDI A,$0F ; ENABLE WATCHDOG WITH 3 SEC TIMEOUT +| 000016 BD11 | OUT WDTCR,A +| | +| 000017 E000 | LDI F,0 +| 000018 9300 015F | STS TIME_HSEC_64K,F +| 00001A 9300 0160 | STS TIME_HSEC_256,F +| 00001C 9300 0161 | STS TIME_HSEC,F +| 00001E 9300 0162 | STS TIME_SECOND,F +| 000020 9300 0163 | STS TIME_MINUTE,F +| 000022 9300 0164 | STS TIME_HOUR,F +| 000024 E001 | LDI F,1 +| 000025 9300 0165 | STS DATE_DAY,F +| 000027 9300 0166 | STS DATE_MONTH,F +| 000029 E104 | LDI F,20 +| 00002A 9300 0167 | STS DATE_YEAR,F +| | +| | RESTART_ENTRY: +| | ;**: +| 00002C E008 | LDI F,8 ; TIMER 2 CLOCKED BY 32 KHZ +| | ;** LDI F,0 ; TIMER 2 CLOCKED BY 11 MHZ +| 00002D BD02 | OUT ASSR,F +| | ;**: +| | ; MUST MATCH SET_TIME ROUTINE % +| 00002E E003 | LDI F,3 ; TIMER 2 DIVIDE BY 32 (4 HZ) +| | ;!! LDI F,$11 ; DIVIDE BY 2, TOGGLE OC2 (PIN 21) +| | ; (RTC DIAGNOSTIC) +| | ;** LDI F,6 ; TIMER 2 DIVIDE BY 256 +| 00002F BD05 | OUT TCCR2,F +| | ; % +| 000030 E400 | LDI F,$40 +| 000031 BF09 | OUT TIMSK,F ; TIMER 2 OVERFLOW INTERRUPTS ENABLED +| 000032 E000 | LDI F,$00 +| 000033 BF0B | OUT GIMSK,F +| | +| 000034 EB08 | LDI F,$B8 ; INIT_PORTS +| 000035 BB01 | OUT DDRD,F +| 000036 BB02 | OUT PORTD,F ; D2 = TRI-STATE, VSWT ON +| 000037 E10F | LDI F,$1F +| 000038 BB07 | OUT DDRB,F +| 000039 EF0F | LDI F,$FF +| 00003A BB0A | OUT DDRA,F +| 00003B BB04 | OUT DDRC,F +| | +| 00003C 2700 | CLR F +| 00003D BB0B | OUT PORTA,F +| | +| 00003E E003 | LDI F,$03 ; CS, WE HI, LEs ALL LO +| 00003F BB08 | OUT PORTB,F +| | +| 000040 E100 | LDI F,$10 ; LED COMMON OFF, SPEAKER OFF +| 000041 BB05 | OUT PORTC,F +| 000042 9AC2 | SBI PORTB,2 +| 000043 98C2 | CBI PORTB,2 +| 000044 9300 0119 | STS LATCH12_SAV,F +| | +| 000046 E200 | LDI F,$20 +| 000047 2EB0 | MOV FLAGS,F ; START WITH DISPLAY ENABLED +| | +| 000048 > INIT_API_BUS +| 000048 E51F > LDI A,API_RATE_SLOW ; 4800 BPS +| 000049 B919 > OUT UBRR,A ; SET UART RATE +| > +| 00004A E910 > LDI A,$90 ; ENABLE RX WITH INTERRUPTS +| 00004B B91A > OUT UCR,A +| > ;SBI UCR,TXEN ; TX ENABLE +| > +| 00004C 2444 > CLR TX_PTR +| 00004D 2455 > CLR TX_COUNT +| > +| 00004E 2422 > CLR RX_PTR +| 00004F 2433 > CLR RX_COUNT +| > +| 000050 24EE > CLR API_STATE +| 000051 2466 > CLR API_REMAIN +| 000052 24CC > CLR API_WATCHDOG +| | +| 000053 E158 | LDI D,$18 ; A18|A17|A16|A15|A14=11000 +| 000054 BB5B | OUT PORTA,D ; CL1=M=FLM=0 +| 000055 9AC4 | SBI PORTB,4 +| 000056 98C4 | CBI PORTB,4 +| 000057 9350 0117 | STS LATCH10_SAV,D +| | +| 000059 2755 | CLR D +| 00005A 9350 0118 | STS LATCH11_SAV,D +| 00005C 9350 013B | STS LINE_COUNT,D ; START UPDATE AT TOP OF SCREEN +| 00005E 9350 016A | STS TURNON_COUNT,D ; REDUNDANTLY REQUEST TURNON +| 000060 9350 016B | STS BREAK_COUNT,D ; SET LONGEST POSSIBLE BREAK TIMEOUT +| 000062 9350 0110 | STS BUZZ_TIME,D ; NOT BUZZING (SHORT BEEP COMES LATER) +| | +| 000064 24DD | CLR SCAN +| 000065 92D0 0114 | STS ROW_INDEX,SCAN +| 000067 92D0 0115 | STS ROW_BITMAP,SCAN +| 000069 92D0 0116 | STS ROW_BITMAP+1,SCAN +| | +| 00006B EF54 | LDI D,$F4 ; BIT 6 = 1 VDD ON, BIT 7 = 1 LCD ON +| 00006C 9350 0169 | STS LATCH5_SAV,D +| 00006E > PHOTO D +| 00006E BB5B > OUT PORTA,D ; SELECT PHOTODIODE CHANNEL +| 00006F 9150 0119 > LDS D,LATCH12_SAV +| 000071 BB55 > OUT PORTC,D +| 000072 9AA8 > SBI PORTC,0 +| 000073 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000074 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000075 98A8 > CBI PORTC,0 +| 000076 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000077 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | +| | ; NEED THIS FOR RTC +| 000078 9478 | SEI ; ALLOW TIMER 2 INTERRUPTS ONLY +| | +| | ; INITIALISE ACTIVE KEYS +| | RTNCDE: ;LDIZ RTN_CODE ; POINT Z TO FLASH +| 000079 E0E2 | LDI ZL,LOW((RTN_CODE)*2) ; USE PRIOR TO LPM INSTRUCTION +| 00007A E1F9 | LDI ZH,HIGH((RTN_CODE)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| | ;LDIX RTN_CODE_END-RTN_CODE ; BYTE COUNTER +| 00007B EEA2 | LDI XL,LOW((RTN_CODE_END-RTN_CODE)*2) ; USE AS BYTE COUNTER +| 00007C E0B0 | LDI XH,HIGH((RTN_CODE_END-RTN_CODE)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 00007D > LDIYADR RTN_DSPRAM ; POINT Y TO DSPRAM & SET XPAGE +| 00007D E1DB > LDI YH,HIGH(RTN_DSPRAM>>6) +| 00007E 93D0 011A > STS XPAGE,YH +| 000080 D108 > RCALL ADRYP ; AND SET XPAGE +| 000081 E8D0 > LDI YH,HIGH(RTN_DSPRAM<<2) +| 000082 ECC0 > LDI YL,(LOW(RTN_DSPRAM) & $3F) | (HIGH(RTN_DSPRAM) & $C0) +| 000083 > CDE0: ADRH YH ; SET ADDRESS H FOR DSPRAM +| 000083 BBDB > OUT PORTA,YH ; SET H ADDRESS FOR DSPRAM +| 000084 9AC3 > SBI PORTB,3 +| 000085 98C3 > CBI PORTB,3 +| 000086 93D0 0118 > STS LATCH11_SAV,YH ; IS THIS NEEDED? +| 000088 > CDE1: ADRL YL ; SET ADDRESS L FOR DSPRAM +| 000088 BBC5 > OUT PORTC,YL ; SET L ADDRESS FOR DSPRAM +| 000089 95C8 | LPM ; GET DATA FROM FLASH +| 00008A 2400 | CLR R0 ; TEMPORARY CLEAR KB +| 00008B > RAMWRX R0 ; WRITE DATA TO DSPRAM +| 00008B BA0B > OUT PORTA,R0 +| 00008C 98C1 > CBI PORTB,1 +| 00008D 98C0 > CBI PORTB,0 +| 00008E 0000 > NOP +| 00008F 9AC0 > SBI PORTB,0 +| 000090 9AC1 > SBI PORTB,1 +| 000091 95AA | DEC XL +| 000092 F041 | BREQ RTNCDE_END ; CHECK IF ALL DONE +| 000093 9631 | ADIW ZL,$01 ; INC FLASH ADDRESS +| 000094 95C3 | INC YL ; INC ADDRESS L FOR DSPRAM +| 000095 2F1C | MOV A,YL ; +| 000096 731F | ANDI A,$3F ;YL,$3F +| 000097 F781 | BRNE CDE1 +| 000098 54C0 | SUBI YL,$40 ; +| 000099 95D3 | INC YH ; INC ADDRESS H (ON L ROLLOVER) +| 00009A CFE8 | RJMP CDE0 +| | RTNCDE_END: +| | +| | ; INITIALISE DEFAULT CHARACTER SET +| 00009B E310 | LDI A,'0' +| 00009C D2D9 | RCALL CHARACTER_SET_FIND ; B:Y -> CHARACTER SET +| 00009D 93CF | PUSH YL +| 00009E 93DF | PUSH YH +| 00009F D2E4 | RCALL CHARACTER_SET_CRC ; Y = CALCULATED CRC WORD +| 0000A0 91BF | POP XH +| 0000A1 91AF | POP XL +| | +| 0000A2 D55F | RCALL GO_READ_BYTE +| 0000A3 2F21 | MOV B,A +| 0000A4 2F1D | MOV A,YH +| 0000A5 9512 | SWAP A +| 0000A6 D333 | RCALL HEX_NIBBLE +| 0000A7 1712 | CP A,B +| 0000A8 F4B1 | BRNE CHARACTER_SET_INIT +| 0000A9 9611 | ADIW XL,1 +| | +| 0000AA D557 | RCALL GO_READ_BYTE +| 0000AB 2F21 | MOV B,A +| 0000AC 2F1D | MOV A,YH +| 0000AD D32C | RCALL HEX_NIBBLE +| 0000AE 1712 | CP A,B +| 0000AF F479 | BRNE CHARACTER_SET_INIT +| 0000B0 9611 | ADIW XL,1 +| | +| 0000B1 D550 | RCALL GO_READ_BYTE +| 0000B2 2F21 | MOV B,A +| 0000B3 2F1C | MOV A,YL +| 0000B4 9512 | SWAP A +| 0000B5 D324 | RCALL HEX_NIBBLE +| 0000B6 1712 | CP A,B +| 0000B7 F439 | BRNE CHARACTER_SET_INIT +| 0000B8 9611 | ADIW XL,1 +| | +| 0000B9 D548 | RCALL GO_READ_BYTE +| 0000BA 2F21 | MOV B,A +| 0000BB 2F1C | MOV A,YL +| 0000BC D31D | RCALL HEX_NIBBLE +| 0000BD 1712 | CP A,B +| 0000BE F109 | BREQ CHARACTER_SET_INIT_DONE +| | +| | CHARACTER_SET_INIT: +| | ;LDIZ CHSET00 ; POINT Z TO FLASH +| 0000BF EEE4 | LDI ZL,LOW((CHSET00)*2) ; USE PRIOR TO LPM INSTRUCTION +| 0000C0 E1F9 | LDI ZH,HIGH((CHSET00)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| | ;LDIX CHSET00_END-CHSET00 ; BYTE COUNTER +| 0000C1 E6A6 | LDI XL,LOW((CHSET00_END-CHSET00)*2) ; USE AS BYTE COUNTER +| 0000C2 E0B3 | LDI XH,HIGH((CHSET00_END-CHSET00)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 0000C3 > LDIYADR CHSET_DSPRAM ; POINT Y TO DSPRAM & SET XPAGE +| 0000C3 E1D9 > LDI YH,HIGH(CHSET_DSPRAM>>6) +| 0000C4 93D0 011A > STS XPAGE,YH +| 0000C6 D0C2 > RCALL ADRYP ; AND SET XPAGE +| 0000C7 E0D0 > LDI YH,HIGH(CHSET_DSPRAM<<2) +| 0000C8 E4C0 > LDI YL,(LOW(CHSET_DSPRAM) & $3F) | (HIGH(CHSET_DSPRAM) & $C0) +| 0000C9 > CHST0: ADRH YH ; SET ADDRESS H FOR DSPRAM +| 0000C9 BBDB > OUT PORTA,YH ; SET H ADDRESS FOR DSPRAM +| 0000CA 9AC3 > SBI PORTB,3 +| 0000CB 98C3 > CBI PORTB,3 +| 0000CC 93D0 0118 > STS LATCH11_SAV,YH ; IS THIS NEEDED? +| 0000CE > CHST1: ADRL YL ; SET ADDRESS L FOR DSPRAM +| 0000CE BBC5 > OUT PORTC,YL ; SET L ADDRESS FOR DSPRAM +| 0000CF 95C8 | LPM ; GET DATA FROM FLASH +| 0000D0 > RAMWRX R0 ; WRITE DATA TO DSPRAM +| 0000D0 BA0B > OUT PORTA,R0 +| 0000D1 98C1 > CBI PORTB,1 +| 0000D2 98C0 > CBI PORTB,0 +| 0000D3 0000 > NOP +| 0000D4 9AC0 > SBI PORTB,0 +| 0000D5 9AC1 > SBI PORTB,1 +| 0000D6 9711 | SBIW XL,1 +| 0000D7 F041 | BREQ CHARACTER_SET_INIT_DONE ; CHECK IF ALL DONE +| 0000D8 9631 | ADIW ZL,$01 ; INC FLASH ADDRESS +| 0000D9 95C3 | INC YL ; INC ADDRESS L FOR DSPRAM +| 0000DA 2F1C | MOV A,YL ; +| 0000DB 731F | ANDI A,$3F ;YL,$3F +| 0000DC F789 | BRNE CHST1 +| 0000DD 54C0 | SUBI YL,$40 ; +| 0000DE 95D3 | INC YH ; INC ADDRESS H (ON L ROLLOVER) +| 0000DF CFE9 | RJMP CHST0 +| | +| | CHARACTER_SET_INIT_DONE: +| 0000E0 E120 | LDI B,LOW(CHSET_DSPRAM+$10) ; SET POINTER TO HEADER +| 0000E1 9320 0103 | STS PTR,B +| 0000E3 E420 | LDI B,HIGH(CHSET_DSPRAM+$10) ;<<2 +| 0000E4 9320 0104 | STS PTR+1,B +| 0000E6 E129 | LDI B,HIGH((CHSET_DSPRAM+$10)>>6) +| 0000E7 9320 0105 | STS PTR+2,B +| | +| | ; CLEAR REFRESH BUFFER TO AVOID A BRIEF FLICKER +| 0000E9 E0C0 | LDI YL,LOW(DRAW_DSPRAM) +| 0000EA E2D0 | LDI YH,HIGH(DRAW_DSPRAM) +| 0000EB E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 0000EC D518 | RCALL GO_SELECT_XPAGE +| | +| 0000ED E820 | LDI B,DISPLAY_LINES ; B = LINES TO CLEAR +| | +| | CLEAR_REFRESH: +| 0000EE 932F | PUSH B +| 0000EF 93CF | PUSH YL +| 0000F0 93DF | PUSH YH +| | +| 0000F1 E220 | LDI B,32 +| 0000F2 D511 | RCALL GO_CLEAR_BYTES ; 240 PIXELS, PLUS 16 FOR SAMSUNG +| | +| 0000F3 9626 | ADIW YL,6 +| 0000F4 E022 | LDI B,2 +| 0000F5 D50E | RCALL GO_CLEAR_BYTES ; REPEAT FINAL 16 PIXELS FOR HYUNDAI +| | +| 0000F6 91DF | POP YH +| 0000F7 91CF | POP YL +| 0000F8 912F | POP B +| 0000F9 5CC0 | SUBI YL,LOW(-$40) +| 0000FA 4FDF | SBCI YH,HIGH(-$40) +| | +| 0000FB 952A | DEC B +| 0000FC F789 | BRNE CLEAR_REFRESH +| | +| 0000FD D6B4 | RCALL CLEAR_DISPLAY ; CLEARS DISPLAY AND HOMES CURSOR +| | +| 0000FE E010 | LDI A,0 +| 0000FF 9310 0111 | STS BUZZ_PERIOD,A ; HIGHEST FREQUENCY +| 000101 E316 | LDI A,54 ;$40 +| 000102 9310 0110 | STS BUZZ_TIME,A ; SHORT BEEP ON STARTUP +| | +| 000104 E010 | LDI A,0 +| 000105 9310 0168 | STS SCAN_STATE,A ; START ON FIRST LED / PHOTODIODE PAIR +| | +| 000107 E010 | LDI A,0 +| 000108 9310 014C | STS CLOCKING_PTR,A +| 00010A 9310 014D | STS CLOCKING_PTR+1,A ; INITIALISE CURRENT LINE FOR CLOCKING +| | +| 00010C EF1E | LDI A,HIGH(VEE_INIT) +| 00010D 9310 010D | STS VEEH,A +| 00010F EA1C | LDI A,LOW(VEE_INIT) +| 000110 9310 010C | STS VEEL,A ; INIT MEASURED VEE +| | +| 000112 E022 | LDI B,EE_CONTRAST ; 20mar03 tavrasm *2 +| 000113 D220 | RCALL EE_READ +| 000114 7F1C | ANDI A,~(CONTRAST_STEP-1) +| 000115 9310 010E | STS CONTRASTL,A +| 000117 E023 | LDI B,EE_CONTRAST+1 ; 20mar03 tavrasm *2+1 +| 000118 D21B | RCALL EE_READ +| 000119 9310 010F | STS CONTRASTH,A +| | +| 00011B 9110 010E | LDS A,CONTRASTL +| 00011D 9120 010F | LDS B,CONTRASTH +| | +| 00011F 331A | CPI A,LOW(CONTRAST_MIN) +| 000120 EF0D | LDI F,HIGH(CONTRAST_MIN) +| 000121 0720 | CPC B,F +| 000122 F020 | BRLO CONTRAST_RESET +| | +| 000123 3B1C | CPI A,LOW(CONTRAST_MAX) +| 000124 EF0D | LDI F,HIGH(CONTRAST_MAX) +| 000125 0720 | CPC B,F +| 000126 F030 | BRLO CONTRAST_PRESERVE +| | +| | CONTRAST_RESET: +| 000127 EF1D | LDI A,HIGH(CONTRAST_INIT) +| 000128 9310 010F | STS CONTRASTH,A +| 00012A E810 | LDI A,LOW(CONTRAST_INIT) +| 00012B 9310 010E | STS CONTRASTL,A ; INIT REQUESTED CONTRAST +| | +| | CONTRAST_PRESERVE: +| 00012D EF1F | LDI A,HIGH(CONTRAST_MID) +| 00012E BD19 | OUT OCR1BH,A +| 00012F E318 | LDI A,LOW(CONTRAST_MID) +| 000130 BD18 | OUT OCR1BL,A ; INIT GENERATOR PULSE WIDTH +| | +| 000131 EF1C | LDI A,HIGH(T1_INIT) +| 000132 BD1D | OUT TCNT1H,A +| 000133 EC1E | LDI A,LOW(T1_INIT) +| 000134 BD1C | OUT TCNT1L,A +| | +| 000135 E510 | LDI A,$50 +| 000136 BD1F | OUT TCCR1A,A ; TIMER 1 TOGGLE ON COMPARE MATCH +| 000137 E011 | LDI A,$01 +| 000138 BD1E | OUT TCCR1B,A ; TIMER 1 RUNNING +| | +| 000139 E000 | LDI F,$00 +| 00013A BF03 | OUT TCCR0,F ; TIMER 0 NOT RUNNING YET +| | +| 00013B E005 | LDI F,$05 +| 00013C BF08 | OUT TIFR,F ; RESET TIMER 0, 1 INTERRUPT FLAGS +| 00013D E405 | LDI F,$45 +| 00013E BF09 | OUT TIMSK,F ; TURN ON TIMER 0, 1, 2 INTERRUPTS +| | +| 00013F E00A | LDI F,$0A +| 000140 BF05 | OUT MCUCR,F ; SET EXTERNAL INTERRUPT 0, 1 SENSE +| 000141 EC00 | LDI F,$C0 +| 000142 BF0A | OUT GIFR,F ; RESET EXTERNAL INTERRUPT 0, 1 FLAGS +| 000143 BF0B | OUT GIMSK,F ; TURN ON EXTERNAL INTERRUPT 0, 1 +| | +| | ;RCALL HELLO_DISPLAY ; SHOW EXAMPLE DISPLAY +| | +| | ;RCALL CLEAR_DISPLAY ; CLEARS DISPLAY AND HOMES CURSOR +| 000144 C29E | RJMP SAVE_ENTRY ; IN CASE STATE INADVERTENTLY RESTORED +| | +| | ; ----------------------------------------------------------------------------- +| | +| | SLEEP_ENTRY: +| 000145 E002 | LDI F,HIGH(RAMEND) ; INIT STACK POINTER +| 000146 BF0E | OUT SPH,F +| 000147 E50F | LDI F,LOW(RAMEND) +| 000148 BF0D | OUT SPL,F +| | +| 000149 E050 | LDI D,$00 +| 00014A BD5F | OUT TCCR1A,D ; DISCONNECT PWM FROM OC1A, OC1B +| | ;SBRS FLAGS,6 ; IF WE TURNED OFF VIA BREAK DETECT, +| 00014B BD5E | OUT TCCR1B,D ; STOP TIMER 1 ALTOGETHER +| | +| 00014C 9A94 | SBI PORTD,4 ; TURN TRANSISTOR OFF +| 00014D 9895 | CBI PORTD,5 ; DROP CL2 +| | +| 00014E 9150 0117 | LDS D,LATCH10_SAV +| 000150 7B5F | ANDI D,$BF ; DROP M +| 000151 BB5B | OUT PORTA,D +| 000152 9AC4 | SBI PORTB,4 +| 000153 98C4 | CBI PORTB,4 +| 000154 9350 0117 | STS LATCH10_SAV,D +| | +| 000156 E754 | LDI D,$74 ; BIT 6 = 1 VDD ON, BIT 7 = 0 LCD OFF +| 000157 FEB6 | SBRS FLAGS,6 ; IF WE TURNED OFF VIA BREAK DETECT, +| 000158 E354 | LDI D,$34 ; BIT 6 = 0 VDD OFF, BIT 7 = 0 LCD OFF +| 000159 9350 0169 | STS LATCH5_SAV,D +| 00015B > PHOTO D +| 00015B BB5B > OUT PORTA,D ; SELECT PHOTODIODE CHANNEL +| 00015C 9150 0119 > LDS D,LATCH12_SAV +| 00015E BB55 > OUT PORTC,D +| 00015F 9AA8 > SBI PORTC,0 +| 000160 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000161 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000162 98A8 > CBI PORTC,0 +| 000163 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000164 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | +| 000165 E451 | LDI D,$41 +| 000166 BF59 | OUT TIMSK,D ; DISABLE TIMER 1 INTERRUPTS +| | +| 000167 E050 | LDI D,0 +| 000168 BF53 | OUT TCCR0,D ; DISABLE TIMER 0 TEMPORARILY ONLY +| 000169 BF5B | OUT GIMSK,D ; DISABLE THERMISTOR INTERRUPTS +| | +| 00016A E004 | LDI F,4 +| 00016B 9300 016A | STS TURNON_COUNT,F ; .25 SEC TO BREAK, .75 SEC TO MAKE +| | +| 00016D > INIT_API_BUS ; RESET UART TO RECEIVE TURNON COMMAND +| 00016D E51F > LDI A,API_RATE_SLOW ; 4800 BPS +| 00016E B919 > OUT UBRR,A ; SET UART RATE +| > +| 00016F E910 > LDI A,$90 ; ENABLE RX WITH INTERRUPTS +| 000170 B91A > OUT UCR,A +| > ;SBI UCR,TXEN ; TX ENABLE +| > +| 000171 2444 > CLR TX_PTR +| 000172 2455 > CLR TX_COUNT +| > +| 000173 2422 > CLR RX_PTR +| 000174 2433 > CLR RX_COUNT +| > +| 000175 24EE > CLR API_STATE +| 000176 2466 > CLR API_REMAIN +| 000177 24CC > CLR API_WATCHDOG +| | +| | SLEEP_LOOP: +| 000178 94F8 | CLI +| 000179 B703 | IN F,TCCR0 +| 00017A 2300 | TST F +| 00017B E40A | LDI F,$4A ; SE=1 SM1:SM0=00 FOR IDLE MODE +| 00017C F411 | BRNE SLEEP_SETUP ; TIMER 0 RUNNING, STAY IN IDLE MODE +| 00017D 9B80 | SBIS PIND,0 ; BREAK OFF, UART ACTIVE, STAY IN IDLE +| 00017E E70A | LDI F,$7A ; SE=1 SM1:SM0=11 FOR POWER SAVE MODE +| | SLEEP_SETUP: +| 00017F BF05 | OUT MCUCR,F +| 000180 9478 | SEI +| 000181 9588 | SLEEP +| | +| | ; FORMERLY DONE IN TIMER 2 OVERFLOW INTERRUPT +| 000182 95A8 | WDR +| | +| 000183 9100 016A | LDS F,TURNON_COUNT +| 000185 2300 | TST F ; HAD TOUCHSCREEN ACTIVITY FOR TIMEOUT? +| | ;SBRS FLAGS,6 ; IF WE TURNED OFF VIA BREAK DETECT, +| | ;SBIS PIND,0 ; AND BREAK HAS DISAPPEARED, WAKE UP +| 000186 F789 | BRNE SLEEP_LOOP ; NO, GO BACK TO SLEEP +| | +| 000187 94F8 | CLI +| 000188 CEA3 | RJMP RESTART_ENTRY ; GO AND CLEAR DISPLAY ETC +| | +| | ; ----------------------------------------------------------------------------- +| | +| 000189 91D0 011A | ADRYP: LDS YH,XPAGE ; SET XPAGE ADDRESS FOR DSPRAM +| 00018B 91C0 0117 | LDS YL,LATCH10_SAV +| 00018D 7EC0 | ANDI YL,$E0 +| 00018E 2BDC | OR YH,YL +| 00018F BBDB | OUT PORTA,YH +| 000190 9AC4 | SBI PORTB,4 +| 000191 98C4 | CBI PORTB,4 +| 000192 93D0 0117 | STS LATCH10_SAV,YH +| 000194 9508 | RET +| | +| | ;INCADRY: +| | ; CLR YL +| | ; INC YH +| | ; BRNE INCRET +| | ; LDS YH,XPAGE +| | ; INC YH +| | ; ANDI YH,$1F +| | ; STS XPAGE,YH +| | ; CLR YH +| | ;INCRET: RET +| | +| | ; ----------------------------------------------------------------------------- +| | +| | ;HELLO_DISPLAY: +| | ; LDI A,0 +| | ; STS RECTNC_X,A +| | ; STS RECTNC_Y,A +| | ; STS RECTNC_XX,A +| | ; LDI A,$80 +| | ; STS RECTNC_YY,A +| | ; RCALL DRAW_RECTNC +| | ; +| | ; LDI A,16 +| | ; STS CHAR_X,A +| | ; STS CHAR_Y,A +| | ; LDI B,5 +| | ; LDI ZL,LOW(HELLO_MESSAGE*2) +| | ; LDI ZH,HIGH(HELLO_MESSAGE*2) +| | ; RCALL STRING_DRAW +| | ; +| | ; LDI A,240 +| | ; STS CHAR_X,A +| | ; LDI B,5 +| | ; LDI ZL,LOW(HELLO_MESSAGE*2) +| | ; LDI ZH,HIGH(HELLO_MESSAGE*2) +| | ; +| | ;STRING_RIGHT_JUST: +| | ; PUSH B +| | ; PUSH ZL +| | ; PUSH ZH +| | ; RCALL STRING_WIDTH +| | ; POP ZH +| | ; POP ZL +| | ; POP B +| | ; LDS A,CHAR_X +| | ; SUB A,R0 +| | ; STS CHAR_X,A +| | ; +| | ;STRING_DRAW: +| | ; PUSH B +| | ; LPM +| | ; MOV A,R0 +| | ; ADIW ZL,1 +| | ; PUSH ZL +| | ; PUSH ZH +| | ; RCALL FIND_CHAR +| | ; RCALL CHAR_WIDTH +| | ; PUSH R0 +| | ; RCALL DRAW_CHAR +| | ; POP R0 +| | ; POP ZH +| | ; POP ZL +| | ; LDS A,CHAR_X +| | ; ADD A,R0 +| | ; STS CHAR_X,A +| | ; POP B +| | ; DEC B +| | ; BRNE STRING_DRAW +| | ; RET +| | ; +| | ;STRING_WIDTH: +| | ; CLR R0 +| | ;STRING_WIDTH_LOOP: +| | ; PUSH B +| | ; PUSH R0 +| | ; LPM +| | ; MOV A,R0 +| | ; ADIW ZL,1 +| | ; PUSH ZL +| | ; PUSH ZH +| | ; RCALL FIND_CHAR +| | ; RCALL CHAR_WIDTH +| | ; POP ZH +| | ; POP ZL +| | ; POP A +| | ; ADD R0,A +| | ; POP B +| | ; DEC B +| | ; BRNE STRING_WIDTH_LOOP +| | ; RET +| | ; +| | ;HELLO_MESSAGE: .DB 'H','E','L','L','O',0 +| | +| | ; ----------------------------------------------------------------------------- +| | +| | MAIN_LOOP: +| 000195 9478 | SEI ; SHOULD BE BEFORE MAIN_LOOP +| | +| 000196 ED1F | LDI A,~(1< RJEQ BACK_SPACE +| 0001A3 F409 > BRNE LOCAL +| 0001A4 C107 > RJMP BACK_SPACE +| > LOCAL: +| | ;L0132: +| 0001A5 301D | CPI A,$0D +| 0001A6 > RJEQ CR +| 0001A6 F409 > BRNE LOCAL +| 0001A7 C11C > RJMP CR +| > LOCAL: +| | ;L0135: +| 0001A8 301A | CPI A,$0A +| 0001A9 F409 | BRNE TEST_BELL +| 0001AA C0C0 | RJMP LF +| | TEST_BELL: +| 0001AB 3017 | CPI A,7 +| 0001AC F741 | BRNE MAIN_LOOP +| | +| | REGULAR_CHAR: +| 0001AD FCB2 | SBRC FLAGS,2 ; CROSSED ZEROS ON? +| 0001AE C018 | RJMP L013B ; YES, DON'T BOTHER TESTING FOR ZERO +| 0001AF 3310 | CPI A,'0' +| 0001B0 F4B1 | BRNE L013B +| 0001B1 91C0 0103 | LDS YL,PTR +| 0001B3 91D0 0104 | LDS YH,PTR+1 +| 0001B5 9120 0105 | LDS B,PTR+2 +| 0001B7 5FCC | SUBI YL,LOW(-$204) +| 0001B8 4FDD | SBCI YH,HIGH(-$204) +| 0001B9 > A14_A18 B +| 0001B9 94F8 > CLI +| 0001BA 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 0001BC 2732 > EOR R19,B +| 0001BD 7E30 > ANDI R19,$E0 +| 0001BE 2732 > EOR R19,B +| 0001BF BB3B > OUT PORTA,R19 +| 0001C0 9AC4 > SBI PORTB,4 +| 0001C1 98C4 > CBI PORTB,4 +| 0001C2 9478 > SEI +| 0001C3 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 0001C5 D593 | RCALL LPMS +| 0001C6 2D10 | MOV A,R0 +| 0001C7 D2EC | L013B: RCALL DRAW_CHAR_TTY +| 0001C8 CFCC | RJMP MAIN_LOOP +| | +| | ESC_SEQUENCE: +| 0001C9 D2B4 | RCALL RX_WAIT +| 0001CA 311B | CPI A,$1B +| 0001CB F309 | BREQ REGULAR_CHAR +| 0001CC 321E | CPI A,'.' +| 0001CD > RJEQ CHARACTER_SET_DOWNLOAD +| 0001CD F409 > BRNE LOCAL +| 0001CE C17C > RJMP CHARACTER_SET_DOWNLOAD +| > LOCAL: +| 0001CF 321F | CPI A,'/' +| 0001D0 > RJEQ CROSSED_ZEROS +| 0001D0 F409 > BRNE LOCAL +| 0001D1 C052 > RJMP CROSSED_ZEROS +| > LOCAL: +| 0001D2 331F | CPI A,'?' +| 0001D3 > RJEQ CHARACTER_SET_QUERY +| 0001D3 F409 > BRNE LOCAL +| 0001D4 C191 > RJMP CHARACTER_SET_QUERY +| > LOCAL: +| 0001D5 3412 | CPI A,'B' +| 0001D6 > RJEQ BUZZER +| 0001D6 F409 > BRNE LOCAL +| 0001D7 C05E > RJMP BUZZER +| > LOCAL: +| 0001D8 3612 | CPI A,'b' +| 0001D9 > RJEQ BUZZ_AT_FREQ +| 0001D9 F409 > BRNE LOCAL +| 0001DA C05F > RJMP BUZZ_AT_FREQ +| > LOCAL: +| 0001DB 3413 | CPI A,'C' +| 0001DC > RJEQ CLEAR_RECTANGLE +| 0001DC F409 > BRNE LOCAL +| 0001DD C10B > RJMP CLEAR_RECTANGLE +| > LOCAL: +| 0001DE 3613 | CPI A,'c' +| 0001DF > RJEQ GET_CLEAR_FRAME_RECT_SIZE +| 0001DF F409 > BRNE LOCAL +| 0001E0 CCC4 > RJMP GET_CLEAR_FRAME_RECT_SIZE +| > LOCAL: +| 0001E1 3414 | CPI A,'D' +| 0001E2 > RJEQ DRAW_MODE +| 0001E2 F409 > BRNE LOCAL +| 0001E3 C0F2 > RJMP DRAW_MODE +| > LOCAL: +| 0001E4 3415 | CPI A,'E' +| 0001E5 > RJEQ ENABLE_CNTRL +| 0001E5 F409 > BRNE LOCAL +| 0001E6 C0DF > RJMP ENABLE_CNTRL +| > LOCAL: +| 0001E7 3416 | CPI A,'F' +| 0001E8 > RJEQ GET_FILLED_RECTNC_SIZE +| 0001E8 F409 > BRNE LOCAL +| 0001E9 C10F > RJMP GET_FILLED_RECTNC_SIZE +| > LOCAL: +| 0001EA 3616 | CPI A,'f' +| 0001EB > RJEQ GET_FRAME_RECT_SIZE +| 0001EB F409 > BRNE LOCAL +| 0001EC CCC4 > RJMP GET_FRAME_RECT_SIZE +| > LOCAL: +| 0001ED 3417 | CPI A,'G' +| 0001EE > RJEQ INTERPRET_MODE +| 0001EE F409 > BRNE LOCAL +| 0001EF C0A1 > RJMP INTERPRET_MODE +| > LOCAL: +| 0001F0 3418 | CPI A,'H' +| 0001F1 > RJEQ GET_HALFTONE_RECT_SIZE +| 0001F1 F409 > BRNE LOCAL +| 0001F2 CCD6 > RJMP GET_HALFTONE_RECT_SIZE +| > LOCAL: +| 0001F3 3618 | CPI A,'h' +| 0001F4 > RJEQ GET_CLEAR_HALFTONE_RECT_SIZE +| 0001F4 F409 > BRNE LOCAL +| 0001F5 CCC7 > RJMP GET_CLEAR_HALFTONE_RECT_SIZE +| > LOCAL: +| 0001F6 341B | CPI A,'K' +| 0001F7 > RJEQ CLR_DISP +| 0001F7 F409 > BRNE LOCAL +| 0001F8 C096 > RJMP CLR_DISP +| > LOCAL: +| 0001F9 341C | CPI A,'L' +| 0001FA > RJEQ GO_SCROLL_REGION +| 0001FA F409 > BRNE LOCAL +| 0001FB C40A > RJMP GO_SCROLL_REGION +| > LOCAL: +| 0001FC 341D | CPI A,'M' +| 0001FD > RJEQ MOSFET_CONTROL +| 0001FD F409 > BRNE LOCAL +| 0001FE C02E > RJMP MOSFET_CONTROL +| > LOCAL: +| 0001FF 341E | CPI A,'N' +| 000200 > RJEQ GET_RECTNC_SIZE +| 000200 F409 > BRNE LOCAL +| 000201 C103 > RJMP GET_RECTNC_SIZE +| > LOCAL: +| 000202 3510 | CPI A,'P' +| 000203 > RJEQ PROP_FIXED_MODE +| 000203 F409 > BRNE LOCAL +| 000204 C09A > RJMP PROP_FIXED_MODE +| > LOCAL: +| 000205 3512 | CPI A,'R' +| 000206 > RJEQ GET_RECT_SIZE +| 000206 F409 > BRNE LOCAL +| 000207 C0E3 > RJMP GET_RECT_SIZE +| > LOCAL: +| 000208 3513 | CPI A,'S' +| 000209 > RJEQ SET_CURSOR +| 000209 F409 > BRNE LOCAL +| 00020A C0D9 > RJMP SET_CURSOR +| > LOCAL: +| 00020B 3514 | CPI A,'T' +| 00020C > RJEQ SET_TIME +| 00020C F409 > BRNE LOCAL +| 00020D C040 > RJMP SET_TIME +| > LOCAL: +| 00020E 3515 | CPI A,'U' +| 00020F > RJEQ NULLSUB +| 00020F F409 > BRNE LOCAL +| 000210 C26B > RJMP NULLSUB +| > LOCAL: +| 000211 3516 | CPI A,'V' +| 000212 F419 | BRNE CONTRAST_CONTROL_SKIP +| 000213 E210 | LDI A,1< RJEQ NULLSUB +| 000217 F409 > BRNE LOCAL +| 000218 C263 > RJMP NULLSUB +| > LOCAL: +| 000219 3518 | CPI A,'X' +| 00021A > RJEQ SAVE_STATE +| 00021A F409 > BRNE LOCAL +| 00021B C1C4 > RJMP SAVE_STATE +| > LOCAL: +| 00021C 351A | CPI A,'Z' +| 00021D > RJEQ TOUCH_ZONE +| 00021D F409 > BRNE LOCAL +| 00021E C1EE > RJMP TOUCH_ZONE +| > LOCAL: +| 00021F 3310 | CPI A,'0' +| 000220 F010 | BRLO ESC_SEQUENCE_ABORT +| 000221 331A | CPI A,'9'+1 +| 000222 F110 | BRLO SET_CHSET_A +| | ESC_SEQUENCE_ABORT: +| 000223 CF71 | RJMP MAIN_LOOP +| | +| | CROSSED_ZEROS: +| 000224 D259 | RCALL RX_WAIT +| 000225 FF10 | SBRS A,0 +| 000226 C003 | RJMP CROSSED_ZEROS_OFF +| 000227 E014 | LDI A,1<<2 +| 000228 2AB1 | OR FLAGS,A +| 000229 CF6B | RJMP MAIN_LOOP +| | CROSSED_ZEROS_OFF: +| 00022A EF1B | LDI A,~(1<<2) +| 00022B 22B1 | AND FLAGS,A +| 00022C CF68 | RJMP MAIN_LOOP +| | +| | MOSFET_CONTROL: +| 00022D D250 | RCALL RX_WAIT +| 00022E 3310 | CPI A,$30 ; DO NOT TURN OFF BY ACCIDENT +| 00022F F429 | BRNE MOSFET_CONTROL_DONE +| 000230 94F8 | CLI +| 000231 E400 | LDI F,1<<6 +| 000232 2AB0 | OR FLAGS,F ; SAY WE TURNED OFF VIA COMMAND +| 000233 9A8A | SBI DDRD,2 ; D2 = LOW, VSWT OFF +| 000234 CF10 | RJMP SLEEP_ENTRY ; GO AND SHUT DOWN DISPLAY +| | MOSFET_CONTROL_DONE: +| 000235 CF5F | RJMP MAIN_LOOP +| | +| 000236 D247 | BUZZER: RCALL RX_WAIT +| 000237 931F | PUSH A +| 000238 E010 | LDI A,0 ; HIGHEST FREQUENCY +| 000239 C004 | RJMP BUZZ_AT_FREQ_A +| | +| | BUZZ_AT_FREQ: +| 00023A D243 | RCALL RX_WAIT +| 00023B 931F | PUSH A +| 00023C D241 | RCALL RX_WAIT +| 00023D 701F | ANDI A,$0F +| | BUZZ_AT_FREQ_A: +| 00023E 9310 0111 | STS BUZZ_PERIOD,A ; SAVE REQUESTED PERIOD +| 000240 911F | POP A +| 000241 9310 0110 | STS BUZZ_TIME,A ; SAVE REQUESTED DURATION +| 000243 CF51 | RJMP MAIN_LOOP +| | +| | SET_CHSET: +| 000244 D239 | RCALL RX_WAIT +| | SET_CHSET_A: +| 000245 D130 | RCALL CHARACTER_SET_FIND ; B:Y -> CHARACTER SET +| 000246 E1C0 | LDI YL,$10 +| 000247 93C0 0103 | STS PTR,YL +| 000249 93D0 0104 | STS PTR+1,YH +| 00024B 9320 0105 | STS PTR+2,B +| 00024D CF47 | RJMP MAIN_LOOP +| | +| | SET_TIME: +| 00024E E010 | LDI A,0 +| 00024F BD15 | OUT TCCR2,A ; STOP COUNTING WHILE SETTING CLOCK +| 000250 9310 015F | STS TIME_HSEC_64K,A +| 000252 9310 0160 | STS TIME_HSEC_256,A +| 000254 9310 0161 | STS TIME_HSEC,A +| 000256 D227 | RCALL RX_WAIT +| 000257 9310 0164 | STS TIME_HOUR,A +| 000259 D224 | RCALL RX_WAIT +| 00025A 9310 0163 | STS TIME_MINUTE,A +| 00025C D221 | RCALL RX_WAIT +| 00025D 9310 0162 | STS TIME_SECOND,A +| 00025F D21E | RCALL RX_WAIT +| 000260 9310 0166 | STS DATE_MONTH,A +| 000262 D21B | RCALL RX_WAIT +| 000263 9310 0165 | STS DATE_DAY,A +| 000265 D218 | RCALL RX_WAIT +| 000266 9310 0167 | STS DATE_YEAR,A +| 000268 E013 | LDI A,3 ; TIMER 2 DIVIDE BY 32 (4 HZ) +| | ;** LDI A,6 ; TIMER 2 DIVIDE BY 256 +| 000269 BD15 | OUT TCCR2,A +| 00026A CF2A | RJMP MAIN_LOOP +| | +| 00026B D001 | LF: RCALL LINE_FEED +| 00026C CF28 | RJMP MAIN_LOOP +| | +| | LINE_FEED: +| 00026D 920F | PUSH R0 +| 00026E 91C0 0103 | LDS YL,PTR +| 000270 91D0 0104 | LDS YH,PTR+1 +| 000272 9120 0105 | LDS B,PTR+2 +| 000274 5FDE | SUBI YH,$FE +| 000275 95C3 | INC YL +| 000276 > A14_A18 B +| 000276 94F8 > CLI +| 000277 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 000279 2732 > EOR R19,B +| 00027A 7E30 > ANDI R19,$E0 +| 00027B 2732 > EOR R19,B +| 00027C BB3B > OUT PORTA,R19 +| 00027D 9AC4 > SBI PORTB,4 +| 00027E 98C4 > CBI PORTB,4 +| 00027F 9478 > SEI +| 000280 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 000282 D4D6 | RCALL LPMS +| 000283 2F18 | MOV A,CURSORY +| 000284 0D10 | ADD A,R0 +| 000285 0D10 | ADD A,R0 +| 000286 951A | DEC A +| 000287 3810 | CPI A,DISPLAY_LINES +| 000288 F018 | BRLO INC_CURSORY +| 000289 D0C0 | RCALL GO_SCROLL +| 00028A 900F | POP R0 +| 00028B 9508 | RET +| | +| | INC_CURSORY: +| 00028C 0D80 | ADD CURSORY,R0 +| 00028D 900F | POP R0 +| 00028E 9508 | RET +| | +| | CLR_DISP: +| 00028F D522 | RCALL CLEAR_DISPLAY ; CLEARS DISPLAY AND HOMES CURSOR +| 000290 CF04 | RJMP MAIN_LOOP +| | +| | INTERPRET_MODE: +| 000291 D1EC | RCALL RX_WAIT +| 000292 3310 | CPI A,$30 +| 000293 F409 | BRNE TEXT_MODE +| 000294 C004 | RJMP L01A4 +| | TEXT_MODE: +| 000295 3311 | CPI A,$31 +| 000296 > RJEQ GRAPHICS_MODE +| 000296 F409 > BRNE LOCAL +| 000297 C004 > RJMP GRAPHICS_MODE +| > LOCAL: +| | ;L01A3: +| 000298 CEFC | RJMP MAIN_LOOP +| | +| 000299 EF07 | L01A4: LDI F,$F7 +| 00029A 22B0 | AND FLAGS,F +| 00029B CEF9 | RJMP MAIN_LOOP +| | +| | GRAPHICS_MODE: +| 00029C E008 | LDI F,$08 +| 00029D 2AB0 | OR FLAGS,F +| 00029E CEF6 | RJMP MAIN_LOOP +| | +| | PROP_FIXED_MODE: +| 00029F D1DE | RCALL RX_WAIT +| 0002A0 3310 | CPI A,$30 +| 0002A1 > RJEQ FIXED +| 0002A1 F409 > BRNE LOCAL +| 0002A2 C003 > RJMP FIXED +| > LOCAL: +| | ;L01AE: +| 0002A3 3311 | CPI A,$31 +| 0002A4 > RJEQ PROPORTIONAL +| 0002A4 F409 > BRNE LOCAL +| 0002A5 C003 > RJMP PROPORTIONAL +| > LOCAL: +| | L01B1: +| | ; RJMP MAIN_LOOP +| | +| 0002A6 EE0F | FIXED: LDI F,$EF +| 0002A7 22B0 | AND FLAGS,F +| 0002A8 CEEC | RJMP MAIN_LOOP +| | +| | PROPORTIONAL: +| 0002A9 E100 | LDI F,$10 +| 0002AA 2AB0 | OR FLAGS,F +| 0002AB CEE9 | RJMP MAIN_LOOP +| | +| | BACK_SPACE: +| 0002AC 91C0 0103 | LDS YL,PTR +| 0002AE 91D0 0104 | LDS YH,PTR+1 +| 0002B0 9120 0105 | LDS B,PTR+2 +| 0002B2 5FDE | SUBI YH,$FE +| 0002B3 > A14_A18 B +| 0002B3 94F8 > CLI +| 0002B4 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 0002B6 2732 > EOR R19,B +| 0002B7 7E30 > ANDI R19,$E0 +| 0002B8 2732 > EOR R19,B +| 0002B9 BB3B > OUT PORTA,R19 +| 0002BA 9AC4 > SBI PORTB,4 +| 0002BB 98C4 > CBI PORTB,4 +| 0002BC 9478 > SEI +| 0002BD 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 0002BF D499 | RCALL LPMS +| 0002C0 1970 | SUB CURSORX,R0 +| 0002C1 B71F | IN A,SREG +| 0002C2 FF12 | SBRS A,2 +| 0002C3 CED1 | RJMP MAIN_LOOP +| | +| 0002C4 2777 | CR: CLR CURSORX +| 0002C5 CECF | RJMP MAIN_LOOP +| | +| | ENABLE_CNTRL: +| 0002C6 D1B7 | RCALL RX_WAIT +| 0002C7 FD11 | SBRC A,1 +| 0002C8 C007 | RJMP ENABLE_UPDATE +| 0002C9 FD10 | SBRC A,0 +| 0002CA C003 | RJMP ENABLE_ON +| | ;ENABLE_OFF: +| 0002CB ED0F | LDI F,$DF +| 0002CC 22B0 | AND FLAGS,F +| 0002CD CEC7 | RJMP MAIN_LOOP +| | ENABLE_ON: +| 0002CE E200 | LDI F,$20 +| 0002CF 2AB0 | OR FLAGS,F +| | ENABLE_UPDATE: +| 0002D0 2700 | CLR F +| 0002D1 9300 013B | STS LINE_COUNT,F ; START UPDATE AT TOP OF SCREEN +| | ENABLE_LOOP: +| 0002D3 D2EA | RCALL NICK_SUB2 ; IMMEDIATE UPDATE OF ENTIRE SCREEN +| 0002D4 F7F1 | BRNE ENABLE_LOOP +| 0002D5 CEBF | RJMP MAIN_LOOP +| | +| | DRAW_MODE: +| 0002D6 D1A7 | RCALL RX_WAIT +| 0002D7 3310 | CPI A,$30 +| 0002D8 > RJEQ XOR_MODE +| 0002D8 F409 > BRNE LOCAL +| 0002D9 C004 > RJMP XOR_MODE +| > LOCAL: +| | ;L01D3: +| 0002DA 3311 | CPI A,$31 +| 0002DB > RJEQ OR_MODE +| 0002DB F409 > BRNE LOCAL +| 0002DC C004 > RJMP OR_MODE +| > LOCAL: +| | ;L01D6: +| 0002DD CEB7 | RJMP MAIN_LOOP +| | +| | XOR_MODE: +| 0002DE EF0E | LDI F,$FE +| 0002DF 22B0 | AND FLAGS,F +| 0002E0 CEB4 | RJMP MAIN_LOOP +| | +| | OR_MODE: +| 0002E1 E001 | LDI F,$01 +| 0002E2 2AB0 | OR FLAGS,F +| 0002E3 CEB1 | RJMP MAIN_LOOP +| | +| | SET_CURSOR: +| 0002E4 D199 | RCALL RX_WAIT +| 0002E5 2F71 | MOV CURSORX,A +| 0002E6 D197 | GET_Y: RCALL RX_WAIT +| 0002E7 2F81 | MOV CURSORY,A +| 0002E8 CEAC | RJMP MAIN_LOOP +| | +| | CLEAR_RECTANGLE: +| 0002E9 E002 | LDI F,$02 +| 0002EA 2AB0 | OR FLAGS,F +| | +| | GET_RECT_SIZE: +| 0002EB 9370 0152 | STS RECT_X,CURSORX +| 0002ED 9380 0153 | STS RECT_Y,CURSORY +| 0002EF D18E | RCALL RX_WAIT +| 0002F0 9310 0154 | STS RECT_XX,A +| 0002F2 D18B | RCALL RX_WAIT +| 0002F3 9310 0155 | STS RECT_YY,A +| 0002F5 D317 | RCALL DRAW_RECT +| 0002F6 EF0D | LDI F,$FD +| 0002F7 22B0 | AND FLAGS,F +| 0002F8 CE9C | RJMP MAIN_LOOP +| | +| | GET_FILLED_RECTNC_SIZE: +| 0002F9 9370 0156 | STS RECTNC_X,CURSORX +| 0002FB 9380 0157 | STS RECTNC_Y,CURSORY +| 0002FD D180 | RCALL RX_WAIT +| 0002FE 9310 0158 | STS RECTNC_XX,A +| 000300 D17D | RCALL RX_WAIT +| 000301 9310 0159 | STS RECTNC_YY,A +| 000303 D35E | RCALL FILLED_RECTNC +| 000304 CE90 | RJMP MAIN_LOOP +| | +| | GET_RECTNC_SIZE: +| 000305 9370 0156 | STS RECTNC_X,CURSORX +| 000307 9380 0157 | STS RECTNC_Y,CURSORY +| 000309 D174 | RCALL RX_WAIT +| 00030A 9310 0158 | STS RECTNC_XX,A +| 00030C D171 | RCALL RX_WAIT +| 00030D 9310 0159 | STS RECTNC_YY,A +| 00030F D377 | RCALL DRAW_RECTNC +| 000310 CE84 | RJMP MAIN_LOOP +| | +| | CONTRAST_CONTROL: +| 000311 D16C | RCALL RX_WAIT +| | +| 000312 FF10 | SBRS A,0 +| 000313 C00B | RJMP CONTRAST_DARKER +| | +| | ;CONTRAST_LIGHTER: +| 000314 9110 010E | LDS A,CONTRASTL +| 000316 9120 010F | LDS B,CONTRASTH +| 000318 5F1C | SUBI A,LOW(-CONTRAST_STEP) +| 000319 4F2F | SBCI B,HIGH(-CONTRAST_STEP) +| | +| 00031A 3B1C | CPI A,LOW(CONTRAST_MAX) +| 00031B EF0D | LDI F,HIGH(CONTRAST_MAX) +| 00031C 0720 | CPC B,F +| 00031D F4A8 | BRSH CONTRAST_DONE +| 00031E C00A | RJMP CONTRAST_WRITE +| | +| | CONTRAST_DARKER: +| 00031F 9110 010E | LDS A,CONTRASTL +| 000321 9120 010F | LDS B,CONTRASTH +| 000323 5014 | SUBI A,LOW(CONTRAST_STEP) +| 000324 4020 | SBCI B,HIGH(CONTRAST_STEP) +| | +| 000325 331A | CPI A,LOW(CONTRAST_MIN) +| 000326 EF0D | LDI F,HIGH(CONTRAST_MIN) +| 000327 0720 | CPC B,F +| 000328 F050 | BRLO CONTRAST_DONE +| | +| | CONTRAST_WRITE: +| 000329 9310 010E | STS CONTRASTL,A +| 00032B 9320 010F | STS CONTRASTH,B +| | +| 00032D E022 | LDI B,EE_CONTRAST ; 20mar03 tavrasm *2 +| 00032E D00D | RCALL EE_WRITE +| 00032F 9110 010F | LDS A,CONTRASTH +| 000331 E023 | LDI B,EE_CONTRAST+1 ; 20mar03 tavrasm *2+1 +| 000332 D009 | RCALL EE_WRITE +| | +| | CONTRAST_DONE: +| 000333 CE61 | RJMP MAIN_LOOP +| | +| | EE_READ: +| 000334 99E1 | SBIC EECR,EEWE +| 000335 CFFE | RJMP EE_READ ; WAIT UNTIL EEPROM BECOMES READY +| | +| 000336 BB2E | OUT EEARL,B +| 000337 2722 | CLR B +| 000338 BB2F | OUT EEARH,B ; ASSUME EEPROM ADDRESSES < $100 +| 000339 9AE0 | SBI EECR,EERE ; READ DATA BYTE +| 00033A B31D | IN A,EEDR ; GET LATCHED DATA BYTE +| 00033B 9508 | RET +| | +| | EE_WRITE: +| 00033C 99E1 | SBIC EECR,EEWE +| 00033D CFFE | RJMP EE_WRITE ; WAIT FOR EEPROM TO BECOME READY +| | +| 00033E FEE5 | SBRS API_STATE,EEWR_ENABLE +| | EE_WRITE_HALT0: +| 00033F CFFF | RJMP EE_WRITE_HALT0 ; HALT PROCESSOR IF EE WRITING DISABLED +| | +| 000340 BB2E | OUT EEARL,B +| 000341 2722 | CLR B +| 000342 BB2F | OUT EEARH,B ; ASSUME EEPROM ADDRESSES < $100 +| 000343 BB1D | OUT EEDR,A ; LATCH NEW VALUE +| | +| 000344 94F8 | CLI +| 000345 FEE5 | SBRS API_STATE,EEWR_ENABLE +| | EE_WRITE_HALT1: +| 000346 CFFF | RJMP EE_WRITE_HALT1 ; HALT PROCESSOR IF EE WRITING DISABLED +| | +| 000347 9AE2 | SBI EECR,EEMWE ; MASTER WRITE ENABLE +| 000348 9AE1 | SBI EECR,EEWE ; START WRITING NEW VALUE +| 000349 9518 | RETI +| | +| | GO_SCROLL: +| 00034A C736 | RJMP SCROLL +| | +| | CHARACTER_SET_DOWNLOAD: +| 00034B D132 | RCALL RX_WAIT +| 00034C D029 | RCALL CHARACTER_SET_FIND ; B:Y -> CHARACTER SET +| | +| 00034D D130 | RCALL RX_WAIT +| 00034E 2FA1 | MOV XL,A +| 00034F D12E | RCALL RX_WAIT +| 000350 2FB1 | MOV XH,A +| | +| | CHARACTER_SET_DOWNLOAD_LOOP: +| 000351 D12C | RCALL RX_WAIT +| | +| 000352 > A14_A18 B +| 000352 94F8 > CLI +| 000353 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 000355 2732 > EOR R19,B +| 000356 7E30 > ANDI R19,$E0 +| 000357 2732 > EOR R19,B +| 000358 BB3B > OUT PORTA,R19 +| 000359 9AC4 > SBI PORTB,4 +| 00035A 98C4 > CBI PORTB,4 +| 00035B 9478 > SEI +| 00035C 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 00035E D2A4 | RCALL GO_WRITE_BYTE +| | +| 00035F 9621 | ADIW YL,1 +| 000360 9711 | SBIW XL,1 +| 000361 2F1A | MOV A,XL +| 000362 2B1B | OR A,XH +| 000363 > RJNE CHARACTER_SET_DOWNLOAD_LOOP ; BRNE ?? +| 000363 F009 > BREQ LOCAL +| 000364 CFEC > RJMP CHARACTER_SET_DOWNLOAD_LOOP +| > LOCAL: +| 000365 CE2F | RJMP MAIN_LOOP +| | +| | CHARACTER_SET_QUERY: +| 000366 D117 | RCALL RX_WAIT +| 000367 D00E | RCALL CHARACTER_SET_FIND ; B:Y -> CHARACTER SET +| | +| 000368 931F | PUSH A +| 000369 D01A | RCALL CHARACTER_SET_CRC +| | +| 00036A E11B | LDI A,$1B +| 00036B D133 | RCALL TX_WAIT +| 00036C E31F | LDI A,'?' +| 00036D D131 | RCALL TX_WAIT +| 00036E 911F | POP A +| 00036F 5D10 | SUBI A,-'0' +| 000370 D12E | RCALL TX_WAIT +| | +| 000371 2F1D | MOV A,YH +| 000372 D060 | RCALL TX_HEX_BYTE +| 000373 2F1C | MOV A,YL +| 000374 D05E | RCALL TX_HEX_BYTE +| 000375 CE1F | RJMP MAIN_LOOP +| | +| | CHARACTER_SET_FIND: +| 000376 E0C0 | LDI YL,LOW(CHSET_DSPRAM) +tsv3.asm:1414: Warning : Constant 0x400 out of range (0x00-0xFF) +| 000377 E0D0 | LDI YH,HIGH(CHSET_DSPRAM)<<4 +| 000378 E624 | LDI B,HIGH(CHSET_DSPRAM>>4) +| | +| 000379 701F | ANDI A,$0F +| 00037A 301A | CPI A,CHARACTER_SETS +| 00037B F408 | BRSH CHARACTER_SET_FIND_DONE ; DEFAULT TO SET 0 +| | +| 00037C 0F21 | ADD B,A +| | +| | CHARACTER_SET_FIND_DONE: +| 00037D 9526 | LSR B +| 00037E 95D7 | ROR YH +| 00037F 9526 | LSR B +| 000380 95D7 | ROR YH +| 000381 95D6 | LSR YH +| 000382 95D6 | LSR YH +| 000383 9508 | RET +| | +| | CHARACTER_SET_CRC: +| 000384 E1A6 | LDI XL,LOW($216) +| 000385 E0B2 | LDI XH,HIGH($216) ; PAST CRC, INDEX, CELL SIZES +| 000386 0FAC | ADD XL,YL +| 000387 1FBD | ADC XH,YH ; B:X -> LENGTH WORD IN CHARACTER SET +| 000388 > A14_A18 B +| 000388 94F8 > CLI +| 000389 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 00038B 2732 > EOR R19,B +| 00038C 7E30 > ANDI R19,$E0 +| 00038D 2732 > EOR R19,B +| 00038E BB3B > OUT PORTA,R19 +| 00038F 9AC4 > SBI PORTB,4 +| 000390 98C4 > CBI PORTB,4 +| 000391 9478 > SEI +| 000392 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 000394 D26D | RCALL GO_READ_BYTE +| 000395 2FE1 | MOV ZL,A +| 000396 9611 | ADIW XL,1 +| 000397 D26A | RCALL GO_READ_BYTE +| 000398 2FF1 | MOV ZH,A ; Z = LENGTH OF DATA INCLUDING CRC +| | +| 000399 2FAC | MOV XL,YL +| 00039A 2FBD | MOV XH,YH +| 00039B 9614 | ADIW XL,4 ; B:X -> DATA BLOCK EXCLUDING CRC +| | +| 00039C EFCF | LDI YL,$FF +| 00039D EFDF | LDI YH,$FF ; Y = SEED FOR CRC CALCULATION +| | +| 00039E 9731 | SBIW ZL,1 +| 00039F 70FF | ANDI ZH,$0F +| 0003A0 9734 | SBIW ZL,4 ; Z = LENGTH OF DATA-1 EXCLUDING CRC +| 0003A1 F180 | BRLO CHARACTER_SET_CRC_DONE +| 0003A2 9631 | ADIW ZL,1 +| | +| | CHARACTER_SET_CRC_BYTE: +| 0003A3 D25E | RCALL GO_READ_BYTE +| 0003A4 9611 | ADIW XL,1 +| | +| 0003A5 E201 | LDI F,$21 +| 0003A6 E120 | LDI B,$10 ; B:F = CRC POLYNOMIAL +| 0003A7 27D1 | EOR YH,A ; Y = CRC REGISTER WITH NEW DATA BYTE +| | +| 0003A8 0FCC | LSL YL +| 0003A9 1FDD | ROL YH +| 0003AA F410 | BRCC CHARACTER_SET_CRC_BIT0 +| 0003AB 27C0 | EOR YL,F +| 0003AC 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT0: +| 0003AD 0FCC | LSL YL +| 0003AE 1FDD | ROL YH +| 0003AF F410 | BRCC CHARACTER_SET_CRC_BIT1 +| 0003B0 27C0 | EOR YL,F +| 0003B1 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT1: +| 0003B2 0FCC | LSL YL +| 0003B3 1FDD | ROL YH +| 0003B4 F410 | BRCC CHARACTER_SET_CRC_BIT2 +| 0003B5 27C0 | EOR YL,F +| 0003B6 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT2: +| 0003B7 0FCC | LSL YL +| 0003B8 1FDD | ROL YH +| 0003B9 F410 | BRCC CHARACTER_SET_CRC_BIT3 +| 0003BA 27C0 | EOR YL,F +| 0003BB 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT3: +| 0003BC 0FCC | LSL YL +| 0003BD 1FDD | ROL YH +| 0003BE F410 | BRCC CHARACTER_SET_CRC_BIT4 +| 0003BF 27C0 | EOR YL,F +| 0003C0 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT4: +| 0003C1 0FCC | LSL YL +| 0003C2 1FDD | ROL YH +| 0003C3 F410 | BRCC CHARACTER_SET_CRC_BIT5 +| 0003C4 27C0 | EOR YL,F +| 0003C5 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT5: +| 0003C6 0FCC | LSL YL +| 0003C7 1FDD | ROL YH +| 0003C8 F410 | BRCC CHARACTER_SET_CRC_BIT6 +| 0003C9 27C0 | EOR YL,F +| 0003CA 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT6: +| 0003CB 0FCC | LSL YL +| 0003CC 1FDD | ROL YH +| 0003CD F410 | BRCC CHARACTER_SET_CRC_BIT7 +| 0003CE 27C0 | EOR YL,F +| 0003CF 27D2 | EOR YH,B +| | CHARACTER_SET_CRC_BIT7: +| | +| 0003D0 9731 | SBIW ZL,1 +| 0003D1 F689 | BRNE CHARACTER_SET_CRC_BYTE +| | +| | CHARACTER_SET_CRC_DONE: +| 0003D2 9508 | RET +| | +| | TX_HEX_BYTE: +| 0003D3 931F | PUSH A +| 0003D4 9512 | SWAP A +| 0003D5 D004 | RCALL HEX_NIBBLE +| 0003D6 D0C8 | RCALL TX_WAIT +| 0003D7 911F | POP A +| 0003D8 D001 | RCALL HEX_NIBBLE +| 0003D9 C0C5 | RJMP TX_WAIT +| | +| | HEX_NIBBLE: +| 0003DA 701F | ANDI A,$0F +| 0003DB 6310 | ORI A,$30 +| 0003DC 331A | CPI A,$3A +| 0003DD F008 | BRLO HEX_NIBBLE_DONE +| 0003DE 5F19 | SUBI A,-7 +| | HEX_NIBBLE_DONE: +| 0003DF 9508 | RET +| | +| | SAVE_STATE: +| 0003E0 D09D | RCALL RX_WAIT +| 0003E1 FD10 | SBRC A,0 +| 0003E2 C013 | RJMP RESTORE_STATE +| | +| | SAVE_ENTRY: +| 0003E3 9370 016C | STS CURSORX_SAVE,CURSORX +| 0003E5 9380 016D | STS CURSORY_SAVE,CURSORY +| 0003E7 92B0 016E | STS FLAGS_SAVE,FLAGS +| 0003E9 9110 0103 | LDS A,PTR +| 0003EB 9310 016F | STS PTR_SAVE,A +| 0003ED 9110 0104 | LDS A,PTR+1 +| 0003EF 9310 0170 | STS PTR_SAVE+1,A +| 0003F1 9110 0105 | LDS A,PTR+2 +| 0003F3 9310 0171 | STS PTR_SAVE+2,A +| 0003F5 CD9F | RJMP MAIN_LOOP +| | +| | RESTORE_STATE: +| 0003F6 9170 016C | LDS CURSORX,CURSORX_SAVE +| 0003F8 9180 016D | LDS CURSORY,CURSORY_SAVE +| 0003FA EC10 | LDI A,$C0 +| 0003FB 22B1 | AND FLAGS,A +| 0003FC 9110 016E | LDS A,FLAGS_SAVE +| 0003FE 731F | ANDI A,$3F +| 0003FF 2AB1 | OR FLAGS,A +| 000400 9110 016F | LDS A,PTR_SAVE +| 000402 9310 0103 | STS PTR,A +| 000404 9110 0170 | LDS A,PTR_SAVE+1 +| 000406 9310 0104 | STS PTR+1,A +| 000408 9110 0171 | LDS A,PTR_SAVE+2 +| 00040A 9310 0105 | STS PTR+2,A +| 00040C CD88 | RJMP MAIN_LOOP +| | +| | TOUCH_ZONE: +| 00040D D070 | RCALL RX_WAIT +| 00040E 9310 015A | STS TOUCH_KEY,A +| | +| 000410 D06D | RCALL RX_WAIT +| 000411 2FC1 | MOV YL,A +| 000412 5F17 | SUBI A,-9 +| 000413 D05D | RCALL DIVIDE_10 +| 000414 9320 015B | STS TOUCH_X,B +| | +| 000416 D067 | RCALL RX_WAIT +| 000417 2FD1 | MOV YH,A +| 000418 5F1C | SUBI A,-4 +| 000419 D05C | RCALL DIVIDE_13 +| 00041A 9320 015C | STS TOUCH_Y,B +| | +| 00041C D061 | RCALL RX_WAIT +| 00041D 0F1C | ADD A,YL +| 00041E 501F | SUBI A,15 +| 00041F D051 | RCALL DIVIDE_10 +| 000420 9320 015D | STS TOUCH_XX,B +| | +| 000422 D05B | RCALL RX_WAIT +| 000423 0F1D | ADD A,YH +| 000424 5111 | SUBI A,17 +| 000425 D050 | RCALL DIVIDE_13 +| 000426 9320 015E | STS TOUCH_YY,B +| | +| 000428 91D0 015C | LDS YH,TOUCH_Y +| | TOUCH_ZONE_Y: +| 00042A 9110 015E | LDS A,TOUCH_YY +| 00042C 1B1D | SUB A,YH +| 00042D F408 | BRSH TOUCH_ZONE_Y_CONT +| 00042E C041 | RJMP TOUCH_ZONE_Y_END +| | TOUCH_ZONE_Y_CONT: +| | +| 00042F 91C0 015B | LDS YL,TOUCH_X +| 000431 2F1C | MOV A,YL +| 000432 0F1D | ADD A,YH +| 000433 2F2D | MOV B,YH +| 000434 0F22 | LSL B +| 000435 0F22 | LSL B +| 000436 0F22 | LSL B +| 000437 0F12 | ADD A,B +| 000438 0F22 | LSL B +| 000439 0F12 | ADD A,B +| | +| 00043A E0A0 | LDI XL,LOW(RTN_DSPRAM) +| 00043B EEB0 | LDI XH,HIGH(RTN_DSPRAM) ;<<2 +| 00043C E020 | LDI B,0 +| 00043D 0FA1 | ADD XL,A +| 00043E 1FB2 | ADC XH,B +| | +| 00043F E12B | LDI B,HIGH(RTN_DSPRAM>>6) ; B:X -> RETURN CODE TABLE +| 000440 > A14_A18 B +| 000440 94F8 > CLI +| 000441 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 000443 2732 > EOR R19,B +| 000444 7E30 > ANDI R19,$E0 +| 000445 2732 > EOR R19,B +| 000446 BB3B > OUT PORTA,R19 +| 000447 9AC4 > SBI PORTB,4 +| 000448 98C4 > CBI PORTB,4 +| 000449 9478 > SEI +| 00044A 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| | +| | TOUCH_ZONE_X: +| 00044C 9110 015D | LDS A,TOUCH_XX +| 00044E 1B1C | SUB A,YL +| 00044F F0F0 | BRLO TOUCH_ZONE_X_END +| | +| 000450 > A0_A13 XL,XH +| 000450 2F3A > MOV R19,XL +| 000451 733F > ANDI R19,$3F +| 000452 BB35 > OUT PORTC,R19 +| > +| 000453 2F3B > MOV R19,XH +| 000454 0F33 > LSL R19 +| 000455 0F33 > LSL R19 +| 000456 FBA7 > BST XL,7 ; A7 +| 000457 F931 > BLD R19,1 +| 000458 FBA6 > BST XL,6 ; A6 +| 000459 F930 > BLD R19,0 +| 00045A BB3B > OUT PORTA,R19 +| 00045B 94F8 > CLI +| 00045C 9AC3 > SBI PORTB,3 +| 00045D 98C3 > CBI PORTB,3 +| 00045E 9478 > SEI +| 00045F 9330 0118 > STS LATCH11_SAV,R19 +| 000461 9110 015A | LDS A,TOUCH_KEY +| 000463 > RAMWR A ; WRITE DATA TO DSPRAM +| 000463 BB1B > OUT PORTA,A +| 000464 94F8 > CLI +| 000465 98C1 > CBI PORTB,1 +| 000466 98C0 > CBI PORTB,0 +| 000467 0000 > NOP +| 000468 9AC0 > SBI PORTB,0 +| 000469 9478 > SEI +| 00046A 9AC1 > SBI PORTB,1 +| | +| 00046B 9611 | ADIW XL,1 +| 00046C 95C3 | INC YL +| 00046D CFDE | RJMP TOUCH_ZONE_X +| | +| | TOUCH_ZONE_X_END: +| 00046E 95D3 | INC YH +| 00046F CFBA | RJMP TOUCH_ZONE_Y +| | +| | TOUCH_ZONE_Y_END: +| 000470 CD24 | RJMP MAIN_LOOP +| | +| | DIVIDE_10: +| 000471 EF2F | LDI B,-1 +| | DIVIDE_10_LOOP: +| 000472 9523 | INC B +| 000473 501A | SUBI A,10 +| 000474 F7E8 | BRCC DIVIDE_10_LOOP +| 000475 9508 | RET +| | +| | DIVIDE_13: +| 000476 EF2F | LDI B,-1 +| | DIVIDE_13_LOOP: +| 000477 9523 | INC B +| 000478 501D | SUBI A,13 +| 000479 F7E8 | BRCC DIVIDE_13_LOOP +| 00047A 9508 | RET +| | +| | NULLSUB2: +| 00047B D002 | RCALL RX_WAIT +| | +| | NULLSUB: +| 00047C D001 | RCALL RX_WAIT +| 00047D CD17 | RJMP MAIN_LOOP +| | +| | RX_WAIT: +| 00047E EC10 | LDI A,-$40 +| 00047F 9310 016B | STS BREAK_COUNT,A ; SET VERY SHORT BREAK TIMEOUT +| | +| | RX_WAIT_LOOP: +| | ; FORMERLY DONE IN TIMER 2 OVERFLOW INTERRUPT +| 000481 95A8 | WDR +| | +| 000482 E010 | LDI A,0 +| 000483 BB1E | OUT EEARL,A ; RESET EEPROM ADDRESS REG WHILE IDLE +| 000484 BB1F | OUT EEARH,A +| | +| 000485 EC10 | LDI A,-$40 +| 000486 9980 | SBIC PIND,0 ; RXD HIGH? +| 000487 9310 016B | STS BREAK_COUNT,A ; YES, TOP UP VERY SHORT BREAK TIMEOUT +| | +| 000489 FCB5 | SBRC FLAGS,5 ; DISPLAY ENABLED? +| 00048A D133 | RCALL NICK_SUB2 ; IF SO, COPY 1 LINE ACCORDING TO FLAGS +| | +| 00048B 2033 | TST RX_COUNT +| 00048C F3A1 | BREQ RX_WAIT_LOOP +| | +| 00048D E010 | LDI A,0 ; SET LONGEST POSSIBLE BREAK TIMEOUT +| 00048E 9310 016B | STS BREAK_COUNT,A ; WHILE PROCESSING CHARACTER +| | +| | RX_CHAR: +| 000490 > MRX_CHAR +| 000490 93CF > PUSH YL +| 000491 93DF > PUSH YH +| > +| 000492 2DC2 > MOV YL,RX_PTR +| 000493 58C0 > SUBI YL,-RX_BUF +| 000494 27DD > CLR YH +| 000495 8118 > LD A,Y +| > +| 000496 94F8 > CLI +| 000497 943A > DEC RX_COUNT +| 000498 9423 > INC RX_PTR +| 000499 E7CF > LDI YL,RX_SIZE-1 +| 00049A 222C > AND RX_PTR,YL +| 00049B 9478 > SEI +| > +| 00049C 91DF > POP YH +| 00049D 91CF > POP YL +| 00049E 9508 > RET +| > ; FALL INTO MTX_WAIT FOR LOOPBACK TEST +| | TX_WAIT: +| 00049F > MTX_WAIT +| 00049F 931F > PUSH A +| > TX_WAIT_LOOP: +| 0004A0 95A8 > WDR ; 10OCT02 ALTHOUGH IT USUALLY DOESN'T MATTER (HANDY FOR LOOPBACK) +| 0004A1 2D15 > MOV A,TX_COUNT +| 0004A2 3210 > CPI A,TX_SIZE +| 0004A3 F7E0 > BRSH TX_WAIT_LOOP +| 0004A4 911F > POP A +| | TX_CHAR: +| 0004A5 > MTX_CHAR +| 0004A5 93CF > PUSH YL +| 0004A6 93DF > PUSH YH +| 0004A7 B7DF > IN YH,SREG +| 0004A8 94F8 > CLI +| 0004A9 2DC5 > MOV YL,TX_COUNT +| 0004AA 0DC4 > ADD YL,TX_PTR +| 0004AB BFDF > OUT SREG,YH ;SEI +| 0004AC 71CF > ANDI YL,TX_SIZE-1 +| 0004AD 5AC0 > SUBI YL,-TX_BUF +| 0004AE 27DD > CLR YH +| 0004AF 8318 > ST Y,A +| > +| 0004B0 9453 > INC TX_COUNT +| > +| 0004B1 91DF > POP YH +| 0004B2 91CF > POP YL +| 0004B3 9508 > RET +| | +| | DRAW_CHAR_TTY: +| 0004B4 D0D2 | RCALL FIND_CHAR ; SET UP CHAR_PTR FROM A = CHAR +| 0004B5 D0EF | RCALL CHAR_WIDTH ; SET UP R0 = PROP WIDTH FROM CHAR PTR +| | +| 0004B6 2700 | CLR F +| 0004B7 9300 0112 | STS TEMP,F ; NUDGE FOR FIXED SPACING MODE +| | +| 0004B9 FCB4 | SBRC FLAGS,4 +| 0004BA C00F | RJMP PROP_MODE ; FORCED TO FIXED SPACING MODE? +| | +| 0004BB 91C0 0103 | LDS YL,PTR +| 0004BD 91D0 0104 | LDS YH,PTR+1 +| 0004BF 5FDE | SUBI YH,$FE +| 0004C0 2CF0 | MOV W,R0 +| 0004C1 D297 | RCALL LPMS ; GET R0 = CELL WIDTH FOR CHARACTER SET +| 0004C2 920F | PUSH R0 +| 0004C3 180F | SUB R0,W +| 0004C4 F408 | BRCC NUDGE_OK +| 0004C5 2400 | CLR R0 ; NO NEGATIVE CENTRING +| | NUDGE_OK: +| 0004C6 9406 | LSR R0 +| 0004C7 9200 0112 | STS TEMP,R0 +| 0004C9 900F | POP R0 ; RESTORE R0 = FIXED CELL WIDTH +| | +| | PROP_MODE: +| 0004CA FCB3 | SBRC FLAGS,3 +| 0004CB C008 | RJMP OK_LINE ; FORCED TO GRAPHICS MODE? +| | +| 0004CC 2F07 | MOV F,CURSORX +| 0004CD 0D00 | ADD F,R0 ; CHECK IF CHAR WILL FIT ON THIS LINE +| 0004CE F428 | BRCC OK_LINE +| | +| 0004CF 2777 | CLR CURSORX +| 0004D0 DD9C | RCALL LINE_FEED ; NO, WRAP CURSOR PRIOR TO DRAWING CHAR +| | +| 0004D1 9110 0105 | LDS A,PTR+2 +| 0004D3 D6B9 | RCALL SELECT_XPAGE ; IN CASE WE SCROLLED THE DISPLAY +| | +| | OK_LINE: +| 0004D4 9100 0112 | LDS F,TEMP +| 0004D6 0F07 | ADD F,CURSORX +| 0004D7 9300 014E | STS CHAR_X,F +| 0004D9 9380 014F | STS CHAR_Y,CURSORY ; SET UP TOP LEFT COORDINATES +| | +| 0004DB 0D70 | ADD CURSORX,R0 ; ADVANCE CURSOR +| | +| | DRAW_CHAR: +| 0004DC 9160 014E | LDS XPIXEL,CHAR_X +| 0004DE 9090 014F | LDS LINE_CNT,CHAR_Y +| | +| 0004E0 FE86 | SBRS X_SIZE,6 +| 0004E1 C007 | RJMP Y_OFFSET_DONE ; Y OFFSET FOUND? +| | +| 0004E2 91C0 0150 | LDS YL,CHAR_PTR +| 0004E4 91D0 0151 | LDS YH,CHAR_PTR+1 +| 0004E6 9722 | SBIW YL,$02 +| 0004E7 D271 | RCALL LPMS +| 0004E8 0C90 | ADD LINE_CNT,R0 +| | +| | Y_OFFSET_DONE: +| 0004E9 FE87 | SBRS X_SIZE,7 +| 0004EA C007 | RJMP X_OFFSET_DONE ; X OFFSET FOUND? +| | +| 0004EB 91C0 0150 | LDS YL,CHAR_PTR +| 0004ED 91D0 0151 | LDS YH,CHAR_PTR+1 +| 0004EF 9723 | SBIW YL,$03 +| 0004F0 D268 | RCALL LPMS +| 0004F1 0D60 | ADD XPIXEL,R0 +| | +| | X_OFFSET_DONE: +| 0004F2 D25A | RCALL CALCULATE_XBYTE +| 0004F3 9360 0102 | STS XPIXEL_SAV,XPIXEL +| 0004F5 92A0 0100 | STS XBYTE_SAV,XBYTE +| | +| 0004F7 91C0 0150 | LDS YL,CHAR_PTR +| 0004F9 91D0 0151 | LDS YH,CHAR_PTR+1 +| 0004FB 9621 | ADIW YL,$01 +| 0004FC D25C | RCALL LPMS ; GET R0 = Y LINES FOR CHARACTER +| 0004FD 2C70 | MOV Y_SIZE,R0 +| | +| 0004FE EF0F | LDI F,$FF +| 0004FF BB0A | OUT DDRA,F +| 000500 9AC0 | SBI PORTB,0 ; REMOVE_CS +| 000501 E10F | LDI F,$1F +| 000502 2280 | AND X_SIZE,F +| 000503 9280 0101 | STS X_SIZE_SAV,X_SIZE +| 000505 2700 | CLR F +| 000506 1280 | CPSE X_SIZE,F +| 000507 C001 | RJMP DRAW_IT +| 000508 C07D | RJMP DONE +| | +| | DRAW_IT: +| 000509 27AA | CLR XL +| 00050A 2DB9 | MOV XH,LINE_CNT +| 00050B 95B6 | LSR XH +| 00050C 95A7 | ROR XL +| 00050D 95B6 | LSR XH +| 00050E 95A7 | ROR XL +| 00050F 5EB0 | SUBI XH,HIGH(-DRAW_DSPRAM) ; DRAW INTO DRAWING BUFFER +| 000510 C007 | RJMP FIRSTT +| | +| 000511 9493 | MORE_Y: INC LINE_CNT +| 000512 5CA0 | SUBI XL,LOW(-$40) +| 000513 4FBF | SBCI XH,HIGH(-$40) +| | +| 000514 9080 0101 | LDS X_SIZE,X_SIZE_SAV +| 000516 90A0 0100 | LDS XBYTE,XBYTE_SAV +| | +| 000518 2AAA | FIRSTT: OR XBYTE,XL +| 000519 2722 | CLR B ; RESIDUAL +| | +| 00051A 9621 | MORE_X: ADIW YL,$01 +| 00051B 9110 0105 | LDS A,PTR+2 +| 00051D D66F | RCALL SELECT_XPAGE +| 00051E D23A | RCALL LPMS +| | +| 00051F 2711 | CLR A +| 000520 9160 0102 | LDS XPIXEL,XPIXEL_SAV +| 000522 2366 | TST XPIXEL +| 000523 F039 | BREQ OUT_DATA +| | +| 000524 9488 | CLC +| | SHIFT_AGAIN: +| 000525 9407 | ROR R0 +| 000526 9517 | ROR A +| 000527 956A | DEC XPIXEL +| 000528 F7E1 | BRNE SHIFT_AGAIN +| | +| 000529 2A02 | OR R0,B +| 00052A 2F21 | MOV B,A +| | +| | OUT_DATA: +| 00052B E108 | LDI F,HIGH(DRAW_DSPRAM>>6) +| 00052C > A14_A18 F +| 00052C 94F8 > CLI +| 00052D 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 00052F 2730 > EOR R19,F +| 000530 7E30 > ANDI R19,$E0 +| 000531 2730 > EOR R19,F +| 000532 BB3B > OUT PORTA,R19 +| 000533 9AC4 > SBI PORTB,4 +| 000534 98C4 > CBI PORTB,4 +| 000535 9478 > SEI +| 000536 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 000538 > A0_A13 XBYTE,XH +| 000538 2D3A > MOV R19,XBYTE +| 000539 733F > ANDI R19,$3F +| 00053A BB35 > OUT PORTC,R19 +| > +| 00053B 2F3B > MOV R19,XH +| 00053C 0F33 > LSL R19 +| 00053D 0F33 > LSL R19 +| 00053E FAA7 > BST XBYTE,7 ; A7 +| 00053F F931 > BLD R19,1 +| 000540 FAA6 > BST XBYTE,6 ; A6 +| 000541 F930 > BLD R19,0 +| 000542 BB3B > OUT PORTA,R19 +| 000543 94F8 > CLI +| 000544 9AC3 > SBI PORTB,3 +| 000545 98C3 > CBI PORTB,3 +| 000546 9478 > SEI +| 000547 9330 0118 > STS LATCH11_SAV,R19 +| 000549 > RAMRXW R0,F +| 000549 2700 > CLR F +| 00054A BB0A > OUT DDRA,F +| 00054B 94F8 > CLI +| 00054C 98C0 > CBI PORTB,0 +| 00054D 0000 > NOP +| 00054E 98C1 > CBI PORTB,1 +| 00054F B309 > IN F,PINA +| 000550 2600 > EOR R0,F +| 000551 FCB0 > SBRC FLAGS,0 +| 000552 2A00 > OR R0,F +| 000553 EF0F > LDI F,$FF +| 000554 BB0A > OUT DDRA,F +| 000555 BA0B > OUT PORTA,R0 +| 000556 0000 > NOP +| 000557 9AC0 > SBI PORTB,0 +| 000558 9478 > SEI +| 000559 9AC1 > SBI PORTB,1 +| | +| 00055A 94A3 | INC XBYTE +| 00055B 948A | DEC X_SIZE +| 00055C > RJNE MORE_X +| 00055C F009 > BREQ LOCAL +| 00055D CFBC > RJMP MORE_X +| > LOCAL: +| | +| 00055E 2322 | TST B +| 00055F F111 | BREQ SKIP_FINAL +| 000560 > A0_A13 XBYTE,XH +| 000560 2D3A > MOV R19,XBYTE +| 000561 733F > ANDI R19,$3F +| 000562 BB35 > OUT PORTC,R19 +| > +| 000563 2F3B > MOV R19,XH +| 000564 0F33 > LSL R19 +| 000565 0F33 > LSL R19 +| 000566 FAA7 > BST XBYTE,7 ; A7 +| 000567 F931 > BLD R19,1 +| 000568 FAA6 > BST XBYTE,6 ; A6 +| 000569 F930 > BLD R19,0 +| 00056A BB3B > OUT PORTA,R19 +| 00056B 94F8 > CLI +| 00056C 9AC3 > SBI PORTB,3 +| 00056D 98C3 > CBI PORTB,3 +| 00056E 9478 > SEI +| 00056F 9330 0118 > STS LATCH11_SAV,R19 +| 000571 > RAMRXW B,F +| 000571 2700 > CLR F +| 000572 BB0A > OUT DDRA,F +| 000573 94F8 > CLI +| 000574 98C0 > CBI PORTB,0 +| 000575 0000 > NOP +| 000576 98C1 > CBI PORTB,1 +| 000577 B309 > IN F,PINA +| 000578 2720 > EOR B,F +| 000579 FCB0 > SBRC FLAGS,0 +| 00057A 2B20 > OR B,F +| 00057B EF0F > LDI F,$FF +| 00057C BB0A > OUT DDRA,F +| 00057D BB2B > OUT PORTA,B +| 00057E 0000 > NOP +| 00057F 9AC0 > SBI PORTB,0 +| 000580 9478 > SEI +| 000581 9AC1 > SBI PORTB,1 +| | +| | SKIP_FINAL: +| 000582 D031 | RCALL NICK_SUB1 +| 000583 947A | DEC Y_SIZE +| 000584 > RJNE MORE_Y +| 000584 F009 > BREQ LOCAL +| 000585 CF8B > RJMP MORE_Y +| > LOCAL: +| | +| 000586 9508 | DONE: RET +| | +| | FIND_CHAR: +| 000587 2FC1 | MOV YL,A +| 000588 27DD | CLR YH +| 000589 0FCC | LSL YL +| 00058A 1FDD | ROL YH +| 00058B 9110 0103 | LDS A,PTR +| 00058D 0FC1 | ADD YL,A +| 00058E 9110 0104 | LDS A,PTR+1 +| 000590 1FD1 | ADC YH,A +| 000591 9110 0105 | LDS A,PTR+2 +| 000593 D5F9 | RCALL SELECT_XPAGE +| 000594 D1C4 | RCALL LPMS +| 000595 9621 | ADIW YL,$01 +| 000596 2CF0 | MOV W,R0 +| 000597 D1C1 | RCALL LPMS +| 000598 2DCF | MOV YL,W +| 000599 2DD0 | MOV YH,R0 +| 00059A 9110 0103 | LDS A,PTR +| 00059C 0FC1 | ADD YL,A +| 00059D 9110 0104 | LDS A,PTR+1 +| 00059F 1FD1 | ADC YH,A +| 0005A0 93C0 0150 | STS CHAR_PTR,YL +| 0005A2 93D0 0151 | STS CHAR_PTR+1,YH +| 0005A4 9508 | RET +| | +| | CHAR_WIDTH: +| 0005A5 91C0 0150 | LDS YL,CHAR_PTR +| 0005A7 91D0 0151 | LDS YH,CHAR_PTR+1 +| 0005A9 D1AF | RCALL LPMS +| 0005AA 2C80 | MOV X_SIZE,R0 +| 0005AB 9721 | SBIW YL,$01 +| 0005AC FC85 | SBRC X_SIZE,5 +| 0005AD C1AB | RJMP LPMS ; PROPORTIONAL WIDTH IS PRESENT +| 0005AE 91C0 0103 | LDS YL,PTR +| 0005B0 91D0 0104 | LDS YH,PTR+1 +| 0005B2 5FDE | SUBI YH,$FE +| 0005B3 C1A5 | RJMP LPMS ; NO PROPORTIONAL WIDTH, USE CELL WIDTH +| | +| | NICK_SUB1: ; SET FLAG FOR COPY, LINE_CNT +| 0005B4 93CF | PUSH YL +| 0005B5 93DF | PUSH YH +| | +| 0005B6 2D19 | MOV A,LINE_CNT +| 0005B7 D039 | RCALL FIND_BIT +| 0005B8 8118 | LD A,Y +| 0005B9 2B12 | OR A,B +| 0005BA 8318 | ST Y,A +| | +| 0005BB 91DF | POP YH +| 0005BC 91CF | POP YL +| 0005BD 9508 | RET +| | +| | NICK_SUB2: ; TEST FLAG AND COPY, LINE_COUNT +| 0005BE 932F | PUSH B +| 0005BF 93CF | PUSH YL +| 0005C0 93DF | PUSH YH +| | +| 0005C1 9110 013B | LDS A,LINE_COUNT +| 0005C3 D02D | RCALL FIND_BIT +| 0005C4 8118 | LD A,Y +| 0005C5 2312 | AND A,B +| 0005C6 > RJEQ NICK_SUB2_DONE +| 0005C6 F409 > BRNE LOCAL +| 0005C7 C01F > RJMP NICK_SUB2_DONE +| > LOCAL: +| | +| 0005C8 8128 | LD B,Y +| 0005C9 2721 | EOR B,A +| 0005CA 8328 | ST Y,B +| | +| | ; LET'S BE SAFE +| 0005CB E010 | LDI A,0 ; SET LONGEST POSSIBLE BREAK TIMEOUT +| 0005CC 9310 016B | STS BREAK_COUNT,A ; WHILE COPYING TO DISPLAY BUFFER +| | +| 0005CE 93AF | PUSH XL +| 0005CF 93BF | PUSH XH +| | +| 0005D0 27CC | CLR YL +| 0005D1 91D0 013B | LDS YH,LINE_COUNT +| 0005D3 95D6 | LSR YH +| 0005D4 95C7 | ROR YL +| 0005D5 95D6 | LSR YH +| 0005D6 95C7 | ROR YL ; Y -> DISPLAY BUFFER +| | +| 0005D7 2FAC | MOV XL,YL +| 0005D8 2FBD | MOV XH,YH +| 0005D9 5EB0 | SUBI XH,HIGH(-DRAW_DSPRAM) ; X -> DRAWING BUFFER +| | +| 0005DA E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 0005DB D5B1 | RCALL SELECT_XPAGE +| | +| 0005DC E220 | LDI B,32 +| 0005DD D56C | RCALL COPY_BYTES ; 240 PIXELS, PLUS 16 FOR SAMSUNG +| | +| 0005DE 9712 | SBIW XL,2 +| 0005DF 9626 | ADIW YL,6 +| 0005E0 E022 | LDI B,2 +| 0005E1 D568 | RCALL COPY_BYTES ; REPEAT FINAL 16 PIXELS FOR HYUNDAI +| | +| 0005E2 91BF | POP XH +| 0005E3 91AF | POP XL +| | +| 0005E4 EC10 | LDI A,-$40 +| 0005E5 9310 016B | STS BREAK_COUNT,A ; SET VERY SHORT BREAK TIMEOUT +| | +| | NICK_SUB2_DONE: +| 0005E7 9110 013B | LDS A,LINE_COUNT +| 0005E9 9513 | INC A +| 0005EA 771F | ANDI A,DISPLAY_LINES-1 +| 0005EB 9310 013B | STS LINE_COUNT,A +| | +| 0005ED 91DF | POP YH +| 0005EE 91CF | POP YL +| 0005EF 912F | POP B +| 0005F0 9508 | RET +| | +| | ; NEW CODE: (NOT WORKING YET) +| | ; WE HAVE JUST DRAWN INTO THE DRAWING BUFFER AT $62000, +| | ; AND NOW WANT TO COPY THE DOT ROW CONCERNED +| | ; TO THE THE DISPLAY BUFFER AT $60000 +| | ; CLI +| | ; +| | ; PUSH YL +| | ; PUSH XL +| | ; PUSH XH +| | ; +| | ; A0_A13 YL,YH +| | ; +| | ; LDI XL,LOW(ROWBUF) ; SRAM BUFFER FOR BLOCK READ +| | ; LDI XH,HIGH(ROWBUF) +| | ; CLR A +| | ; OUT DDRA,A ; PORTA INPUT +| | ; CBI PORTB,0 ; CS ON +| | ; IN YL,PORTC +| | ; ANDI YL,$C0 ; POINT TO START OF ROW +| | ; LDI B,$20 ; COPYING 32 BYTES +| | ;NSUB0: OUT PORTC,YL ; SET ADDRESS +| | ; INC YL ; NEED SOME DELAY HERE +| | ; DEC B +| | ; IN A,PINA ; READ DATA +| | ; ST X+,A ; SAVE IN ROW BUFFER +| | ; BRNE NSUB0 +| | ; SBI PORTB,0 ; CS OFF +| | ; SER A +| | ; OUT DDRA,A ; PORTA OUTPUT +| | ; +| | ; LDI XL,LOW(ROWBUF) ; SRAM BUFFER FOR BLOCK READ +| | ; LDI XH,HIGH(ROWBUF) +| | ; +| | ; LDI A,LATCH11_SAV +| | ; ANDI A,$7F ; POINT TO $2000 LOWER +| | ; OUT PORTA,A +| | ; SBI PORTB,3 +| | ; CBI PORTB,3 +| | ; +| | ; IN YL,PORTC +| | ; ANDI YL,$C0 ; POINT TO START OF ROW +| | ; LDI B,$20 ; COPYING 32 BYTES +| | ; CBI PORTB,1 ; WE ON +| | ;NSUB1: OUT PORTC,YL ; SET ADDRESS +| | ; LD A,X+ ; GET DATA FROM ROW BUFFER +| | ; OUT PORTA,A +| | ; INC YL ; MAY AS WELL DELAY HERE +| | ; DEC B +| | ; CBI PORTB,0 ; CS ON +| | ; SBI PORTB,0 ; CS OFF +| | ; BRNE NSUB1 +| | ; +| | ; ADDI YL,7 ; SHIFT LAST 2 BYTES FOR HYUNDAI +| | ; OUT PORTC,YL ; SET ADDRESS +| | ; CBI PORTB,0 ; CS ON +| | ; SBI PORTB,0 ; CS OFF +| | ; DEC YL +| | ; OUT PORTC,YL ; SET ADDRESS +| | ; SBIW XL,2 +| | ; LD A,X +| | ; OUT PORTA,A +| | ; CBI PORTB,0 ; CS ON +| | ; SBI PORTB,0 ; CS OFF +| | ; +| | ; SBI PORTB,1 ; WE OFF +| | ; LDI A,LATCH11_SAV ; RESTORE H ADDRESS +| | ; OUT PORTA,A +| | ; SBI PORTB,3 +| | ; CBI PORTB,3 +| | ; +| | ; POP XH +| | ; POP XL +| | ; POP YL +| | ; SEI +| | ; RET +| | +| | FIND_BIT: +| 0005F1 E3CC | LDI YL,LOW(LINE_FLAGS) +| 0005F2 E0D1 | LDI YH,HIGH(LINE_FLAGS) +| | ; LET'S BE SAFE +| 0005F3 771F | ANDI A,$7F +| 0005F4 2F21 | MOV B,A +| 0005F5 9526 | LSR B +| 0005F6 9526 | LSR B +| 0005F7 9526 | LSR B +| 0005F8 0FC2 | ADD YL,B +| 0005F9 E020 | LDI B,0 +| 0005FA 1FD2 | ADC YH,B +| 0005FB E021 | LDI B,1 +| 0005FC 7017 | ANDI A,7 +| 0005FD F019 | BREQ FIND_BIT_RET +| | FIND_BIT_LOOP: +| 0005FE 0F22 | LSL B +| 0005FF 951A | DEC A +| 000600 F7E9 | BRNE FIND_BIT_LOOP +| | FIND_BIT_RET: +| 000601 9508 | RET +| | +| | GO_READ_BYTE: +| 000602 C554 | RJMP READ_BYTE +| | +| | GO_WRITE_BYTE: +| 000603 C56F | RJMP WRITE_BYTE +| | +| | GO_CLEAR_BYTES: +| 000604 C54C | RJMP CLEAR_BYTES +| | +| | GO_SELECT_XPAGE: +| 000605 C587 | RJMP SELECT_XPAGE +| | +| | GO_SCROLL_REGION: +| 000606 C497 | RJMP SCROLL_REGION +| | +| | GO_MAIN_LOOP: +| 000607 CB8D | RJMP MAIN_LOOP +| | +| | GO_EXT_INT0: +| 000608 C1DF | RJMP EXT_INT0 +| | +| | GO_EXT_INT1: +| 000609 C1DF | RJMP EXT_INT1 +| | +| | GO_TIM2_OVF: +| 00060A C58F | RJMP TIM2_OVF +| | +| | GO_T1_OVERFLOW: +| 00060B C1E6 | RJMP T1_OVERFLOW +| | +| | GO_T0_OVERFLOW: +| 00060C C2C6 | RJMP T0_OVERFLOW +| | +| | DRAW_RECT: +| 00060D 9478 | SEI +| 00060E 9090 0153 | LDS LINE_CNT,RECT_Y +| 000610 9160 0152 | LDS XPIXEL,RECT_X +| 000612 D13A | RCALL CALCULATE_XBYTE +| 000613 9360 0102 | STS XPIXEL_SAV,XPIXEL +| 000615 92A0 0100 | STS XBYTE_SAV,XBYTE +| 000617 9070 0155 | LDS Y_SIZE,RECT_YY +| 000619 27CC | CLR YL +| 00061A 2DD9 | MOV YH,LINE_CNT +| 00061B 95D6 | LSR YH +| 00061C 95C7 | ROR YL +| 00061D 95D6 | LSR YH +| 00061E 95C7 | ROR YL +| 00061F 5ED0 | SUBI YH,HIGH(-DRAW_DSPRAM) ; DRAW INTO DRAWING BUFFER +| 000620 E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 000621 D56B | RCALL SELECT_XPAGE +| 000622 C007 | RJMP L03A3 +| 000623 5CC0 | L039A: SUBI YL,LOW(-$40) +| 000624 4FDF | SBCI YH,HIGH(-$40) +| 000625 9493 | INC LINE_CNT +| 000626 9160 0102 | LDS XPIXEL,XPIXEL_SAV +| 000628 90A0 0100 | LDS XBYTE,XBYTE_SAV +| 00062A 2AAC | L03A3: OR XBYTE,YL +| 00062B EF1F | LDI A,$FF +| 00062C 9080 0154 | LDS X_SIZE,RECT_XX +| 00062E E000 | LDI F,$00 +| 00062F 1680 | CP X_SIZE,F +| 000630 F041 | BREQ L03B0 +| 000631 E008 | LDI F,$08 +| 000632 1680 | CP X_SIZE,F +| 000633 F0B8 | BRLO L03C2 +| 000634 2366 | TST XPIXEL +| 000635 F019 | BREQ L03B0 +| 000636 9516 | L03AD: LSR A +| 000637 956A | DEC XPIXEL +| 000638 F7E9 | BRNE L03AD +| 000639 D13B | L03B0: RCALL WR_DISP_MEM +| 00063A E008 | LDI F,$08 +| 00063B 9110 0102 | LDS A,XPIXEL_SAV +| 00063D 1B01 | SUB F,A +| 00063E 1A80 | SUB X_SIZE,F +| 00063F 94A3 | INC XBYTE +| 000640 EF1F | LDI A,$FF +| 000641 E008 | L03B8: LDI F,$08 +| 000642 1680 | CP X_SIZE,F +| 000643 F038 | BRLO L03C2 +| 000644 F0B1 | BREQ L03D2 +| 000645 D12F | RCALL WR_DISP_MEM +| 000646 EF1F | LDI A,$FF +| 000647 E008 | LDI F,$08 +| 000648 1A80 | SUB X_SIZE,F +| 000649 94A3 | INC XBYTE +| 00064A CFF6 | RJMP L03B8 +| 00064B 2088 | L03C2: TST X_SIZE +| 00064C F079 | BREQ L03D3 +| 00064D 9516 | L03C4: LSR A +| 00064E 948A | DEC X_SIZE +| 00064F F7E9 | BRNE L03C4 +| 000650 9510 | COM A +| 000651 2366 | TST XPIXEL +| 000652 F041 | BREQ L03D2 +| 000653 2722 | CLR B +| 000654 9516 | L03CB: LSR A +| 000655 9527 | ROR B +| 000656 956A | DEC XPIXEL +| 000657 F7E1 | BRNE L03CB +| 000658 D11C | RCALL WR_DISP_MEM +| 000659 94A3 | INC XBYTE +| 00065A 2F12 | MOV A,B +| 00065B D119 | L03D2: RCALL WR_DISP_MEM +| 00065C DF57 | L03D3: RCALL NICK_SUB1 +| 00065D 947A | DEC Y_SIZE +| 00065E 2700 | CLR F +| 00065F 1270 | CPSE Y_SIZE,F +| 000660 CFC2 | RJMP L039A +| 000661 9508 | NO_GO: RET +| | +| | FILLED_RECTNC: +| 000662 9100 0158 | LDS F,RECTNC_XX +| 000664 950A | DEC F +| 000665 3002 | CPI F,2 +| 000666 F3D0 | BRLO NO_GO +| 000667 9100 0159 | LDS F,RECTNC_YY +| 000669 3003 | CPI F,3 +| 00066A F3B0 | BRLO NO_GO +| | +| 00066B 9100 0156 | LDS F,RECTNC_X +| 00066D 9503 | INC F +| 00066E 9300 0152 | STS RECT_X,F +| 000670 9100 0157 | LDS F,RECTNC_Y +| 000672 9300 0153 | STS RECT_Y,F +| 000674 9080 0158 | LDS X_SIZE,RECTNC_XX +| 000676 948A | DEC X_SIZE +| 000677 948A | DEC X_SIZE +| 000678 9280 0154 | STS RECT_XX,X_SIZE +| 00067A E001 | LDI F,$01 +| 00067B 9300 0155 | STS RECT_YY,F +| 00067D DF8F | RCALL DRAW_RECT +| | +| 00067E 9100 0156 | LDS F,RECTNC_X +| 000680 9300 0152 | STS RECT_X,F +| 000682 9080 0158 | LDS X_SIZE,RECTNC_XX +| 000684 9280 0154 | STS RECT_XX,X_SIZE +| 000686 C03A | RJMP FILLED_RECTNC_ENTRY +| | +| | DRAW_RECTNC: +| 000687 9100 0158 | LDS F,RECTNC_XX +| 000689 950A | DEC F +| 00068A 3002 | CPI F,2 +| 00068B F2A8 | BRLO NO_GO +| 00068C 9100 0159 | LDS F,RECTNC_YY +| 00068E 3003 | CPI F,3 +| 00068F F288 | BRLO NO_GO +| | +| 000690 9100 0156 | LDS F,RECTNC_X +| 000692 9503 | INC F +| 000693 9300 0152 | STS RECT_X,F +| 000695 9100 0157 | LDS F,RECTNC_Y +| 000697 9300 0153 | STS RECT_Y,F +| 000699 9080 0158 | LDS X_SIZE,RECTNC_XX +| 00069B 948A | DEC X_SIZE +| 00069C 948A | DEC X_SIZE +| 00069D 9280 0154 | STS RECT_XX,X_SIZE +| 00069F E001 | LDI F,$01 +| 0006A0 9300 0155 | STS RECT_YY,F +| 0006A2 DF6A | RCALL DRAW_RECT +| | +| 0006A3 9100 0156 | LDS F,RECTNC_X +| 0006A5 9300 0152 | STS RECT_X,F +| 0006A7 9100 0157 | LDS F,RECTNC_Y +| 0006A9 9503 | INC F +| 0006AA 9300 0153 | STS RECT_Y,F +| 0006AC 9070 0159 | LDS Y_SIZE,RECTNC_YY +| 0006AE 947A | DEC Y_SIZE +| 0006AF 947A | DEC Y_SIZE +| 0006B0 9270 0155 | STS RECT_YY,Y_SIZE +| 0006B2 E001 | LDI F,$01 +| 0006B3 9300 0154 | STS RECT_XX,F +| 0006B5 DF57 | RCALL DRAW_RECT +| | +| 0006B6 9080 0158 | LDS X_SIZE,RECTNC_XX +| 0006B8 9100 0156 | LDS F,RECTNC_X +| 0006BA 0D08 | ADD F,X_SIZE +| 0006BB 950A | DEC F +| 0006BC 9300 0152 | STS RECT_X,F +| 0006BE E001 | LDI F,$01 +| 0006BF 9300 0154 | STS RECT_XX,F +| | FILLED_RECTNC_ENTRY: +| 0006C1 9100 0157 | LDS F,RECTNC_Y +| 0006C3 9503 | INC F +| 0006C4 9300 0153 | STS RECT_Y,F +| 0006C6 9070 0159 | LDS Y_SIZE,RECTNC_YY +| 0006C8 947A | DEC Y_SIZE +| 0006C9 947A | DEC Y_SIZE +| 0006CA 9270 0155 | STS RECT_YY,Y_SIZE +| 0006CC DF40 | RCALL DRAW_RECT +| | +| 0006CD 9100 0156 | LDS F,RECTNC_X +| 0006CF 9503 | INC F +| 0006D0 9300 0152 | STS RECT_X,F +| 0006D2 9080 0158 | LDS X_SIZE,RECTNC_XX +| 0006D4 948A | DEC X_SIZE +| 0006D5 948A | DEC X_SIZE +| 0006D6 9280 0154 | STS RECT_XX,X_SIZE +| 0006D8 9070 0159 | LDS Y_SIZE,RECTNC_YY +| 0006DA 9100 0157 | LDS F,RECTNC_Y +| 0006DC 0D07 | ADD F,Y_SIZE +| 0006DD 950A | DEC F +| 0006DE 9300 0153 | STS RECT_Y,F +| 0006E0 E001 | LDI F,$01 +| 0006E1 9300 0155 | STS RECT_YY,F +| 0006E3 CF29 | RJMP DRAW_RECT +| | +| | ; ----------------------------------------------------------------------------- +| | +| | TX_EMPTY: +| 0006E4 > MTX_EMPTY +| 0006E4 B61F > IN SR,SREG +| 0006E5 930F > PUSH F +| > +| 0006E6 ED0F > LDI F,-API_TIMEOUT ; FEED TX/RX WATCHDOG +| 0006E7 2EC0 > MOV API_WATCHDOG,F +| > +| 0006E8 93EF > PUSH ZL +| 0006E9 93FF > PUSH ZH +| 0006EA 2DE4 > MOV ZL,TX_PTR +| 0006EB 5AE0 > SUBI ZL,-TX_BUF +| 0006EC 27FF > CLR ZH +| 0006ED 8100 > LD F,Z ; GET CHARACTER FROM TX BUFFER +| 0006EE 91FF > POP ZH +| 0006EF 91EF > POP ZL +| > +| 0006F0 B90C > OUT UDR,F +| > +| 0006F1 945A > DEC TX_COUNT +| 0006F2 9443 > INC TX_PTR +| 0006F3 E10F > LDI F,TX_SIZE-1 +| 0006F4 2240 > AND TX_PTR,F +| > +| 0006F5 946A > DEC API_REMAIN ; MORE TO SEND? +| 0006F6 F00A > BRMI GO_API_DONE1 ; YES, AWAIT NEXT TX EMPTY INTERRUPT +| 0006F7 C04C > RJMP API_REINIT ; NO, AWAIT NEXT DATA SIZE COMMAND +| > GO_API_DONE1: +| 0006F8 C051 > RJMP API_DONE +| | RX_COMPLETE: +| 0006F9 > MRX_COMPLETE +| 0006F9 B61F > IN SR,SREG +| 0006FA 930F > PUSH F +| > +| 0006FB ED0F > LDI F,-API_TIMEOUT ; FEED TX/RX WATCHDOG +| 0006FC 2EC0 > MOV API_WATCHDOG,F +| > +| 0006FD B10C > IN F,UDR +| 0006FE 995C > SBIC USR,FE ; BREAK DETECTED? +| 0006FF C03E > RJMP API_FRAMING_ERROR +| > +| 000700 FCE7 > SBRC API_STATE,APIDATA +| 000701 C02C > RJMP API_RX_DATA ; WITH F = CHARACTER +| 000702 FCE6 > SBRC API_STATE,APISIZE +| 000703 C00E > RJMP API_DATA_SIZE ; WITH F = CHARACTER +| > +| > ; RECEIVED 4800 BPS ADDRESS COMMAND +| 000704 3002 > CPI F,API_ADDRESS ; CHARACTER = MY ADDRESS? +| 000705 F431 > BRNE API_ADDRESS_DONE +| > +| 000706 E003 > LDI F,API_RATE_FAST ; 115200 BPS +| 000707 B909 > OUT UBRR,F ; SET UART RATE +| > +| 000708 9A53 > SBI UCR,TXEN ; ENABLE UART TX AND TXD PIN +| > +| 000709 E400 > LDI F,1< OR API_STATE,F ; SAY WE ARE EXPECTING DATA SIZE CMD +| 00070B C03E > RJMP API_DONE +| > +| > API_ADDRESS_DONE: +| 00070C 3A0A > CPI F,$AA ; CHARACTER = TURNON COMMAND? +| 00070D F419 > BRNE API_TURNON_DONE +| 00070E E000 > LDI F,0 +| 00070F 9300 016A > STS TURNON_COUNT,F ; REQUEST IMMEDIATE TURNON +| > API_TURNON_DONE: +| > ; 18DEC01 RESTORED IT TO NORMAL FOR HYT1500 RELEASE +| > ; CPI F,9 ; REALLY A VALID ADDRESS COMMAND? +| > ; BRLO API_BAD_DONE ; YES, ALL IS OK (IT WAS SOMEONE ELSE) +| > ; PUSH ZL ; NO, WARN THAT THE BUS HAS ERRORS +| > ; PUSH ZH +| > ; MOV ZL,RX_COUNT +| > ; CPI ZL,RX_SIZE +| > ; BRSH API_BAD_SKIP +| > ; ADD ZL,RX_PTR +| > ; ANDI ZL,RX_SIZE-1 +| > ; SUBI ZL,-RX_BUF +| > ; CLR ZH +| > ; LDI F,'*' ; DIAGNOSTIC INDICATOR FOR BAD COMMAND +| > ; ST Z,F ; SAVE CHARACTER IN RX BUFFER +| > ; INC RX_COUNT +| > ;API_BAD_SKIP: +| > ; POP ZH +| > ; POP ZL +| > ;API_BAD_DONE: +| 000711 C038 > RJMP API_DONE +| > +| > API_DATA_SIZE: +| > ; RECEIVED DATA SIZE COMMAND +| 000712 2E60 > MOV API_REMAIN,F +| > +| 000713 E800 > LDI F,RX_SIZE +| 000714 1903 > SUB F,RX_COUNT ; F = AVAILABLE RX BUFFER +| 000715 F40A > BRPL RX_RESPOND_F +| 000716 E70F > LDI F,$7F ; F = MAXIMUM POSSIBLE TRANSFER COUNT +| > +| > RX_RESPOND_F: +| 000717 2066 > TST API_REMAIN ; TEST TRANSFER DIRECTION +| 000718 F412 > BRPL RX_RESPOND ; USE F IF WE NEED TO RECEIVE +| > +| 000719 2D05 > MOV F,TX_COUNT +| 00071A 6800 > ORI F,$80 ; F = QUEUED TX CHARACTERS +| > +| > RX_RESPOND: +| > ; SEND DATA SIZE RESPONSE +| > ; API_REMAIN = HOST MAX, F = OUR MAX +| 00071B B90C > OUT UDR,F ; SEND DATA SIZE RESPONSE +| > +| 00071C 1506 > CP F,API_REMAIN +| 00071D F408 > BRSH RX_RESPOND_OK +| 00071E 2E60 > MOV API_REMAIN,F ; API_REMAIN = LESSER OUR / HOST MAX +| > +| > RX_RESPOND_OK: +| 00071F 2D06 > MOV F,API_REMAIN +| 000720 770F > ANDI F,$7F ; NULL REQUEST? +| 000721 F039 > BREQ API_NULL ; YES, REVERT TO 4800 WHEN TX COMPLETE +| > ; NO, AWAIT RX COMPLETE / TX EMPTY INT +| 000722 EC00 > LDI F,1< OR API_STATE,F ; WE ARE EXPECTING TO TRANSFER DATA +| > +| 000724 946A > DEC API_REMAIN ; NUDGE FOR BRPL / BRMI ALGORITHM +| 000725 F522 > BRPL API_DONE ; WE WILL RECEIVE, NO FURTHER ACTION +| > +| 000726 9857 > CBI UCR,RXCIE ; DISABLE UART RX COMPLETE INTERRUPT +| 000727 9A55 > SBI UCR,UDRIE ; ENABLE UART DATA REGISTER EMPTY INT +| 000728 C021 > RJMP API_DONE +| > +| > API_NULL: +| 000729 EB0F > LDI F,~(1< AND API_STATE,F ; IN CASE NO DATA TRANSFERRED +| > +| 00072B 9A56 > SBI UCR,TXCIE ; ENABLE UART TX COMPLETE INTERRUPT +| 00072C 9A5E > SBI USR,TXC ; CLEAR UART TX COMPLETE PENDING BIT +| 00072D C01C > RJMP API_DONE +| > +| > API_RX_DATA: +| > ; RECEIVED DATA BYTE, SAVE IT +| > ; OUT UDR,API_REMAIN +| > +| 00072E 93EF > PUSH ZL +| 00072F 93FF > PUSH ZH +| 000730 2DE3 > MOV ZL,RX_COUNT +| 000731 0DE2 > ADD ZL,RX_PTR +| 000732 77EF > ANDI ZL,RX_SIZE-1 +| 000733 58E0 > SUBI ZL,-RX_BUF +| 000734 27FF > CLR ZH +| 000735 8300 > ST Z,F ; SAVE CHARACTER IN RX BUFFER +| 000736 91FF > POP ZH +| 000737 91EF > POP ZL +| > +| 000738 9433 > INC RX_COUNT +| > +| 000739 946A > DEC API_REMAIN ; MORE TO RECEIVE? +| 00073A F47A > BRPL API_DONE ; YES, AWAIT NEXT RX COMPLETE INTERRUPT +| 00073B C00C > RJMP API_REVERT ; NO, AWAIT NEXT DATA SIZE COMMAND +| | ;FEED_WDOG: +| | ; MFEED_WDOG +| | TX_COMPLETE: +| 00073C > MTX_COMPLETE +| 00073C B61F > IN SR,SREG +| | API_TIMEOUT_ERROR: +| 00073D > MAPI_TIMEOUT_ERROR +| 00073D 930F > PUSH F +| | API_FRAMING_ERROR: +| | API_RESET_ERROR: +| 00073E > MAPI_FRAMING_ERROR +| 00073E 9853 > CBI UCR,TXEN ; DISABLE UART TX AND TXD PIN +| 00073F E50F > LDI F,API_RATE_SLOW ; 4800 BPS IF EXPECTING ADDRESS COMMAND +| 000740 B909 > OUT UBRR,F ; SET UART RATE +| > +| 000741 EB0F > LDI F,~(1< AND API_STATE,F ; EXPECTING ADDRESS COMMAND +| 000743 24CC > CLR API_WATCHDOG ; NO ACTION, JUST WAIT TO RECEIVE ADDR +| | API_REINIT: +| 000744 > MAPI_REINIT +| 000744 9855 > CBI UCR,UDRIE ; DISABLE UART TX EMPTY INTERRUPT +| 000745 9856 > CBI UCR,TXCIE ; DISABLE UART TX COMPLETE INTERRRUPT +| 000746 9A57 > SBI UCR,RXCIE ; ENABLE UART RX COMPLETE INTERRUPT +| 000747 B10C > IN F,UDR ; CLEAR UART RX COMPLETE PENDING BIT +| | API_REVERT: +| 000748 > MAPI_REVERT +| 000748 E70F > LDI F,~(1< AND API_STATE,F ; EXPECTING ADDRESS / DATA SIZE COMMAND +| | API_DONE: +| 00074A > MAPI_DONE +| 00074A 910F > POP F +| 00074B BE1F > OUT SREG,SR +| 00074C 9518 > RETI +| | +| | ; ----------------------------------------------------------------------------- +| | +| | CALCULATE_XBYTE: +| 00074D 24AA | CLR XBYTE +| 00074E EF00 | LDI F,$F0 +| 00074F 1AA0 | SUB XBYTE,F +| 000750 FF67 | SBRS XPIXEL,7 +| 000751 24AA | CLR XBYTE +| 000752 776F | ANDI XPIXEL,$7F +| 000753 5068 | L0415: SUBI XPIXEL,$08 +| 000754 F014 | BRLT L0419 +| 000755 94A3 | INC XBYTE +| 000756 CFFC | RJMP L0415 +| 000757 5F68 | L0419: SUBI XPIXEL,$F8 +| 000758 9508 | RET +| | +| 000759 > LPMS: A0_A13 YL,YH +| 000759 2F3C > MOV R19,YL +| 00075A 733F > ANDI R19,$3F +| 00075B BB35 > OUT PORTC,R19 +| > +| 00075C 2F3D > MOV R19,YH +| 00075D 0F33 > LSL R19 +| 00075E 0F33 > LSL R19 +| 00075F FBC7 > BST YL,7 ; A7 +| 000760 F931 > BLD R19,1 +| 000761 FBC6 > BST YL,6 ; A6 +| 000762 F930 > BLD R19,0 +| 000763 BB3B > OUT PORTA,R19 +| 000764 94F8 > CLI +| 000765 9AC3 > SBI PORTB,3 +| 000766 98C3 > CBI PORTB,3 +| 000767 9478 > SEI +| 000768 9330 0118 > STS LATCH11_SAV,R19 +| 00076A > RAMRD R0 +| 00076A 2700 > CLR F +| 00076B BB0A > OUT DDRA,F ; PORTA INPUT +| 00076C 94F8 > CLI +| 00076D 98C0 > CBI PORTB,0 ; CS_ON +| 00076E 0000 > NOP +| 00076F 9AC0 > SBI PORTB,0 ; CS_OFF +| 000770 B209 > IN R0,PINA ; READ DATA +| 000771 9478 > SEI +| 000772 EF0F > LDI F,$FF +| 000773 BB0A > OUT DDRA,F ; PORTA OUTPUT +| 000774 9508 | RET ;RETI +| | +| | WR_DISP_MEM: +| 000775 > A0_A13 XBYTE,YH +| 000775 2D3A > MOV R19,XBYTE +| 000776 733F > ANDI R19,$3F +| 000777 BB35 > OUT PORTC,R19 +| > +| 000778 2F3D > MOV R19,YH +| 000779 0F33 > LSL R19 +| 00077A 0F33 > LSL R19 +| 00077B FAA7 > BST XBYTE,7 ; A7 +| 00077C F931 > BLD R19,1 +| 00077D FAA6 > BST XBYTE,6 ; A6 +| 00077E F930 > BLD R19,0 +| 00077F BB3B > OUT PORTA,R19 +| 000780 94F8 > CLI +| 000781 9AC3 > SBI PORTB,3 +| 000782 98C3 > CBI PORTB,3 +| 000783 9478 > SEI +| 000784 9330 0118 > STS LATCH11_SAV,R19 +| 000786 > RAMRD W +| 000786 2700 > CLR F +| 000787 BB0A > OUT DDRA,F ; PORTA INPUT +| 000788 94F8 > CLI +| 000789 98C0 > CBI PORTB,0 ; CS_ON +| 00078A 0000 > NOP +| 00078B 9AC0 > SBI PORTB,0 ; CS_OFF +| 00078C B2F9 > IN W,PINA ; READ DATA +| 00078D 9478 > SEI +| 00078E EF0F > LDI F,$FF +| 00078F BB0A > OUT DDRA,F ; PORTA OUTPUT +| 000790 FEB1 | SBRS FLAGS,1 +| 000791 C003 | RJMP L043E +| 000792 9510 | COM A +| 000793 22F1 | AND W,A +| 000794 C003 | RJMP L0441 +| 000795 26F1 | L043E: EOR W,A +| 000796 FCB0 | SBRC FLAGS,0 +| 000797 2AF1 | OR W,A +| 000798 > L0441: A0_A13 XBYTE,YH +| 000798 2D3A > MOV R19,XBYTE +| 000799 733F > ANDI R19,$3F +| 00079A BB35 > OUT PORTC,R19 +| > +| 00079B 2F3D > MOV R19,YH +| 00079C 0F33 > LSL R19 +| 00079D 0F33 > LSL R19 +| 00079E FAA7 > BST XBYTE,7 ; A7 +| 00079F F931 > BLD R19,1 +| 0007A0 FAA6 > BST XBYTE,6 ; A6 +| 0007A1 F930 > BLD R19,0 +| 0007A2 BB3B > OUT PORTA,R19 +| 0007A3 94F8 > CLI +| 0007A4 9AC3 > SBI PORTB,3 +| 0007A5 98C3 > CBI PORTB,3 +| 0007A6 9478 > SEI +| 0007A7 9330 0118 > STS LATCH11_SAV,R19 +| 0007A9 > RAMWR W +| 0007A9 BAFB > OUT PORTA,W +| 0007AA 94F8 > CLI +| 0007AB 98C1 > CBI PORTB,1 +| 0007AC 98C0 > CBI PORTB,0 +| 0007AD 0000 > NOP +| 0007AE 9AC0 > SBI PORTB,0 +| 0007AF 9478 > SEI +| 0007B0 9AC1 > SBI PORTB,1 +| 0007B1 9508 | RET ;RETI +| | +| | CLEAR_DISPLAY: +| 0007B2 2777 | CLR CURSORX ; HOME CURSOR +| 0007B3 2788 | CLR CURSORY +| 0007B4 2499 | CLR LINE_CNT +| 0007B5 E0C0 | LDI YL,LOW(DRAW_DSPRAM) +| 0007B6 E2D0 | LDI YH,HIGH(DRAW_DSPRAM) +| 0007B7 E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 0007B8 D3D4 | RCALL SELECT_XPAGE +| | CLEAR_DISPLAY_LOOP: +| 0007B9 24AA | CLR XBYTE +| 0007BA 92A0 0100 | STS XBYTE_SAV,XBYTE +| 0007BC 9110 0100 | L065C: LDS A,XBYTE_SAV +| 0007BE 2B1C | OR A,YL +| 0007BF > A0_A13 A,YH +| 0007BF 2F31 > MOV R19,A +| 0007C0 733F > ANDI R19,$3F +| 0007C1 BB35 > OUT PORTC,R19 +| > +| 0007C2 2F3D > MOV R19,YH +| 0007C3 0F33 > LSL R19 +| 0007C4 0F33 > LSL R19 +| 0007C5 FB17 > BST A,7 ; A7 +| 0007C6 F931 > BLD R19,1 +| 0007C7 FB16 > BST A,6 ; A6 +| 0007C8 F930 > BLD R19,0 +| 0007C9 BB3B > OUT PORTA,R19 +| 0007CA 94F8 > CLI +| 0007CB 9AC3 > SBI PORTB,3 +| 0007CC 98C3 > CBI PORTB,3 +| 0007CD 9478 > SEI +| 0007CE 9330 0118 > STS LATCH11_SAV,R19 +| 0007D0 E000 | LDI F,$00 +| 0007D1 > RAMWR F +| 0007D1 BB0B > OUT PORTA,F +| 0007D2 94F8 > CLI +| 0007D3 98C1 > CBI PORTB,1 +| 0007D4 98C0 > CBI PORTB,0 +| 0007D5 0000 > NOP +| 0007D6 9AC0 > SBI PORTB,0 +| 0007D7 9478 > SEI +| 0007D8 9AC1 > SBI PORTB,1 +| 0007D9 94A3 | INC XBYTE +| 0007DA E200 | LDI F,$20 +| 0007DB 16A0 | CP XBYTE,F +| 0007DC F019 | BREQ L0674 +| 0007DD 92A0 0100 | STS XBYTE_SAV,XBYTE +| 0007DF CFDC | RJMP L065C +| 0007E0 DDD3 | L0674: RCALL NICK_SUB1 +| 0007E1 9493 | INC LINE_CNT +| 0007E2 5CC0 | SUBI YL,LOW(-$40) +| 0007E3 4FDF | SBCI YH,HIGH(-$40) +| 0007E4 34D0 | CPI YH,HIGH(DRAW_DSPRAM+DISPLAY_LINES*$40) +| 0007E5 > RJNE CLEAR_DISPLAY_LOOP +| 0007E5 F009 > BREQ LOCAL +| 0007E6 CFD2 > RJMP CLEAR_DISPLAY_LOOP +| > LOCAL: +| 0007E7 9508 | RET +| | +| | ; ----------------------------------------------------------------------------- +| | +| | EXT_INT0: +| | ;**: +| 0007E8 9518 | RETI +| | ;** IN SR,SREG ; MEASURE VCC +| | ;** SBI DDRD,2 +| | ;** IN C,TCNT1L +| | ;** IN D,TCNT1H +| | ;** STS VCCH,D +| | ;** STS VCCL,C +| | ;** RJMP EXT_INT_RET +| | +| | EXT_INT1: +| 0007E9 B61F | IN SR,SREG ; MEASURE TEMPERATURE +| 0007EA 9A8B | SBI DDRD,3 +| 0007EB B54C | IN C,TCNT1L +| 0007EC B55D | IN D,TCNT1H +| 0007ED 9350 0109 | STS TMPH,D +| 0007EF 9340 0108 | STS TMPL,C +| 0007F1 C114 | RJMP EXT_INT_RET +| | +| | T1_OVERFLOW: +| 0007F2 B61F | IN SR,SREG +| 0007F3 B35A | IN D,DDRA ; SAVE STATE OF THE WORLD +| 0007F4 935F | PUSH D +| 0007F5 B35B | IN D,PORTA +| 0007F6 935F | PUSH D +| 0007F7 B355 | IN D,PORTC +| 0007F8 935F | PUSH D +| 0007F9 9150 0118 | LDS D,LATCH11_SAV +| 0007FB 935F | PUSH D +| | +| 0007FC EF5F | LDI D,$FF +| 0007FD BB5A | OUT DDRA,D ; PORTA OUTPUT +| | +| 0007FE E750 | LDI D,$70 ; FORCE DUMMY COMPARE MATCH +| 0007FF BD5F | OUT TCCR1A,D ; TO SET OC1B, TOGGLE OC1A +| 000800 B54C | IN C,TCNT1L ; (FOR REV E PARTS) +| 000801 B55D | IN D,TCNT1H ; READ CURRENT COUNT +| 000802 5F48 | SUBI C,LOW(-8) ; ADD JUST ENOUGH TIME +| 000803 4F5F | SBCI D,HIGH(-8) ; FOR THESE INSTRUCTIONS +| 000804 BD5B | OUT OCR1AH,D ; AND WRITE TO COMPARE REGISTERS +| 000805 BD4A | OUT OCR1AL,C +| 000806 BD59 | OUT OCR1BH,D +| 000807 BD48 | OUT OCR1BL,C +| | +| 000808 9140 014C | LDS C,CLOCKING_PTR +| | ; TST C ; START OF 4 LINE BLOCK? (1 BASED) +| 00080A 9150 014D | lds d,CLOCKING_PTR+1 +| 00080C 7051 | andi d,1 +| 00080D 2B45 | or c,d ; checks for start of an 8 line block +| | ; rjmp BREAK0 ; temporary (prevents switching off via power switch) +| 00080E F449 | BRNE BREAK0 ; NO, BREAK COUNTER IS OK FOR NOW +| | +| 00080F 9150 016B | LDS D,BREAK_COUNT +| 000811 9553 | INC D ; HAD BREAK SOLIDLY FOR TIMEOUT? +| 000812 9350 016B | STS BREAK_COUNT,D +| 000814 F451 | BRNE BREAK1 ; NO, CLOCK OUT TO DISPLAY AS NORMAL +| 000815 EB5F | LDI D,~(1<<6) +| 000816 22B5 | AND FLAGS,D ; SAY WE TURNED OFF VIA BREAK DETECTION +| | GO_SLEEP_ENTRY: +| 000817 C92D | RJMP SLEEP_ENTRY +| | +| 000818 0000 | BREAK0: NOP +| 000819 0000 | NOP +| 00081A 0000 | NOP +| 00081B 0000 | NOP +| 00081C 0000 | NOP +| 00081D 0000 | NOP +| 00081E 0000 | NOP +| 00081F 9A8B | BREAK1: SBI DDRD,3 ; PRECHARGE TEMPERATURE MEASUREMENT +| 000820 9A93 | SBI PORTD,3 +| | +| 000821 2755 | CLR D +| 000822 BD5E | OUT TCCR1B,D ; STOP TIMER1 +| 000823 BD5D | OUT TCNT1H,D ; AND CLEAR COUNT +| 000824 BD5C | OUT TCNT1L,D +| | +| 000825 9150 014D | LDS D,CLOCKING_PTR+1 +| 000827 2B54 | OR D,C ; START OF FRAME? (REALLY LINE 1) +| 000828 F071 | BREQ L04E6 ; YES, GO AND TOGGLE M ETC +| | +| 000829 9150 0117 | LDS D,LATCH10_SAV +| 00082B BB5B | OUT PORTA,D +| 00082C 9AC4 | SBI PORTB,4 +| 00082D 9ADD | SBI PORTA,5 ; PULSE CL1 +| 00082E 98DD | CBI PORTA,5 +| 00082F 98C4 | CBI PORTB,4 +| 000830 0000 | NOP ; EQUALIZE DELAY +| 000831 0000 | NOP +| 000832 0000 | NOP +| 000833 0000 | NOP +| 000834 0000 | NOP +| 000835 0000 | NOP +| 000836 C00E | RJMP L04F9 +| | +| 000837 9150 0117 | L04E6: LDS D,LATCH10_SAV +| 000839 6850 | ORI D,$80 ; RAISE FLM +| 00083A 6250 | ORI D,$20 ; RAISE CL1 +| 00083B BB5B | OUT PORTA,D +| | +| 00083C 9AC4 | SBI PORTB,4 +| 00083D E640 | LDI C,$60 ; TOGGLE M AND CL1 +| 00083E 2754 | EOR D,C +| 00083F BB5B | OUT PORTA,D +| 000840 775F | ANDI D,$7F ; DROP FLM +| 000841 BB5B | OUT PORTA,D +| 000842 98C4 | CBI PORTB,4 +| 000843 9350 0117 | STS LATCH10_SAV,D +| | +| 000845 9150 0117 | L04F9: LDS D,LATCH10_SAV ; SAVE STATE +| 000847 935F | PUSH D +| | +| 000848 93EF | PUSH ZL +| 000849 93FF | PUSH ZH +| 00084A 91E0 014C | LDS ZL,CLOCKING_PTR +| 00084C 91F0 014D | LDS ZH,CLOCKING_PTR+1 +| | +| 00084E 5CE0 | SUBI ZL,LOW(-$40) +| 00084F 4FFF | SBCI ZH,HIGH(-$40) +| 000850 71FF | ANDI ZH,HIGH(DISPLAY_LINES*$40-1) +| | +| 000851 > A0_A15 ZL,ZH +| 000851 933F > PUSH R19 +| > +| 000852 2F3E > MOV R19,ZL +| 000853 733F > ANDI R19,$3F +| 000854 BB35 > OUT PORTC,R19 +| > +| 000855 2F3F > MOV R19,ZH +| 000856 0F33 > LSL R19 +| 000857 0F33 > LSL R19 +| 000858 FBE7 > BST ZL,7 ; A7 +| 000859 F931 > BLD R19,1 +| 00085A FBE6 > BST ZL,6 ; A6 +| 00085B F930 > BLD R19,0 +| 00085C BB3B > OUT PORTA,R19 +| 00085D 9AC3 > SBI PORTB,3 +| 00085E 98C3 > CBI PORTB,3 +| 00085F 93F0 0118 > STS LATCH11_SAV,ZH +| > +| 000861 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 000863 FBF7 > BST ZH,7 ; A15 +| 000864 F931 > BLD R19,1 +| 000865 FBF6 > BST ZH,6 ; A14 +| 000866 F930 > BLD R19,0 +| 000867 BB3B > OUT PORTA,R19 +| 000868 9AC4 > SBI PORTB,4 +| 000869 98C4 > CBI PORTB,4 +| 00086A 9330 0117 > STS LATCH10_SAV,R19 +| > +| 00086C 913F > POP R19 +| | +| 00086D 98C1 | CBI PORTB,1 ; CLR HC590 +| 00086E 9AC1 | SBI PORTB,1 +| 00086F 9897 | CBI PORTD,7 ; DROP OE FOR HC590 +| 000870 2744 | CLR C +| 000871 BB4A | OUT DDRA,C ; PORTA HI Z +| 000872 EC40 | LDI C,$C0 +| 000873 BB44 | OUT DDRC,C ; PORTC HI Z +| 000874 98C0 | CBI PORTB,0 ; DROP CS FOR DSPRAM +| | +| 000875 2755 | CLR D +| 000876 BD5B | OUT OCR1AH,D +| | +| | ; LDI D,1 ; TO CLOCK AT 5.5/2 MHZ +| 000877 BD5A | OUT OCR1AL,D ; TO CLOCK AT 7.3/2 MHZ +| 000878 E059 | LDI D,$09 +| 000879 BD5E | OUT TCCR1B,D ; START CL2 CLOCKING WITH CLR ON MATCH +| | +| 00087A 93E0 014C | STS CLOCKING_PTR,ZL +| 00087C 93F0 014D | STS CLOCKING_PTR+1,ZH +| 00087E 91FF | POP ZH +| 00087F 91EF | POP ZL +| | +| | ;!!! LDI D,$7A ; WAIT FOR 32uSEC +| | ; LDI D,58 ;$7A ; WAIT FOR 32uSEC GOOD +| 000880 E35C | LDI D,60 ; WAIT FOR 32uSEC +| | ; LDI D,61 ;$7A ; WAIT FOR 32uSEC +| | ; LDI D,62 ;$7A ; WAIT FOR 32uSEC GOOD +| | +| 000881 955A | L050E: DEC D +| 000882 F7F1 | BRNE L050E +| | +| 000883 9AC0 | SBI PORTB,0 ; RAISE CS FOR DSPRAM +| 000884 EF5F | LDI D,$FF +| 000885 BB5A | OUT DDRA,D ; PORTA OUTPUT +| 000886 9A97 | SBI PORTD,7 ; RAISE OE FOR HC590 +| 000887 BB54 | OUT DDRC,D ; PORTC OUTPUT +| | +| 000888 988D | CBI DDRD,5 ; CL2 INPUT TO MEASURE VEE +| 000889 9895 | CBI PORTD,5 ; REMOVE PULL UP +| | +| 00088A E051 | LDI D,$01 ; KILL CLR ON COMPARE MATCH +| 00088B 0000 | NOP ; !WITH OC1A LEFT IN LOW STATE +| 00088C BD5E | OUT TCCR1B,D +| | +| 00088D E05B | LDI D,$0B ; WAIT FOR 3uSEC +| | SETTLE_CL2: +| 00088E 955A | DEC D +| 00088F F7F1 | BRNE SETTLE_CL2 +| | +| 000890 9150 010D | LDS D,VEEH +| 000892 9140 010C | LDS C,VEEL +| 000894 9A8D | SBI DDRD,5 ; CL2 LOW OUTPUT +| 000895 9985 | SBIC PIND,5 ; SAMPLE CL2 JUST BEFORE CHANGE +| 000896 C007 | RJMP L052F +| | +| 000897 334A | CPI C,LOW(VEE_MIN) +| 000898 EF9D | LDI E,HIGH(VEE_MIN) +| 000899 0759 | CPC D,E +| 00089A F052 | BRMI L0535 +| | +| 00089B 5041 | SUBI C,$01 +| 00089C 4050 | SBCI D,$00 +| 00089D C00B | RJMP L0536 +| | +| 00089E 3D45 | L052F: CPI C,LOW(VEE_MAX) +| 00089F EF9F | LDI E,HIGH(VEE_MAX) +| 0008A0 0759 | CPC D,E +| 0008A1 F41A | BRPL L0535 +| | +| 0008A2 5F4F | SUBI C,$FF +| 0008A3 4F5F | SBCI D,$FF +| 0008A4 C004 | RJMP L0536 +| | +| 0008A5 0000 | L0535: NOP ; EQUALIZE DELAYS +| 0008A6 0000 | NOP +| 0008A7 0000 | NOP +| 0008A8 0000 | NOP +| 0008A9 9350 010D | L0536: STS VEEH,D +| 0008AB 9340 010C | STS VEEL,C +| 0008AD BD5B | OUT OCR1AH,D ; SET SWITCHING TIME FOR VEE MEASURE +| 0008AE BD4A | OUT OCR1AL,C +| | +| 0008AF 9140 010C | LDS C,VEEL +| 0008B1 9150 010D | LDS D,VEEH +| 0008B3 9190 010E | LDS E,CONTRASTL +| 0008B5 1B49 | SUB C,E +| 0008B6 9190 010F | LDS E,CONTRASTH +| 0008B8 0B59 | SBC D,E +| 0008B9 F41A | BRPL L0545 +| | +| 0008BA ED45 | LDI C,LOW(CONTRAST_SHORT) +| 0008BB EF5F | LDI D,HIGH(CONTRAST_SHORT) +| 0008BC C004 | RJMP L0547 +| | +| 0008BD EA4C | L0545: LDI C,LOW(CONTRAST_LONG) +| 0008BE EF5E | LDI D,HIGH(CONTRAST_LONG) +| 0008BF 0000 | NOP +| 0008C0 0000 | NOP +| | +| 0008C1 BD59 | L0547: OUT OCR1BH,D ; SET SWITCHING TIME FOR VEE GENERATOR +| 0008C2 BD48 | OUT OCR1BL,C +| | +| 0008C3 E052 | LDI D,2 ; SET TIME FOR START OF LED PULSE +| 0008C4 BF53 | OUT TCCR0,D ; PRESCALE=CK/8 +| 0008C5 EE5D | LDI D,-TK_DELAY_0 ; 54uSEC +| 0008C6 BF52 | OUT TCNT0,D +| 0008C7 E051 | LDI D,1 +| 0008C8 9350 0168 | STS SCAN_STATE,D +| | +| 0008CA EF5D | LDI D,HIGH(T1_FULL_SCALE) +| 0008CB BD5D | OUT TCNT1H,D +| 0008CC E354 | LDI D,LOW(T1_FULL_SCALE) +| 0008CD BD5C | OUT TCNT1L,D +| | +| 0008CE 988B | CBI DDRD,3 ; START TEMPERATURE MEASUREMENT +| 0008CF 9893 | CBI PORTD,3 +| | +| 0008D0 EE50 | LDI D,$E0 ; NEXT COMPARE MATCH MUST SET OC1A +| 0008D1 BD5F | OUT TCCR1A,D ; AND CLR OC1B (FOR REV E PARTS) +| | +| 0008D2 C021 | RJMP T1_OVERFLOW_RET +| | +| | T0_OVERFLOW: +| 0008D3 B61F | IN SR,SREG ; LED/PHOTODIODE SCANNING +| 0008D4 B35A | IN D,DDRA ; SAVE STATE OF THE WORLD +| 0008D5 935F | PUSH D +| 0008D6 B35B | IN D,PORTA +| 0008D7 935F | PUSH D +| 0008D8 B355 | IN D,PORTC +| 0008D9 935F | PUSH D +| 0008DA 9150 0118 | LDS D,LATCH11_SAV +| 0008DC 935F | PUSH D +| 0008DD 9150 0117 | LDS D,LATCH10_SAV +| 0008DF 935F | PUSH D +| | +| 0008E0 93FF | PUSH ZH +| 0008E1 93EF | PUSH ZL +| 0008E2 920F | PUSH R0 +| | +| 0008E3 EF5F | LDI D,$FF +| 0008E4 BB5A | OUT DDRA,D ; PORTA OUTPUT +| | +| 0008E5 9150 0168 | LDS D,SCAN_STATE +| 0008E7 9553 | INC D +| 0008E8 9350 0168 | STS SCAN_STATE,D +| 0008EA 955A | DEC D +| 0008EB F0E1 | BREQ SCAN_START ; IF SCAN_STATE WAS = 0 +| 0008EC 955A | DEC D +| 0008ED F111 | BREQ SCAN_BEEPER ; IF SCAN_STATE WAS = 1 +| | ; IMPLEMENT ENTRY POINT FOR SCAN_PULSE_LED HERE +| 0008EE 955A | DEC D +| 0008EF > RJEQ SCAN_PHOTO ; IF SCAN_STATE WAS = 2 +| 0008EF F409 > BRNE LOCAL +| 0008F0 C089 > RJMP SCAN_PHOTO +| > LOCAL: +| | +| | T0_OVERFLOW_RET: +| 0008F1 900F | POP R0 +| 0008F2 91EF | POP ZL +| 0008F3 91FF | POP ZH +| | +| | T1_OVERFLOW_RET: +| 0008F4 915F | POP D ; RESTORE STATE OF THE WORLD +| 0008F5 BB5B | OUT PORTA,D +| 0008F6 9AC4 | SBI PORTB,4 +| 0008F7 98C4 | CBI PORTB,4 +| 0008F8 9350 0117 | STS LATCH10_SAV,D +| 0008FA 915F | POP D +| 0008FB BB5B | OUT PORTA,D +| 0008FC 9AC3 | SBI PORTB,3 +| 0008FD 98C3 | CBI PORTB,3 +| 0008FE 9350 0118 | STS LATCH11_SAV,D +| 000900 915F | POP D +| 000901 BB55 | OUT PORTC,D +| 000902 915F | POP D +| 000903 BB5B | OUT PORTA,D +| 000904 915F | POP D +| 000905 BB5A | OUT DDRA,D +| | ;MFEED_WDOG +| | EXT_INT_RET: +| 000906 BE1F | OUT SREG,SR +| 000907 9518 | RETI +| | +| | SCAN_START: +| 000908 E053 | LDI D,3 ;5 +| 000909 BF53 | OUT TCCR0,D ; PRESCALE=CK/1024 +| 00090A EF50 | LDI D,-TK_DELAY_1 ;TK_DELAY_2 +| 00090B BF52 | OUT TCNT0,D +| 00090C E051 | LDI D,1 +| 00090D 9350 0168 | STS SCAN_STATE,D +| 00090F C153 | RJMP L0617_RESET +| | +| | SCAN_BEEPER: +| 000910 9150 0110 | LDS D,BUZZ_TIME +| 000912 2355 | TST D +| 000913 F199 | BREQ SCAN_PULSE_LED +| 000914 9150 0111 | LDS D,BUZZ_PERIOD +| 000916 5150 | SUBI D,$10 +| 000917 F018 | BRLO BUZZ_TOGGLE +| 000918 9350 0111 | STS BUZZ_PERIOD,D +| 00091A C02C | RJMP SCAN_PULSE_LED +| | BUZZ_TOGGLE: ; ASSUME D = $F0 + PERIOD-1 +| 00091B 2F45 | MOV C,D ; EG. C = $F3 FOR PERIOD = 4 +| 00091C 9542 | SWAP C ; EG. C = $3F FOR PERIOD = 4 +| 00091D 2354 | AND D,C ; EG. D = $33 FOR PERIOD = 4 +| 00091E 9350 0111 | STS BUZZ_PERIOD,D +| 000920 9140 0119 | LDS C,LATCH12_SAV +| 000922 FF43 | SBRS C,3 ; TEST PREVIOUS SPEAKER STATE +| 000923 C010 | RJMP BEEPER_SPKHI +| 000924 9150 0110 | LDS D,BUZZ_TIME +| 000926 955A | DEC D +| 000927 9350 0110 | STS BUZZ_TIME,D +| 000929 F0A1 | BREQ BEEPER_SPKOFF +| | ;BEEPER_SPKLO: +| 00092A > SPKLO +| 00092A 9150 0119 > LDS D,LATCH12_SAV ; DRIVE SPEAKER LO +| 00092C 7F57 > CBR D,1<<3 +| 00092D 6054 > SBR D,1<<2 +| 00092E BB55 > OUT PORTC,D +| 00092F 9AC2 > SBI PORTB,2 +| 000930 98C2 > CBI PORTB,2 +| 000931 9350 0119 > STS LATCH12_SAV,D +| 000933 C013 | RJMP SCAN_PULSE_LED +| | BEEPER_SPKHI: +| 000934 > SPKHI +| 000934 9150 0119 > LDS D,LATCH12_SAV ; DRIVE SPEAKER HI +| 000936 6058 > SBR D,1<<3 +| 000937 7F5B > CBR D,1<<2 +| 000938 BB55 > OUT PORTC,D +| 000939 9AC2 > SBI PORTB,2 +| 00093A 98C2 > CBI PORTB,2 +| 00093B 9350 0119 > STS LATCH12_SAV,D +| 00093D C009 | RJMP SCAN_PULSE_LED +| | BEEPER_SPKOFF: +| 00093E > SPKOFF +| 00093E 9150 0119 > LDS D,LATCH12_SAV ; DRIVE SPEAKER OFF +| 000940 7F57 > CBR D,1<<3 +| 000941 7F5B > CBR D,1<<2 +| 000942 BB55 > OUT PORTC,D +| 000943 9AC2 > SBI PORTB,2 +| 000944 98C2 > CBI PORTB,2 +| 000945 9350 0119 > STS LATCH12_SAV,D +| | +| | SCAN_PULSE_LED: +| 000947 9150 0169 | LDS D,LATCH5_SAV +| | ;**: +| 000949 FF57 | SBRS D,7 ; ARE WE INSIDE SLEEP_LOOP? +| | ;** SBRC D,7 +| 00094A C006 | RJMP SCAN_PULSE_LED_OK ; YES, KEEP TIMER 0 TO RETAIN CONTROL +| | +| 00094B E850 | LDI D,1<<7 +| 00094C 26B5 | EOR FLAGS,D +| 00094D F41A | BRPL SCAN_PULSE_LED_OK ; PULSE LED EVERY 2ND CYCLE +| | +| 00094E 2755 | CLR D +| 00094F BF53 | OUT TCCR0,D ; STOP TIMER +| 000950 CFA0 | RJMP T0_OVERFLOW_RET ; AND WASTE EVERY REMAINING CYCLE +| | +| | SCAN_PULSE_LED_OK: +| 000951 E052 | LDI D,2 +| 000952 BF53 | OUT TCCR0,D ; PRESCALE=CK/8 +| 000953 EF52 | LDI D,-TK_LED_PULSE ; 22uSEC +| 000954 BF52 | OUT TCNT0,D +| | +| | ;LDIZ SCAN_TBL ; POINT TO FIRST LED CHANNEL +| 000955 E3EA | LDI ZL,LOW((SCAN_TBL)*2) ; USE PRIOR TO LPM INSTRUCTION +| 000956 E1F8 | LDI ZH,HIGH((SCAN_TBL)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 000957 2755 | CLR D +| 000958 0DED | ADD ZL,SCAN +| 000959 1FF5 | ADC ZH,D +| 00095A 95C8 | LPM ; R0 = LED DRIVE VALUE +| 00095B E354 | LDI D,13*4 +| 00095C 16D5 | CP SCAN,D +| 00095D F448 | BRSH L0570 +| 00095E > LEDLO ; ENABLE HORIZ LED DRIVE +| 00095E 9150 0119 > LDS D,LATCH12_SAV ; DRIVE LED COMMON LO +| 000960 7E5F > CBR D,1<<4 +| 000961 BB55 > OUT PORTC,D +| 000962 9AC2 > SBI PORTB,2 +| 000963 98C2 > CBI PORTB,2 +| 000964 9350 0119 > STS LATCH12_SAV,D +| 000966 C008 | RJMP L0574 +| 000967 > L0570: LEDHI ; DISABLE HORIZ LED DRIVE +| 000967 9150 0119 > LDS D,LATCH12_SAV ; DRIVE LED COMMON HI +| 000969 6150 > SBR D,1<<4 +| 00096A BB55 > OUT PORTC,D +| 00096B 9AC2 > SBI PORTB,2 +| 00096C 98C2 > CBI PORTB,2 +| 00096D 9350 0119 > STS LATCH12_SAV,D +| 00096F > L0574: LED R0 +| 00096F BA0B > OUT PORTA,R0 ; MAIN LED DRIVE PORT +| 000970 9000 0119 > LDS R0,LATCH12_SAV +| 000972 BA05 > OUT PORTC,R0 +| 000973 9AA9 > SBI PORTC,1 +| 000974 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000975 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000976 98A9 > CBI PORTC,1 +| 000977 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000978 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000979 CF77 | RJMP T0_OVERFLOW_RET +| | +| | SCAN_PHOTO: +| 00097A B350 | IN D,PIND ; PHOTODIODE STATUS IN BIT 6,D +| 00097B EE40 | LDI C,$E0 +| 00097C > LED C ; TURN OFF LED ?? +| 00097C BB4B > OUT PORTA,C ; MAIN LED DRIVE PORT +| 00097D 9140 0119 > LDS C,LATCH12_SAV +| 00097F BB45 > OUT PORTC,C +| 000980 9AA9 > SBI PORTC,1 +| 000981 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000982 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000983 98A9 > CBI PORTC,1 +| 000984 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000985 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| | +| 000986 9488 | CLC +| 000987 FD56 | SBRC D,6 +| 000988 C008 | RJMP L0593 ; ROW/COLUMN IS INACTIVE +| | +| | ; ROW/COLUMN IS ACTIVE +| 000989 9150 0113 | LDS D,DEBOUNCE +| 00098B 2355 | TST D +| 00098C F019 | BREQ L0591 +| 00098D E054 | LDI D,$04 +| 00098E 9350 0113 | STS DEBOUNCE,D +| 000990 9408 | L0591: SEC +| | +| | L0593: ; WE HAVE A ROW/COLUMN STATUS IN CF +| 000991 B74F | IN C,SREG +| | +| 000992 E354 | LDI D,13*4 +| 000993 16D5 | CP SCAN,D +| 000994 F460 | BRSH L05A8 +| | +| | ; WE HAVE A ROW STATUS +| 000995 BF4F | OUT SREG,C ; CF = 0 INACTIVE, CF = 1 ACTIVE +| 000996 91E0 0115 | LDS ZL,ROW_BITMAP +| 000998 91F0 0116 | LDS ZH,ROW_BITMAP+1 +| 00099A 1FEE | ROL ZL +| 00099B 1FFF | ROL ZH +| 00099C 93E0 0115 | STS ROW_BITMAP,ZL +| 00099E 93F0 0116 | STS ROW_BITMAP+1,ZH +| 0009A0 C07B | RJMP L05F9 +| | +| | L05A8: ; WE HAVE A COLUMN STATUS +| | ; LDS D,LATCH5_SAV +| | ;;**: +| | ; SBRS D,7 ; TURNED OFF? +| | ;;** SBRC D,7 +| | ; RJMP L05F9 ; YES, NO FURTHER PROCESSING +| 0009A1 BF4F | OUT SREG,C ; CF = 0 INACTIVE, CF = 1 ACTIVE +| 0009A2 F008 | BRCS L05AB +| 0009A3 C078 | RJMP L05F9 +| | +| | L05AB: ; WE HAVE AN ACTIVE COLUMN +| 0009A4 9150 0113 | LDS D,DEBOUNCE +| 0009A6 2355 | TST D +| 0009A7 F021 | BREQ L05B3 +| 0009A8 E054 | LDI D,$04 +| 0009A9 9350 0113 | STS DEBOUNCE,D +| 0009AB C070 | RJMP L05F9 +| | +| | L05B3: ; LOOK FOR ANY ACTIVE ROW +| 0009AC 91F0 0116 | LDS ZH,ROW_BITMAP+1 +| 0009AE 91E0 0115 | LDS ZL,ROW_BITMAP +| | +| 0009B0 9150 0114 | LDS D,ROW_INDEX +| 0009B2 2355 | TST D +| 0009B3 F029 | BREQ ROW_BITMAP_LOOP +| | +| 0009B4 2F45 | MOV C,D +| | ROW_BITMAP_SKIP: +| 0009B5 95F7 | ROR ZH +| 0009B6 95E7 | ROR ZL +| 0009B7 5044 | SUBI C,4 +| 0009B8 F7E1 | BRNE ROW_BITMAP_SKIP +| | +| | ROW_BITMAP_LOOP: +| 0009B9 5F5C | SUBI D,-4 +| 0009BA 95F7 | ROR ZH +| 0009BB 95E7 | ROR ZL +| 0009BC F018 | BRCS FOUND_INTERSECTION +| | ROW_BITMAP_LOOPE: +| 0009BD 3354 | CPI D,13*4 +| 0009BE F3D0 | BRLO ROW_BITMAP_LOOP +| | +| | ; NO FURTHER INTERSECTING ROWS FOUND +| 0009BF C05C | RJMP L05F9 +| | +| | FOUND_INTERSECTION: +| | ; FOUND AN INTERSECTING ROW FOR COLUMN +| 0009C0 9350 0114 | STS ROW_INDEX,D +| | +| 0009C2 E344 | LDI C,$34 ; BECAUSE ROW_BITMAP IS BEING TESTED +| 0009C3 1B45 | SUB C,D ; IN THE REVERSE ORDER TO ITS CREATION +| | +| | ;LDIZ SCAN_TBL+1 ; POINT TO FIRST TOUCH CHANNEL +| 0009C4 E3EC | LDI ZL,LOW((SCAN_TBL+1)*2) ; USE PRIOR TO LPM INSTRUCTION +| 0009C5 E1F8 | LDI ZH,HIGH((SCAN_TBL+1)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 0009C6 2755 | CLR D +| 0009C7 0FE4 | ADD ZL,C +| 0009C8 1FF5 | ADC ZH,D +| 0009C9 95C8 | LPM +| 0009CA 2D40 | MOV C,R0 +| 0009CB 0C00 | LSL R0 +| 0009CC 0C00 | LSL R0 +| 0009CD 0C00 | LSL R0 +| 0009CE 0D40 | ADD C,R0 +| 0009CF 0C00 | LSL R0 +| 0009D0 0D40 | ADD C,R0 +| | +| | ;LDIZ SCAN_TBL+1 ; POINT TO FIRST TOUCH CHANNEL +| 0009D1 E3EC | LDI ZL,LOW((SCAN_TBL+1)*2) ; USE PRIOR TO LPM INSTRUCTION +| 0009D2 E1F8 | LDI ZH,HIGH((SCAN_TBL+1)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 0009D3 2755 | CLR D +| 0009D4 0DED | ADD ZL,SCAN +| 0009D5 1FF5 | ADC ZH,D +| 0009D6 95C8 | LPM +| 0009D7 0D40 | ADD C,R0 +| 0009D8 E0E0 | LDI ZL,LOW(RTN_DSPRAM) ; RETURN CODE TABLE +| 0009D9 EEF0 | LDI ZH,HIGH(RTN_DSPRAM) +| 0009DA 2755 | CLR D +| 0009DB 0FE4 | ADD ZL,C +| 0009DC 1FF5 | ADC ZH,D +| | +| 0009DD > A0_A15 ZL,ZH +| 0009DD 933F > PUSH R19 +| > +| 0009DE 2F3E > MOV R19,ZL +| 0009DF 733F > ANDI R19,$3F +| 0009E0 BB35 > OUT PORTC,R19 +| > +| 0009E1 2F3F > MOV R19,ZH +| 0009E2 0F33 > LSL R19 +| 0009E3 0F33 > LSL R19 +| 0009E4 FBE7 > BST ZL,7 ; A7 +| 0009E5 F931 > BLD R19,1 +| 0009E6 FBE6 > BST ZL,6 ; A6 +| 0009E7 F930 > BLD R19,0 +| 0009E8 BB3B > OUT PORTA,R19 +| 0009E9 9AC3 > SBI PORTB,3 +| 0009EA 98C3 > CBI PORTB,3 +| 0009EB 93F0 0118 > STS LATCH11_SAV,ZH +| > +| 0009ED 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 0009EF FBF7 > BST ZH,7 ; A15 +| 0009F0 F931 > BLD R19,1 +| 0009F1 FBF6 > BST ZH,6 ; A14 +| 0009F2 F930 > BLD R19,0 +| 0009F3 BB3B > OUT PORTA,R19 +| 0009F4 9AC4 > SBI PORTB,4 +| 0009F5 98C4 > CBI PORTB,4 +| 0009F6 9330 0117 > STS LATCH10_SAV,R19 +| > +| 0009F8 913F > POP R19 +| | +| 0009F9 930F | PUSH F +| 0009FA > RAMRDX R0 +| 0009FA 2700 > CLR F +| 0009FB BB0A > OUT DDRA,F ; PORTA INPUT +| 0009FC 98C0 > CBI PORTB,0 ; CS_ON +| 0009FD 0000 > NOP +| 0009FE 9AC0 > SBI PORTB,0 ; CS_OFF +| 0009FF B209 > IN R0,PINA ; READ DATA +| 000A00 EF0F > LDI F,$FF +| 000A01 BB0A > OUT DDRA,F ; PORTA OUTPUT +| 000A02 910F | POP F +| | +| 000A03 2000 | TST R0 +| 000A04 F429 | BRNE VALID_INTERSECTION +| | +| | ; INTERSECTION IS NULL, GO ON TO NEXT +| 000A05 9150 0114 | LDS D,ROW_INDEX +| 000A07 3354 | CPI D,13*4 +| 000A08 F498 | BRSH L05F9 ; DONE LAST ROW, GO ON TO NEXT COLUMN +| | GO_L0617: +| 000A09 C05E | RJMP L0617 ; GO ON TO NEXT ROW, SAME COLUMN +| | +| | VALID_INTERSECTION: +| | ; INTERSECTION IS VALID, WE HAVE KEY MAKE +| 000A0A E054 | LDI D,$04 +| 000A0B 9350 0113 | STS DEBOUNCE,D +| 000A0D 9200 0107 | STS ACTIVE_ZONE,R0 +| 000A0F E356 | LDI D,54 ;43 +| 000A10 9350 0110 | STS BUZZ_TIME,D ; SHORT BEEP ON MAKE +| | +| 000A12 2D55 | MOV D,TX_COUNT +| 000A13 315F | CPI D,TX_SIZE-1 +| 000A14 F438 | BRSH L05F9 +| | +| 000A15 931F | PUSH A +| 000A16 2D10 | MOV A,R0 +| 000A17 DA8D | RCALL TX_CHAR +| 000A18 311B | CPI A,$1B +| 000A19 F409 | BRNE TX_CONT +| 000A1A DA8A | RCALL TX_CHAR +| | TX_CONT: +| 000A1B 911F | POP A +| | +| | L05F9: +| 000A1C E054 | LDI D,4 ; SCAN TO NEXT LED / PHOTODIODE PAIR +| 000A1D 0ED5 | ADD SCAN,D +| | +| 000A1E 9150 0169 | LDS D,LATCH5_SAV +| 000A20 FD57 | SBRC D,7 +| 000A21 C027 | RJMP TURNED_ON +| | +| 000A22 E053 | LDI D,3 +| 000A23 BF53 | OUT TCCR0,D ; PRESCALE=CK/64 +| 000A24 EF50 | LDI D,-TK_DELAY_1 +| 000A25 BF52 | OUT TCNT0,D +| 000A26 E051 | LDI D,1 +| 000A27 9350 0168 | STS SCAN_STATE,D +| | +| 000A29 E344 | LDI C,13*4 +| 000A2A 16D4 | CP SCAN,C +| 000A2B F2E8 | BRLO GO_L0617 +| | +| | ; KEEP VDD ON, TO AVOID THE LONG TK_DELAY_2 +| | ;LDS D,LATCH5_SAV +| | ;ANDI D,$BF ; BIT 6 = 0 VDD OFF +| | ;STS LATCH5_SAV,D +| | ;PHOTO D ; READY TO SLEEP FOR ANOTHER 0.25 SEC +| | +| 000A2C E050 | LDI D,0 +| 000A2D BF53 | OUT TCCR0,D ; STOP TIMER SINCE COMPLETE SCAN DONE +| | ;RJMP T0_OVERFLOW_RET +| | +| | ;LDI D,$05 +| | ;OUT UBRR,D +| | ;LDI D,$18 +| | ;OUT UCR,D +| 000A2E 9150 0116 | LDS D,ROW_BITMAP+1 +| 000A30 9140 0115 | LDS C,ROW_BITMAP +| | ;OUT UDR,C +| | ;OUT UDR,D +| 000A32 2B45 | OR C,D ; HAVE WE SOME ACTIVITY? +| | +| 000A33 9150 016A | LDS D,TURNON_COUNT +| 000A35 3054 | CPI D,4 +| 000A36 F418 | BRSH TURNON_BREAK ; WAITING FOR BREAK +| 000A37 3051 | CPI D,1 +| 000A38 F428 | BRSH TURNON_MAKE ; WAITING FOR MAKE +| | GO_T0_OVERFLOW_RET: +| 000A39 CEB7 | RJMP T0_OVERFLOW_RET ; ALREADY HAD MAKE, NOT TURNED ON YET +| | +| | TURNON_BREAK: +| 000A3A 2344 | TST C ; HAD SOME ACTIVITY? +| 000A3B F029 | BREQ TURNON_SAVE ; NO, COUNT DOWN TO BREAK +| 000A3C E055 | LDI D,4+1 ; YES, RESTART COUNTDOWN TO BREAK +| 000A3D C003 | RJMP TURNON_SAVE +| | TURNON_MAKE: +| 000A3E 2344 | TST C ; HAD SOME ACTIVITY? +| 000A3F F409 | BRNE TURNON_SAVE ; YES, COUNT DOWN TO MAKE +| 000A40 E054 | LDI D,3+1 ; NO, RESTART COUNTDOWN TO MAKE +| | TURNON_SAVE: +| 000A41 955A | DEC D ; COUNT DOWN TO MAKE OR BREAK +| 000A42 9350 016A | STS TURNON_COUNT,D +| 000A44 F7A1 | BRNE GO_T0_OVERFLOW_RET ; NOT READY TO TRY TURNON YET +| | +| 000A45 EB5F | LDI D,~(1<<6) +| 000A46 22B5 | AND FLAGS,D ; SAY WE TURNED OFF VIA BREAK DETECTION +| 000A47 988A | CBI DDRD,2 ; D2 = TRI-STATE, VSWT ON +| 000A48 CDCE | RJMP GO_SLEEP_ENTRY ; WE WILL NOW WAIT FOR TURNON COMMAND +| | +| | TURNED_ON: +| 000A49 E050 | LDI D,0 ; STOP TIMER, WE WILL REGAIN +| 000A4A BF53 | OUT TCCR0,D ; CONTROL VIA NEXT CLOCKING INTERRUPT +| 000A4B 9350 0114 | STS ROW_INDEX,D +| | +| 000A4D EC48 | LDI C,50*4 +| 000A4E 16D4 | CP SCAN,C +| 000A4F F0C0 | BRLO L0617 +| | +| 000A50 9150 0113 | LDS D,DEBOUNCE ; COMPLETED ENTIRE SCAN, START NEW SCAN +| 000A52 2355 | TST D +| 000A53 F079 | BREQ L0617_RESET +| 000A54 955A | DEC D +| 000A55 9350 0113 | STS DEBOUNCE,D +| 000A57 F459 | BRNE L0617_RESET +| | +| 000A58 9150 0107 | LDS D,ACTIVE_ZONE +| 000A5A 2355 | TST D +| 000A5B F039 | BREQ L0617_RESET +| | +| 000A5C 2D55 | MOV D,TX_COUNT +| 000A5D 3250 | CPI D,TX_SIZE +| 000A5E F420 | BRSH L0617_RESET +| | +| 000A5F 931F | PUSH A +| 000A60 E010 | LDI A,0 +| 000A61 DA43 | RCALL TX_CHAR +| 000A62 911F | POP A +| | +| | L0617_RESET: +| 000A63 24DD | CLR SCAN +| 000A64 92D0 0115 | STS ROW_BITMAP,SCAN +| 000A66 92D0 0116 | STS ROW_BITMAP+1,SCAN +| | +| | L0617: ; SELECT PHOTODIODE AND ALLOW TO SETTLE +| | ;LDIZ SCAN_TBL +| 000A68 E3EA | LDI ZL,LOW((SCAN_TBL)*2) ; USE PRIOR TO LPM INSTRUCTION +| 000A69 E1F8 | LDI ZH,HIGH((SCAN_TBL)*2) ; EXTRA BRACKETS NEEDED IF @0=EXPRESSION +| | +| 000A6A 9631 | ADIW ZL,1 ; POINT TO FIRST PHOTO CHANNEL +| 000A6B 2755 | CLR D +| 000A6C 0DED | ADD ZL,SCAN +| 000A6D 1FF5 | ADC ZH,D +| 000A6E 95C8 | LPM +| 000A6F 9150 0169 | LDS D,LATCH5_SAV +| 000A71 7850 | ANDI D,$80 ; BIT 7 = PRESERVED, LCD ON/OFF STATUS +| 000A72 6450 | ORI D,$40 ; BIT 6 = 1 VDD ON +| 000A73 2950 | OR D,R0 +| 000A74 9350 0169 | STS LATCH5_SAV,D +| 000A76 > PHOTO D +| 000A76 BB5B > OUT PORTA,D ; SELECT PHOTODIODE CHANNEL +| 000A77 9150 0119 > LDS D,LATCH12_SAV +| 000A79 BB55 > OUT PORTC,D +| 000A7A 9AA8 > SBI PORTC,0 +| 000A7B 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000A7C 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000A7D 98A8 > CBI PORTC,0 +| 000A7E 9AC2 > SBI PORTB,2 ; THIS WILL PROVIDE LE=1 +| 000A7F 98C2 > CBI PORTB,2 ; THIS WILL PROVIDE G=0 +| 000A80 CE70 | RJMP T0_OVERFLOW_RET +| | +| 000A81 2499 | SCROLL: CLR LINE_CNT +| | +| 000A82 E0C0 | LDI YL,LOW(DRAW_DSPRAM) ; SCROLL UP +| 000A83 E2D0 | LDI YH,HIGH(DRAW_DSPRAM) +| 000A84 E0A0 | LDI XL,LOW(DRAW_DSPRAM) +| 000A85 E2B0 | LDI XH,HIGH(DRAW_DSPRAM) +| | +| 000A86 E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 000A87 D105 | RCALL SELECT_XPAGE +| | +| 000A88 5CA0 | L0628: SUBI XL,LOW(-$40) +| 000A89 4FBF | SBCI XH,HIGH(-$40) +| 000A8A 940A | DEC R0 +| 000A8B F7E1 | BRNE L0628 +| | +| 000A8C E220 | L062C: LDI B,$20 ; COPYING 32 BYTES +| 000A8D 932F | L062D: PUSH B +| 000A8E D0C8 | RCALL READ_BYTE +| 000A8F D0E3 | RCALL WRITE_BYTE +| 000A90 95A3 | INC XL +| 000A91 95C3 | INC YL +| 000A92 912F | POP B +| 000A93 952A | DEC B +| 000A94 > RJNE L062D ;BRNE L062D +| 000A94 F009 > BREQ LOCAL +| 000A95 CFF7 > RJMP L062D +| > LOCAL: +| | +| 000A96 DB1D | RCALL NICK_SUB1 +| 000A97 9493 | INC LINE_CNT +| 000A98 96A0 | ADIW YL,$20 +| 000A99 9690 | ADIW XL,$20 +| 000A9A 34B0 | CPI XH,HIGH(DRAW_DSPRAM+DISPLAY_LINES*$40) +| 000A9B > RJNE L062C ;BRNE L062C +| 000A9B F009 > BREQ LOCAL +| 000A9C CFEF > RJMP L062C +| > LOCAL: +| 000A9D CD1B | RJMP CLEAR_DISPLAY_LOOP +| | +| | SCROLL_REGION: +| 000A9E D9DF | RCALL RX_WAIT +| 000A9F 931F | PUSH A ; DIRECTION TO SCROLL +| | +| 000AA0 D9DD | RCALL RX_WAIT +| 000AA1 9310 0172 | STS SCROLL_COUNT,A ; AMOUNT TO SCROLL IN PIXEL LINES +| | +| 000AA3 D9DA | RCALL RX_WAIT +| 000AA4 9516 | LSR A +| 000AA5 9516 | LSR A +| 000AA6 9516 | LSR A +| 000AA7 F409 | BRNE SCROLL_WIDTH_OK +| 000AA8 E210 | LDI A,32 ; ENTRY WIDTH OF 0 = FULL +| | SCROLL_WIDTH_OK: +| 000AA9 9310 0175 | STS SCROLL_XX,A ; X SIZE OF REGION IN BYTES +| | +| 000AAB D9D2 | RCALL RX_WAIT +| 000AAC 9310 0176 | STS SCROLL_YY,A ; Y SIZE OF REGION IN PIXEL LINES +| | +| 000AAE 2F17 | MOV A,CURSORX +| 000AAF 9516 | LSR A +| 000AB0 9516 | LSR A +| 000AB1 9516 | LSR A +| 000AB2 9310 0173 | STS SCROLL_X,A +| 000AB4 9380 0174 | STS SCROLL_Y,CURSORY +| | +| 000AB6 E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 000AB7 D0D5 | RCALL SELECT_XPAGE +| | +| 000AB8 911F | POP A ; DIRECTION TO SCROLL +| 000AB9 FD10 | SBRC A,0 +| 000ABA C046 | RJMP SCROLL_DOWN +| | +| | ;SCROLL_UP: +| 000ABB 27CC | CLR YL +| 000ABC 91D0 0174 | LDS YH,SCROLL_Y +| 000ABE 2E9D | MOV LINE_CNT,YH ; FOR NICK_SUB1 +| 000ABF 95D6 | LSR YH +| 000AC0 95C7 | ROR YL +| 000AC1 95D6 | LSR YH +| 000AC2 95C7 | ROR YL +| 000AC3 9110 0173 | LDS A,SCROLL_X +| 000AC5 0FC1 | ADD YL,A +| 000AC6 5ED0 | SUBI YH,HIGH(-DRAW_DSPRAM) ; Y = DESTINATION WITHIN DRAWING BUFFER +| | +| 000AC7 9120 0176 | LDS B,SCROLL_YY +| 000AC9 9110 0172 | LDS A,SCROLL_COUNT +| 000ACB 1712 | CP A,B +| 000ACC F520 | BRSH SCROLL_UP_CLEAR ; WITH B = LINES TO CLEAR +| 000ACD 1B21 | SUB B,A ; CALCULATE B = LINES TO COPY INTACT +| | +| 000ACE 27AA | CLR XL +| 000ACF 91B0 0174 | LDS XH,SCROLL_Y +| 000AD1 0FB1 | ADD XH,A ; SCROLL_COUNT +| 000AD2 95B6 | LSR XH +| 000AD3 95A7 | ROR XL +| 000AD4 95B6 | LSR XH +| 000AD5 95A7 | ROR XL +| 000AD6 9110 0173 | LDS A,SCROLL_X +| 000AD8 0FA1 | ADD XL,A +| 000AD9 5EB0 | SUBI XH,HIGH(-DRAW_DSPRAM) ; X = SOURCE WITHIN DRAWING BUFFER +| | +| | SCROLL_UP_LOOP: +| 000ADA 932F | PUSH B +| 000ADB 93AF | PUSH XL +| 000ADC 93BF | PUSH XH +| 000ADD 93CF | PUSH YL +| 000ADE 93DF | PUSH YH +| | +| 000ADF 9120 0175 | LDS B,SCROLL_XX +| 000AE1 D068 | RCALL COPY_BYTES +| 000AE2 DAD1 | RCALL NICK_SUB1 +| | +| 000AE3 91DF | POP YH +| 000AE4 91CF | POP YL +| 000AE5 91BF | POP XH +| 000AE6 91AF | POP XL +| 000AE7 912F | POP B +| | +| 000AE8 9493 | INC LINE_CNT +| 000AE9 5CA0 | SUBI XL,LOW(-$40) +| 000AEA 4FBF | SBCI XH,HIGH(-$40) +| 000AEB 5CC0 | SUBI YL,LOW(-$40) +| 000AEC 4FDF | SBCI YH,HIGH(-$40) +| | +| 000AED 952A | DEC B +| 000AEE F759 | BRNE SCROLL_UP_LOOP +| | +| 000AEF 9120 0172 | LDS B,SCROLL_COUNT ; B = LINES TO CLEAR +| | +| | SCROLL_UP_CLEAR: +| 000AF1 932F | PUSH B +| 000AF2 93CF | PUSH YL +| 000AF3 93DF | PUSH YH +| | +| 000AF4 9120 0175 | LDS B,SCROLL_XX +| 000AF6 D05A | RCALL CLEAR_BYTES +| 000AF7 DABC | RCALL NICK_SUB1 +| | +| 000AF8 91DF | POP YH +| 000AF9 91CF | POP YL +| 000AFA 912F | POP B +| | +| 000AFB 9493 | INC LINE_CNT +| 000AFC 5CC0 | SUBI YL,LOW(-$40) +| 000AFD 4FDF | SBCI YH,HIGH(-$40) +| | +| 000AFE 952A | DEC B +| 000AFF F789 | BRNE SCROLL_UP_CLEAR +| | +| 000B00 CB06 | RJMP GO_MAIN_LOOP +| | +| | SCROLL_DOWN: +| 000B01 27CC | CLR YL +| 000B02 91D0 0174 | LDS YH,SCROLL_Y +| 000B04 9100 0176 | LDS F,SCROLL_YY +| 000B06 0FD0 | ADD YH,F +| 000B07 2E9D | MOV LINE_CNT,YH ; FOR NICK_SUB1 +| 000B08 95D6 | LSR YH +| 000B09 95C7 | ROR YL +| 000B0A 95D6 | LSR YH +| 000B0B 95C7 | ROR YL +| 000B0C 9110 0173 | LDS A,SCROLL_X +| 000B0E 0FC1 | ADD YL,A +| 000B0F 5ED0 | SUBI YH,HIGH(-DRAW_DSPRAM) ; Y = DESTINATION WITHIN DRAWING BUFFER +| | +| 000B10 2F20 | MOV B,F ;LDS B,SCROLL_YY +| 000B11 9110 0172 | LDS A,SCROLL_COUNT +| 000B13 1712 | CP A,B +| 000B14 F528 | BRSH SCROLL_DOWN_CLEAR ; WITH B = LINES TO CLEAR +| 000B15 1B21 | SUB B,A ; CALCULATE B = LINES TO COPY INTACT +| | +| 000B16 27AA | CLR XL +| 000B17 91B0 0174 | LDS XH,SCROLL_Y +| 000B19 0FB0 | ADD XH,F +| 000B1A 1BB1 | SUB XH,A ; SCROLL_COUNT +| 000B1B 95B6 | LSR XH +| 000B1C 95A7 | ROR XL +| 000B1D 95B6 | LSR XH +| 000B1E 95A7 | ROR XL +| 000B1F 9110 0173 | LDS A,SCROLL_X +| 000B21 0FA1 | ADD XL,A +| 000B22 5EB0 | SUBI XH,HIGH(-DRAW_DSPRAM) ; X = SOURCE WITHIN DRAWING BUFFER +| | +| | SCROLL_DOWN_LOOP: +| 000B23 949A | DEC LINE_CNT +| 000B24 54A0 | SUBI XL,LOW($40) +| 000B25 40B0 | SBCI XH,HIGH($40) +| 000B26 54C0 | SUBI YL,LOW($40) +| 000B27 40D0 | SBCI YH,HIGH($40) +| | +| 000B28 932F | PUSH B +| 000B29 93AF | PUSH XL +| 000B2A 93BF | PUSH XH +| 000B2B 93CF | PUSH YL +| 000B2C 93DF | PUSH YH +| | +| 000B2D 9120 0175 | LDS B,SCROLL_XX +| 000B2F D01A | RCALL COPY_BYTES +| 000B30 DA83 | RCALL NICK_SUB1 +| | +| 000B31 91DF | POP YH +| 000B32 91CF | POP YL +| 000B33 91BF | POP XH +| 000B34 91AF | POP XL +| 000B35 912F | POP B +| | +| 000B36 952A | DEC B +| 000B37 F759 | BRNE SCROLL_DOWN_LOOP +| | +| 000B38 9120 0172 | LDS B,SCROLL_COUNT ; B = LINES TO CLEAR +| | +| | SCROLL_DOWN_CLEAR: +| 000B3A 949A | DEC LINE_CNT +| 000B3B 54C0 | SUBI YL,LOW($40) +| 000B3C 40D0 | SBCI YH,HIGH($40) +| | +| 000B3D 932F | PUSH B +| 000B3E 93CF | PUSH YL +| 000B3F 93DF | PUSH YH +| | +| 000B40 9120 0175 | LDS B,SCROLL_XX +| 000B42 D00E | RCALL CLEAR_BYTES +| 000B43 DA70 | RCALL NICK_SUB1 +| | +| 000B44 91DF | POP YH +| 000B45 91CF | POP YL +| 000B46 912F | POP B +| | +| 000B47 952A | DEC B +| 000B48 F789 | BRNE SCROLL_DOWN_CLEAR +| | +| 000B49 CABD | RJMP GO_MAIN_LOOP +| | +| | COPY_BYTES: +| 000B4A D00C | RCALL READ_BYTE +| 000B4B 9611 | ADIW XL,1 +| | +| 000B4C D026 | RCALL WRITE_BYTE +| 000B4D 9621 | ADIW YL,1 +| | +| 000B4E 952A | DEC B +| 000B4F F7D1 | BRNE COPY_BYTES +| | +| 000B50 9508 | RET +| | +| | CLEAR_BYTES: +| 000B51 E010 | LDI A,0 +| | +| | FILL_BYTES: +| 000B52 D020 | RCALL WRITE_BYTE +| 000B53 9621 | ADIW YL,1 +| | +| 000B54 952A | DEC B +| 000B55 F7E1 | BRNE FILL_BYTES +| | +| 000B56 9508 | RET +| | +| | READ_BYTE: +| 000B57 > A0_A13 XL,XH +| 000B57 2F3A > MOV R19,XL +| 000B58 733F > ANDI R19,$3F +| 000B59 BB35 > OUT PORTC,R19 +| > +| 000B5A 2F3B > MOV R19,XH +| 000B5B 0F33 > LSL R19 +| 000B5C 0F33 > LSL R19 +| 000B5D FBA7 > BST XL,7 ; A7 +| 000B5E F931 > BLD R19,1 +| 000B5F FBA6 > BST XL,6 ; A6 +| 000B60 F930 > BLD R19,0 +| 000B61 BB3B > OUT PORTA,R19 +| 000B62 94F8 > CLI +| 000B63 9AC3 > SBI PORTB,3 +| 000B64 98C3 > CBI PORTB,3 +| 000B65 9478 > SEI +| 000B66 9330 0118 > STS LATCH11_SAV,R19 +| 000B68 > RAMRD A +| 000B68 2700 > CLR F +| 000B69 BB0A > OUT DDRA,F ; PORTA INPUT +| 000B6A 94F8 > CLI +| 000B6B 98C0 > CBI PORTB,0 ; CS_ON +| 000B6C 0000 > NOP +| 000B6D 9AC0 > SBI PORTB,0 ; CS_OFF +| 000B6E B319 > IN A,PINA ; READ DATA +| 000B6F 9478 > SEI +| 000B70 EF0F > LDI F,$FF +| 000B71 BB0A > OUT DDRA,F ; PORTA OUTPUT +| 000B72 9508 | RET +| | +| | WRITE_BYTE: +| 000B73 > A0_A13 YL,YH +| 000B73 2F3C > MOV R19,YL +| 000B74 733F > ANDI R19,$3F +| 000B75 BB35 > OUT PORTC,R19 +| > +| 000B76 2F3D > MOV R19,YH +| 000B77 0F33 > LSL R19 +| 000B78 0F33 > LSL R19 +| 000B79 FBC7 > BST YL,7 ; A7 +| 000B7A F931 > BLD R19,1 +| 000B7B FBC6 > BST YL,6 ; A6 +| 000B7C F930 > BLD R19,0 +| 000B7D BB3B > OUT PORTA,R19 +| 000B7E 94F8 > CLI +| 000B7F 9AC3 > SBI PORTB,3 +| 000B80 98C3 > CBI PORTB,3 +| 000B81 9478 > SEI +| 000B82 9330 0118 > STS LATCH11_SAV,R19 +| 000B84 > RAMWR A +| 000B84 BB1B > OUT PORTA,A +| 000B85 94F8 > CLI +| 000B86 98C1 > CBI PORTB,1 +| 000B87 98C0 > CBI PORTB,0 +| 000B88 0000 > NOP +| 000B89 9AC0 > SBI PORTB,0 +| 000B8A 9478 > SEI +| 000B8B 9AC1 > SBI PORTB,1 +| 000B8C 9508 | RET +| | +| | SELECT_XPAGE: +| 000B8D > A14_A18 A +| 000B8D 94F8 > CLI +| 000B8E 9130 0117 > LDS R19,LATCH10_SAV ; AND THIS +| 000B90 2731 > EOR R19,A +| 000B91 7E30 > ANDI R19,$E0 +| 000B92 2731 > EOR R19,A +| 000B93 BB3B > OUT PORTA,R19 +| 000B94 9AC4 > SBI PORTB,4 +| 000B95 98C4 > CBI PORTB,4 +| 000B96 9478 > SEI +| 000B97 9330 0117 > STS LATCH10_SAV,R19 ; MUST BE ATOMIC DUE TO TOGGLING M +| 000B99 9508 | RET +| | +| | ; HOW MANY SECS/6553600 PER 4HZ INTERRUPT ? +| | ; EACH TIME THROUGH ADD 1638400 SECS/6553600 = 1/4 SEC +| | ; OSCILLATOR IS SLOW SO WE WILL ADD 1 PART IN 10000 +| | ; HENCE EACH TIME THROUGH ADD 1638400+164 = 1638564 UNITS TO COUNT +| | +| | TIM2_OVF: +| 000B9A B61F | IN SR,SREG +| | +| | ; REMOVED BECAUSE DON'T WANT TO HAVE IN AN INTERRUPT +| | ;WDR +| | +| | ;!! LDI A,$10 ; DIAGNOSTIC +| | ;!! STS BUZZ_TIME,A ; SHORT BEEP +| | +| 000B9B 9150 015F | LDS D,TIME_HSEC_64K +| 000B9D 555C | SUBI D,LOW(-1638564) +| 000B9E 9350 015F | STS TIME_HSEC_64K,D +| | +| 000BA0 9150 0160 | LDS D,TIME_HSEC_256 +| 000BA2 4F5F | SBCI D,HIGH(-1638564) +| 000BA3 9350 0160 | STS TIME_HSEC_256,D +| | +| 000BA5 9150 0161 | LDS D,TIME_HSEC +| 000BA7 4E56 | SBCI D,HIGH(-1638564>>8) +| 000BA8 3654 | CPI D,100 +| 000BA9 F450 | BRSH TIM2_CARRY +| 000BAA 9350 0161 | STS TIME_HSEC,D +| | +| | TIM2_END: +| 000BAC BE1F | OUT SREG,SR +| 000BAD FEB6 | SBRS FLAGS,6 ; IF WE TURNED OFF VIA COMMAND, +| 000BAE 9518 | RETI ; START A NEW SCAN, OTHERWISE DONE +| | +| 000BAF E050 | LDI D,0 +| 000BB0 9350 0168 | STS SCAN_STATE,D ; WE WILL EXECUTE SCAN_START ROUTINE +| 000BB2 CD20 | RJMP T0_OVERFLOW ; GO AND TURN VDD ON +| | +| | GO_TX_CHAR: +| 000BB3 C8F1 | RJMP TX_CHAR +| | +| | TIM2_CARRY: +| 000BB4 E050 | LDI D,0 +| 000BB5 9350 0161 | STS TIME_HSEC,D +| | +| 000BB7 9150 0162 | LDS D,TIME_SECOND +| 000BB9 9553 | INC D +| 000BBA 335C | CPI D,60 +| 000BBB F1E8 | BRLO TIM2_SECOND +| | +| 000BBC 9150 0163 | LDS D,TIME_MINUTE +| 000BBE 9553 | INC D +| 000BBF 335C | CPI D,60 +| 000BC0 F1A8 | BRLO TIM2_MINUTE +| | +| 000BC1 9150 0164 | LDS D,TIME_HOUR +| 000BC3 9553 | INC D +| 000BC4 3158 | CPI D,24 +| 000BC5 F168 | BRLO TIM2_HOUR +| | +| 000BC6 93EF | PUSH ZL +| 000BC7 93FF | PUSH ZH +| 000BC8 920F | PUSH R0 +| 000BC9 E2ED | LDI ZL,LOW(MONTH_TABLE*2-1) +| 000BCA E1F8 | LDI ZH,HIGH(MONTH_TABLE*2-1) +| 000BCB 9190 0166 | LDS E,DATE_MONTH +| 000BCD 0FE9 | ADD ZL,E +| 000BCE E090 | LDI E,0 +| 000BCF 1FF9 | ADC ZH,E +| 000BD0 95C8 | LPM +| 000BD1 2D90 | MOV E,R0 +| 000BD2 319C | CPI E,28 +| 000BD3 F431 | BRNE FEBRUARY_OK +| 000BD4 9190 0167 | LDS E,DATE_YEAR +| 000BD6 7093 | ANDI E,3 +| 000BD7 E19C | LDI E,28 +| 000BD8 F409 | BRNE FEBRUARY_OK +| 000BD9 E19D | LDI E,29 +| | FEBRUARY_OK: +| 000BDA 900F | POP R0 +| 000BDB 91FF | POP ZH +| 000BDC 91EF | POP ZL +| | +| 000BDD 9150 0165 | LDS D,DATE_DAY +| 000BDF 1759 | CP D,E +| 000BE0 F070 | BRLO TIM2_DAY +| | +| 000BE1 9150 0166 | LDS D,DATE_MONTH +| 000BE3 305C | CPI D,12 +| 000BE4 F030 | BRLO TIM2_MONTH +| | +| 000BE5 9150 0167 | LDS D,DATE_YEAR +| 000BE7 9553 | INC D +| 000BE8 9350 0167 | STS DATE_YEAR,D +| 000BEA 2755 | CLR D +| | TIM2_MONTH: +| 000BEB 9553 | INC D +| 000BEC 9350 0166 | STS DATE_MONTH,D +| 000BEE 2755 | CLR D +| | TIM2_DAY: +| 000BEF 9553 | INC D +| 000BF0 9350 0165 | STS DATE_DAY,D +| 000BF2 2755 | CLR D +| | TIM2_HOUR: +| 000BF3 9350 0164 | STS TIME_HOUR,D +| 000BF5 2755 | CLR D +| | TIM2_MINUTE: +| 000BF6 9350 0163 | STS TIME_MINUTE,D +| 000BF8 2755 | CLR D +| | TIM2_SECOND: +| 000BF9 9350 0162 | STS TIME_SECOND,D +| | +| | TIM2_SEND: +| 000BFB 2D55 | MOV D,TX_COUNT +| 000BFC 3159 | CPI D,TX_SIZE-7 +| 000BFD F4C0 | BRSH TIM2_SEND_SKIP +| | +| 000BFE 931F | PUSH A +| 000BFF E11B | LDI A,$1B +| 000C00 D8A4 | RCALL TX_CHAR +| 000C01 E514 | LDI A,'T' +| 000C02 D8A2 | RCALL TX_CHAR +| | ; LDS A,VCCL +| | ; RCALL TX_CHAR +| | ; LDS A,VCCH +| | ; RCALL TX_CHAR +| | ; LDS A,VEEL +| | ; RCALL TX_CHAR +| | ; LDS A,VEEH +| | ; RCALL TX_CHAR +| | ; LDI A,$0D +| | ; RCALL TX_CHAR +| 000C03 9110 0164 | LDS A,TIME_HOUR +| 000C05 DFAD | RCALL GO_TX_CHAR +| 000C06 9110 0163 | LDS A,TIME_MINUTE +| 000C08 DFAA | RCALL GO_TX_CHAR +| 000C09 9110 0162 | LDS A,TIME_SECOND +| 000C0B DFA7 | RCALL GO_TX_CHAR +| 000C0C 9110 0166 | LDS A,DATE_MONTH +| 000C0E DFA4 | RCALL GO_TX_CHAR +| 000C0F 9110 0165 | LDS A,DATE_DAY +| 000C11 DFA1 | RCALL GO_TX_CHAR +| 000C12 9110 0167 | LDS A,DATE_YEAR +| 000C14 DF9E | RCALL GO_TX_CHAR +| 000C15 911F | POP A +| | +| | TIM2_SEND_SKIP: +| 000C16 CF95 | RJMP TIM2_END +| | +| | ; ----------------------------------------------------------------------------- +| | +| | MONTH_TABLE: +| 000C17 | .DB 31,28,31,30,31,30,31,31,30,31,30,31 +| 000C19 1F1E 1F1F | +| 000C1B 1E1F 1E1F | +| | +| | ; 1ST BYTE = LED +| | ; 2ND BYTE = PHOTO +| | ; 3RD BYTE = TOUCH CHANNEL +| | +| | SCAN_TBL: +| 000C1D | .DB $F0,$34,$00,$00,$E8,$34,$01,$00,$F0,$33,$01,$00,$E8,$33,$02,$00 +| 000C1F E834 0100 | +| 000C21 F033 0100 | +| 000C23 E833 0200 | +| 000C25 | .DB $E4,$33,$03,$00,$E8,$32,$03,$00,$E4,$32,$04,$00,$E2,$32,$05,$00 +| 000C27 E832 0300 | +| 000C29 E432 0400 | +| 000C2B E232 0500 | +| 000C2D | .DB $E4,$31,$05,$00,$E2,$31,$06,$00,$E1,$31,$07,$00,$E2,$30,$07,$00 +| 000C2F E231 0600 | +| 000C31 E131 0700 | +| 000C33 E230 0700 | +| 000C35 | .DB $E1,$30,$08,$00,$C1,$2A,$00,$00,$C2,$2A,$01,$00,$C1,$2B,$01,$00 +| 000C37 C12A 0000 | +| 000C39 C22A 0100 | +| 000C3B C12B 0100 | +| 000C3D | .DB $C2,$2B,$02,$00,$C4,$2B,$03,$00,$C2,$2C,$03,$00,$C4,$2C,$04,$00 +| 000C3F C42B 0300 | +| 000C41 C22C 0300 | +| 000C43 C42C 0400 | +| 000C45 | .DB $C8,$2C,$05,$00,$C4,$18,$05,$00,$C8,$18,$06,$00,$D0,$18,$07,$00 +| 000C47 C418 0500 | +| 000C49 C818 0600 | +| 000C4B D018 0700 | +| 000C4D | .DB $C8,$19,$07,$00,$D0,$19,$08,$00,$A1,$19,$09,$00,$D0,$1A,$09,$00 +| 000C4F D019 0800 | +| 000C51 A119 0900 | +| 000C53 D01A 0900 | +| 000C55 | .DB $A1,$1A,$0A,$00,$A2,$1A,$0B,$00,$A1,$1B,$0B,$00,$A2,$1B,$0C,$00 +| 000C57 A21A 0B00 | +| 000C59 A11B 0B00 | +| 000C5B A21B 0C00 | +| 000C5D | .DB $A4,$1B,$0D,$00,$A2,$1C,$0D,$00,$A4,$1C,$0E,$00,$A8,$1C,$0F,$00 +| 000C5F A21C 0D00 | +| 000C61 A41C 0E00 | +| 000C63 A81C 0F00 | +| 000C65 | .DB $A4,$1D,$0F,$00,$A8,$1D,$10,$00,$B0,$1D,$11,$00,$A8,$1E,$11,$00 +| 000C67 A81D 1000 | +| 000C69 B01D 1100 | +| 000C6B A81E 1100 | +| 000C6D | .DB $B0,$1E,$12,$00,$61,$1E,$13,$00,$B0,$1F,$13,$00,$61,$1F,$14,$00 +| 000C6F 611E 1300 | +| 000C71 B01F 1300 | +| 000C73 611F 1400 | +| 000C75 | .DB $62,$1F,$15,$00,$61,$28,$15,$00,$62,$28,$16,$00,$64,$28,$17,$00 +| 000C77 6128 1500 | +| 000C79 6228 1600 | +| 000C7B 6428 1700 | +| 000C7D | .DB $62,$29,$17,$00,$64,$29,$18,$00 +| 000C7F 6429 1800 | +| | +| | RTN_CODE: +| 000C81 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 +| 000C83 0000 0000 | +| 000C85 0000 0000 | +| 000C87 0000 0000 | +| 000C89 | .DB $00,$00,$00,$00,$00,$00,$08,$08,$08,$00,$00,$00,$00,$00,$00,$00 +| 000C8B 0000 0808 | +| 000C8D 0800 0000 | +| 000C8F 0000 0000 | +| 000C91 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 +| 000C93 0000 0000 | +| 000C95 0000 0000 | +| 000C97 0000 0000 | +| 000C99 | .DB $00,$00,$7E,$00,$31,$00,$32,$00,$33,$00,$34,$00,$35,$00,$36,$00 +| 000C9B 3100 3200 | +| 000C9D 3300 3400 | +| 000C9F 3500 3600 | +| 000CA1 | .DB $37,$00,$38,$00,$39,$00,$30,$00,$2D,$00,$3D,$00,$00,$00,$00,$00 +| 000CA3 3900 3000 | +| 000CA5 2D00 3D00 | +| 000CA7 0000 0000 | +| 000CA9 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 +| 000CAB 0000 0000 | +| 000CAD 0000 0000 | +| 000CAF 0000 0000 | +| 000CB1 | .DB $00,$00,$00,$00,$51,$00,$57,$00,$45,$00,$52,$00,$54,$00,$59,$00 +| 000CB3 5100 5700 | +| 000CB5 4500 5200 | +| 000CB7 5400 5900 | +| 000CB9 | .DB $55,$00,$49,$00,$4F,$00,$50,$00,$5B,$00,$5D,$00,$5C,$00,$00,$00 +| 000CBB 4F00 5000 | +| 000CBD 5B00 5D00 | +| 000CBF 5C00 0000 | +| 000CC1 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 +| 000CC3 0000 0000 | +| 000CC5 0000 0000 | +| 000CC7 0000 0000 | +| 000CC9 | .DB $00,$00,$00,$00,$00,$00,$41,$00,$53,$00,$44,$00,$46,$00,$47,$00 +| 000CCB 0000 4100 | +| 000CCD 5300 4400 | +| 000CCF 4600 4700 | +| 000CD1 | .DB $48,$00,$4A,$00,$4B,$00,$4C,$00,$3B,$00,$27,$00,$0D,$0D,$0D,$00 +| 000CD3 4B00 4C00 | +| 000CD5 3B00 2700 | +| 000CD7 0D0D 0D00 | +| 000CD9 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 +| 000CDB 0000 0000 | +| 000CDD 0000 0000 | +| 000CDF 0000 0000 | +| 000CE1 | .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$5A,$00,$58,$00,$43,$00 +| 000CE3 0000 0000 | +| 000CE5 0000 5A00 | +| 000CE7 5800 4300 | +| 000CE9 | .DB $56,$00,$42,$00,$4E,$00,$4D,$00,$2C,$00,$2E,$00,$2F,$00,$00,$00 +| 000CEB 4E00 4D00 | +| 000CED 2C00 2E00 | +| 000CEF 2F00 0000 | +| 000CF1 0000 | .DB $00,$00 +| | RTN_CODE_END: +| | +| | ; ----------------------------------------------------------------------------- +| | +| | CHSET00: +| | .INCLUDE "CHSET00.INC" +| | ; chset00.inc generated from chset00.win, do not edit! +| | +| 000CF2 | .db $46,$32,$34,$44,$30,$33,$31,$39,$30,$33,$31,$32,$31,$37,$30,$39 +| 000CF4 3033 3139 | +| 000CF6 3033 3132 | +| 000CF8 3137 3039 | +| 000CFA | .db $4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000CFC 4C03 4C03 | +| 000CFE 4C03 4C03 | +| 000D00 4C03 4C03 | +| 000D02 | .db $4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D04 4C03 4C03 | +| 000D06 4C03 4C03 | +| 000D08 4C03 4C03 | +| 000D0A | .db $4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D0C 4C03 4C03 | +| 000D0E 4C03 4C03 | +| 000D10 4C03 4C03 | +| 000D12 | .db $4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D14 4C03 4C03 | +| 000D16 4C03 4C03 | +| 000D18 4C03 4C03 | +| 000D1A | .db $00,$01,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D1C 4C03 4C03 | +| 000D1E 4C03 4C03 | +| 000D20 4C03 4C03 | +| 000D22 | .db $4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$03,$01,$4c,$03,$4c,$03 +| 000D24 4C03 4C03 | +| 000D26 4C03 0301 | +| 000D28 4C03 4C03 | +| 000D2A | .db $06,$01,$0f,$01,$18,$01,$21,$01,$2a,$01,$33,$01,$3c,$01,$45,$01 +| 000D2C 1801 2101 | +| 000D2E 2A01 3301 | +| 000D30 3C01 4501 | +| 000D32 | .db $4e,$01,$57,$01,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D34 4C03 4C03 | +| 000D36 4C03 4C03 | +| 000D38 4C03 4C03 | +| 000D3A | .db $4c,$03,$60,$01,$69,$01,$72,$01,$7b,$01,$84,$01,$8d,$01,$96,$01 +| 000D3C 6901 7201 | +| 000D3E 7B01 8401 | +| 000D40 8D01 9601 | +| 000D42 | .db $9f,$01,$a9,$01,$b2,$01,$bb,$01,$c4,$01,$cd,$01,$d6,$01,$df,$01 +| 000D44 B201 BB01 | +| 000D46 C401 CD01 | +| 000D48 D601 DF01 | +| 000D4A | .db $e8,$01,$f1,$01,$08,$02,$11,$02,$1a,$02,$23,$02,$2c,$02,$35,$02 +| 000D4C 0802 1102 | +| 000D4E 1A02 2302 | +| 000D50 2C02 3502 | +| 000D52 | .db $3e,$02,$47,$02,$50,$02,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D54 5002 4C03 | +| 000D56 4C03 4C03 | +| 000D58 4C03 4C03 | +| 000D5A | .db $4c,$03,$59,$02,$62,$02,$6b,$02,$74,$02,$7d,$02,$86,$02,$8f,$02 +| 000D5C 6202 6B02 | +| 000D5E 7402 7D02 | +| 000D60 8602 8F02 | +| 000D62 | .db $99,$02,$a3,$02,$ad,$02,$b8,$02,$c2,$02,$cb,$02,$d4,$02,$dd,$02 +| 000D64 AD02 B802 | +| 000D66 C202 CB02 | +| 000D68 D402 DD02 | +| 000D6A | .db $e6,$02,$f0,$02,$fc,$02,$03,$03,$0c,$03,$15,$03,$1e,$03,$27,$03 +| 000D6C FC02 0303 | +| 000D6E 0C03 1503 | +| 000D70 1E03 2703 | +| 000D72 | .db $30,$03,$39,$03,$43,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03,$4c,$03 +| 000D74 4303 4C03 | +| 000D76 4C03 4C03 | +| 000D78 4C03 4C03 | +| 000D7A | .db $00,$03,$06,$61,$01,$f8,$01,$07,$70,$88,$98,$a8,$c8,$88,$70,$01 +| 000D7C 01F8 0107 | +| 000D7E 7088 98A8 | +| 000D80 C888 7001 | +| 000D82 | .db $07,$20,$60,$20,$20,$20,$20,$70,$01,$07,$70,$88,$08,$10,$20,$40 +| 000D84 2020 2070 | +| 000D86 0107 7088 | +| 000D88 0810 2040 | +| 000D8A | .db $f8,$01,$07,$f8,$10,$20,$10,$08,$88,$70,$01,$07,$10,$30,$50,$90 +| 000D8C 1020 1008 | +| 000D8E 8870 0107 | +| 000D90 1030 5090 | +| 000D92 | .db $f8,$10,$10,$01,$07,$f8,$80,$f0,$08,$08,$88,$70,$01,$07,$30,$40 +| 000D94 07F8 80F0 | +| 000D96 0808 8870 | +| 000D98 0107 3040 | +| 000D9A | .db $80,$f0,$88,$88,$70,$01,$07,$f8,$08,$10,$20,$40,$40,$40,$01,$07 +| 000D9C 7001 07F8 | +| 000D9E 0810 2040 | +| 000DA0 4040 0107 | +| 000DA2 | .db $70,$88,$88,$70,$88,$88,$70,$01,$07,$70,$88,$88,$78,$08,$10,$60 +| 000DA4 8888 7001 | +| 000DA6 0770 8888 | +| 000DA8 7808 1060 | +| 000DAA | .db $01,$07,$70,$88,$88,$88,$f8,$88,$88,$01,$07,$f0,$88,$88,$f0,$88 +| 000DAC 8888 F888 | +| 000DAE 8801 07F0 | +| 000DB0 8888 F088 | +| 000DB2 | .db $88,$f0,$01,$07,$70,$88,$80,$80,$80,$88,$70,$01,$07,$e0,$90,$88 +| 000DB4 7088 8080 | +| 000DB6 8088 7001 | +| 000DB8 07E0 9088 | +| 000DBA | .db $88,$88,$90,$e0,$01,$07,$f8,$80,$80,$f0,$80,$80,$f8,$01,$07,$f8 +| 000DBC 0107 F880 | +| 000DBE 80F0 8080 | +| 000DC0 F801 07F8 | +| 000DC2 | .db $80,$80,$f0,$80,$80,$80,$01,$07,$70,$88,$80,$b8,$88,$88,$78,$01 +| 000DC4 8080 0107 | +| 000DC6 7088 80B8 | +| 000DC8 8888 7801 | +| 000DCA | .db $07,$88,$88,$88,$f8,$88,$88,$88,$02,$21,$07,$80,$80,$80,$80,$80 +| 000DCC F888 8888 | +| 000DCE 0221 0780 | +| 000DD0 8080 8080 | +| 000DD2 | .db $80,$80,$01,$07,$08,$08,$08,$08,$08,$88,$70,$01,$07,$88,$90,$a0 +| 000DD4 0808 0808 | +| 000DD6 0888 7001 | +| 000DD8 0788 90A0 | +| 000DDA | .db $c0,$a0,$90,$88,$01,$07,$80,$80,$80,$80,$80,$80,$f8,$01,$07,$88 +| 000DDC 0107 8080 | +| 000DDE 8080 8080 | +| 000DE0 F801 0788 | +| 000DE2 | .db $d8,$a8,$a8,$88,$88,$88,$01,$07,$88,$88,$c8,$a8,$98,$88,$88,$01 +| 000DE4 8888 0107 | +| 000DE6 8888 C8A8 | +| 000DE8 9888 8801 | +| 000DEA | .db $07,$70,$88,$88,$88,$88,$88,$70,$01,$07,$f0,$88,$88,$f0,$80,$80 +| 000DEC 8888 8870 | +| 000DEE 0107 F088 | +| 000DF0 88F0 8080 | +| 000DF2 | .db $80,$01,$07,$70,$88,$88,$88,$a8,$90,$68,$4c,$03,$4c,$03,$4c,$03 +| 000DF4 8888 88A8 | +| 000DF6 9068 4C03 | +| 000DF8 4C03 4C03 | +| 000DFA | .db $06,$08,$01,$01,$4f,$00,$65,$03,$01,$07,$f0,$88,$88,$f0,$a0,$90 +| 000DFC 4F00 6503 | +| 000DFE 0107 F088 | +| 000E00 88F0 A090 | +| 000E02 | .db $88,$01,$07,$70,$88,$80,$70,$08,$88,$70,$01,$07,$f8,$20,$20,$20 +| 000E04 8880 7008 | +| 000E06 8870 0107 | +| 000E08 F820 2020 | +| 000E0A | .db $20,$20,$20,$01,$07,$88,$88,$88,$88,$88,$88,$70,$01,$07,$88,$88 +| 000E0C 0788 8888 | +| 000E0E 8888 8870 | +| 000E10 0107 8888 | +| 000E12 | .db $88,$88,$88,$50,$20,$01,$07,$88,$88,$88,$a8,$a8,$a8,$50,$01,$07 +| 000E14 2001 0788 | +| 000E16 8888 A8A8 | +| 000E18 A850 0107 | +| 000E1A | .db $88,$88,$50,$20,$50,$88,$88,$01,$07,$88,$88,$88,$50,$20,$20,$20 +| 000E1C 5088 8801 | +| 000E1E 0788 8888 | +| 000E20 5020 2020 | +| 000E22 | .db $01,$07,$f8,$08,$10,$20,$40,$80,$f8,$01,$07,$00,$00,$70,$08,$78 +| 000E24 1020 4080 | +| 000E26 F801 0700 | +| 000E28 0070 0878 | +| 000E2A | .db $88,$78,$01,$07,$80,$80,$f0,$88,$88,$88,$f0,$01,$07,$00,$00,$78 +| 000E2C 8080 F088 | +| 000E2E 8888 F001 | +| 000E30 0700 0078 | +| 000E32 | .db $80,$80,$80,$78,$01,$07,$08,$08,$78,$88,$88,$88,$78,$01,$07,$00 +| 000E34 0107 0808 | +| 000E36 7888 8888 | +| 000E38 7801 0700 | +| 000E3A | .db $00,$70,$88,$f8,$80,$70,$01,$07,$18,$20,$f8,$20,$20,$20,$20,$01 +| 000E3C 8070 0107 | +| 000E3E 1820 F820 | +| 000E40 2020 2001 | +| 000E42 | .db $08,$00,$00,$78,$88,$88,$78,$08,$70,$01,$07,$80,$80,$b0,$c8,$88 +| 000E44 8888 7808 | +| 000E46 7001 0780 | +| 000E48 80B0 C888 | +| 000E4A | .db $88,$88,$02,$21,$07,$80,$00,$80,$80,$80,$80,$80,$05,$21,$08,$10 +| 000E4C 0780 0080 | +| 000E4E 8080 8080 | +| 000E50 0521 0810 | +| 000E52 | .db $00,$10,$10,$10,$10,$90,$60,$05,$21,$07,$80,$80,$90,$a0,$c0,$a0 +| 000E54 1090 6005 | +| 000E56 2107 8080 | +| 000E58 90A0 C0A0 | +| 000E5A | .db $90,$03,$21,$07,$c0,$40,$40,$40,$40,$40,$40,$01,$07,$00,$00,$f0 +| 000E5C C040 4040 | +| 000E5E 4040 4001 | +| 000E60 0700 00F0 | +| 000E62 | .db $a8,$a8,$a8,$a8,$01,$07,$00,$00,$b0,$c8,$88,$88,$88,$01,$07,$00 +| 000E64 0107 0000 | +| 000E66 B0C8 8888 | +| 000E68 8801 0700 | +| 000E6A | .db $00,$70,$88,$88,$88,$70,$01,$08,$00,$00,$f0,$88,$88,$f0,$80,$80 +| 000E6C 8870 0108 | +| 000E6E 0000 F088 | +| 000E70 88F0 8080 | +| 000E72 | .db $01,$08,$00,$00,$78,$88,$88,$78,$08,$08,$02,$05,$61,$05,$b0,$c0 +| 000E74 7888 8878 | +| 000E76 0808 0205 | +| 000E78 6105 B0C0 | +| 000E7A | .db $80,$80,$80,$01,$07,$00,$00,$78,$80,$70,$08,$f0,$01,$07,$20,$20 +| 000E7C 0700 0078 | +| 000E7E 8070 08F0 | +| 000E80 0107 2020 | +| 000E82 | .db $f8,$20,$20,$20,$18,$01,$07,$00,$00,$88,$88,$88,$98,$68,$01,$07 +| 000E84 1801 0700 | +| 000E86 0088 8888 | +| 000E88 9868 0107 | +| 000E8A | .db $00,$00,$88,$88,$88,$50,$20,$01,$07,$00,$00,$88,$88,$a8,$a8,$50 +| 000E8C 8850 2001 | +| 000E8E 0700 0088 | +| 000E90 88A8 A850 | +| 000E92 | .db $01,$07,$00,$00,$88,$50,$20,$50,$88,$01,$08,$00,$00,$88,$88,$88 +| 000E94 8850 2050 | +| 000E96 8801 0800 | +| 000E98 0088 8888 | +| 000E9A | .db $78,$08,$70,$01,$07,$00,$00,$f8,$10,$20,$40,$f8,$01,$07,$f8,$f8 +| 000E9C 0700 00F8 | +| 000E9E 1020 40F8 | +| 000EA0 0107 F8F8 | +| 000EA2 F8F8 | .db $f8,$f8,$f8,$f8,$f8,$00 +| 000EA4 F800 | +| | +| | +| | CHSET00_END: +| | +| | ; ----------------------------------------------------------------------------- +| | +| | GET_CLEAR_FRAME_RECT_SIZE: +| 000EA5 9370 0156 | STS RECTNC_X,CURSORX +| 000EA7 9380 0157 | STS RECTNC_Y,CURSORY +| 000EA9 D5D4 | RCALL RX_WAIT +| 000EAA 9310 0158 | STS RECTNC_XX,A +| 000EAC D5D1 | RCALL RX_WAIT +| 000EAD 9310 0159 | STS RECTNC_YY,A +| 000EAF D026 | RCALL CLEAR_FRAME_RECT +| 000EB0 C2E4 | RJMP MAIN_LOOP +| | +| | GET_FRAME_RECT_SIZE: +| 000EB1 9370 0156 | STS RECTNC_X,CURSORX +| 000EB3 9380 0157 | STS RECTNC_Y,CURSORY +| 000EB5 D5C8 | RCALL RX_WAIT +| 000EB6 9310 0158 | STS RECTNC_XX,A +| 000EB8 D5C5 | RCALL RX_WAIT +| 000EB9 9310 0159 | STS RECTNC_YY,A +| 000EBB D02F | RCALL FRAME_RECT +| 000EBC C2D8 | RJMP MAIN_LOOP +| | +| | GET_CLEAR_HALFTONE_RECT_SIZE: +| 000EBD 9370 0152 | STS RECT_X,CURSORX +| 000EBF 9380 0153 | STS RECT_Y,CURSORY +| 000EC1 D5BC | RCALL RX_WAIT +| 000EC2 9310 0154 | STS RECT_XX,A +| 000EC4 D5B9 | RCALL RX_WAIT +| 000EC5 9310 0155 | STS RECT_YY,A +| 000EC7 D078 | RCALL CLEAR_HALFTONE_RECT +| 000EC8 C2CC | RJMP MAIN_LOOP +| | +| | GET_HALFTONE_RECT_SIZE: +| 000EC9 9370 0152 | STS RECT_X,CURSORX +| 000ECB 9380 0153 | STS RECT_Y,CURSORY +| 000ECD D5B0 | RCALL RX_WAIT +| 000ECE 9310 0154 | STS RECT_XX,A +| 000ED0 D5AD | RCALL RX_WAIT +| 000ED1 9310 0155 | STS RECT_YY,A +| 000ED3 D071 | RCALL HALFTONE_RECT +| 000ED4 C2C0 | RJMP MAIN_LOOP +| | +| 000ED5 9508 | NO_GOX: RET +| | +| | CLEAR_FRAME_RECT: +| 000ED6 9100 0156 | LDS F,RECTNC_X +| 000ED8 9300 0152 | STS RECT_X,F +| 000EDA 9100 0157 | LDS F,RECTNC_Y +| 000EDC 9300 0153 | STS RECT_Y,F +| 000EDE 9100 0158 | LDS F,RECTNC_XX +| 000EE0 9300 0154 | STS RECT_XX,F +| 000EE2 9100 0159 | LDS F,RECTNC_YY +| 000EE4 9300 0155 | STS RECT_YY,F +| | +| 000EE6 E002 | LDI F,$02 +| 000EE7 2AB0 | OR FLAGS,F +| | +| 000EE8 D724 | RCALL DRAW_RECT +| | +| 000EE9 EF0D | LDI F,$FD +| 000EEA 22B0 | AND FLAGS,F +| | +| | FRAME_RECT: +| 000EEB 9100 0158 | LDS F,RECTNC_XX +| 000EED 950A | DEC F +| 000EEE 3002 | CPI F,2 +| 000EEF F328 | BRLO NO_GOX +| 000EF0 9100 0159 | LDS F,RECTNC_YY +| 000EF2 3003 | CPI F,3 +| 000EF3 F308 | BRLO NO_GOX +| | +| 000EF4 9100 0156 | LDS F,RECTNC_X +| 000EF6 9300 0152 | STS RECT_X,F +| 000EF8 9100 0157 | LDS F,RECTNC_Y +| 000EFA 9300 0153 | STS RECT_Y,F +| 000EFC 9100 0158 | LDS F,RECTNC_XX +| 000EFE 9300 0154 | STS RECT_XX,F +| 000F00 E001 | LDI F,$01 +| 000F01 9300 0155 | STS RECT_YY,F +| 000F03 D709 | RCALL DRAW_RECT +| | +| 000F04 9100 0156 | LDS F,RECTNC_X +| 000F06 9300 0152 | STS RECT_X,F +| 000F08 9100 0157 | LDS F,RECTNC_Y +| 000F0A 9503 | INC F +| 000F0B 9300 0153 | STS RECT_Y,F +| 000F0D 9100 0159 | LDS F,RECTNC_YY +| 000F0F 5002 | SUBI F,2 +| 000F10 9300 0155 | STS RECT_YY,F +| 000F12 E001 | LDI F,$01 +| 000F13 9300 0154 | STS RECT_XX,F +| 000F15 D6F7 | RCALL DRAW_RECT +| | +| 000F16 9080 0158 | LDS X_SIZE,RECTNC_XX +| 000F18 9100 0156 | LDS F,RECTNC_X +| 000F1A 0D08 | ADD F,X_SIZE +| 000F1B 950A | DEC F +| 000F1C 9300 0152 | STS RECT_X,F +| 000F1E E001 | LDI F,$01 +| 000F1F 9300 0154 | STS RECT_XX,F +| 000F21 9100 0157 | LDS F,RECTNC_Y +| 000F23 9503 | INC F +| 000F24 9300 0153 | STS RECT_Y,F +| 000F26 9100 0159 | LDS F,RECTNC_YY +| 000F28 5002 | SUBI F,2 +| 000F29 9300 0155 | STS RECT_YY,F +| 000F2B D6E1 | RCALL DRAW_RECT +| | +| 000F2C 9100 0156 | LDS F,RECTNC_X +| 000F2E 9300 0152 | STS RECT_X,F +| 000F30 9100 0158 | LDS F,RECTNC_XX +| 000F32 9300 0154 | STS RECT_XX,F +| 000F34 9070 0159 | LDS Y_SIZE,RECTNC_YY +| 000F36 9100 0157 | LDS F,RECTNC_Y +| 000F38 0D07 | ADD F,Y_SIZE +| 000F39 950A | DEC F +| 000F3A 9300 0153 | STS RECT_Y,F +| 000F3C E001 | LDI F,$01 +| 000F3D 9300 0155 | STS RECT_YY,F +| 000F3F C6CD | RJMP DRAW_RECT +| | +| | CLEAR_HALFTONE_RECT: +| | ; LDS F,RECTNC_X +| | ; STS RECT_X,F +| | ; LDS F,RECTNC_Y +| | ; STS RECT_Y,F +| | ; LDS F,RECTNC_XX +| | ; STS RECT_XX,F +| | ; LDS F,RECTNC_YY +| | ; STS RECT_YY,F +| | +| 000F40 E002 | LDI F,$02 +| 000F41 2AB0 | OR FLAGS,F +| | +| 000F42 D6CA | RCALL DRAW_RECT +| | +| 000F43 EF0D | LDI F,$FD +| 000F44 22B0 | AND FLAGS,F +| | +| | HALFTONE_RECT: +| 000F45 9478 | SEI +| 000F46 9090 0153 | LDS LINE_CNT,RECT_Y +| 000F48 9160 0152 | LDS XPIXEL,RECT_X +| 000F4A D802 | RCALL CALCULATE_XBYTE +| 000F4B 9360 0102 | STS XPIXEL_SAV,XPIXEL +| 000F4D 92A0 0100 | STS XBYTE_SAV,XBYTE +| 000F4F 9070 0155 | LDS Y_SIZE,RECT_YY +| 000F51 27CC | CLR YL +| 000F52 2DD9 | MOV YH,LINE_CNT +| 000F53 E515 | LDI A,$55 +| 000F54 FFD0 | SBRS YH,0 +| 000F55 EA1A | LDI A,$AA +| 000F56 2E01 | MOV PATTERN,A +| 000F57 95D6 | LSR YH +| 000F58 95C7 | ROR YL +| 000F59 95D6 | LSR YH +| 000F5A 95C7 | ROR YL +| 000F5B 5ED0 | SUBI YH,HIGH(-DRAW_DSPRAM) ; DRAW INTO DRAWING BUFFER +| 000F5C E118 | LDI A,HIGH(DRAW_DSPRAM>>6) +| 000F5D DC2F | RCALL SELECT_XPAGE +| 000F5E C007 | RJMP X03A3 +| 000F5F 5CC0 | X039A: SUBI YL,LOW(-$40) +| 000F60 4FDF | SBCI YH,HIGH(-$40) +| 000F61 9493 | INC LINE_CNT +| 000F62 9160 0102 | LDS XPIXEL,XPIXEL_SAV +| 000F64 90A0 0100 | LDS XBYTE,XBYTE_SAV +| 000F66 2AAC | X03A3: OR XBYTE,YL +| 000F67 EF1F | LDI A,$FF +| 000F68 9080 0154 | LDS X_SIZE,RECT_XX +| 000F6A E000 | LDI F,$00 +| 000F6B 1680 | CP X_SIZE,F +| 000F6C F041 | BREQ X03B0 +| 000F6D E008 | LDI F,$08 +| 000F6E 1680 | CP X_SIZE,F +| 000F6F F0C8 | BRLO X03C2 +| 000F70 2366 | TST XPIXEL +| 000F71 F019 | BREQ X03B0 +| 000F72 9516 | X03AD: LSR A +| 000F73 956A | DEC XPIXEL +| 000F74 F7E9 | BRNE X03AD +| 000F75 2110 | X03B0: AND A,PATTERN +| 000F76 D7FE | RCALL WR_DISP_MEM +| 000F77 E008 | LDI F,$08 +| 000F78 9110 0102 | LDS A,XPIXEL_SAV +| 000F7A 1B01 | SUB F,A +| 000F7B 1A80 | SUB X_SIZE,F +| 000F7C 94A3 | INC XBYTE +| 000F7D EF1F | LDI A,$FF +| 000F7E E008 | X03B8: LDI F,$08 +| 000F7F 1680 | CP X_SIZE,F +| 000F80 F040 | BRLO X03C2 +| 000F81 F0C1 | BREQ X03D2 +| 000F82 2110 | AND A,PATTERN +| 000F83 D7F1 | RCALL WR_DISP_MEM +| 000F84 EF1F | LDI A,$FF +| 000F85 E008 | LDI F,$08 +| 000F86 1A80 | SUB X_SIZE,F +| 000F87 94A3 | INC XBYTE +| 000F88 CFF5 | RJMP X03B8 +| 000F89 2088 | X03C2: TST X_SIZE +| 000F8A F089 | BREQ X03D3 +| 000F8B 9516 | X03C4: LSR A +| 000F8C 948A | DEC X_SIZE +| 000F8D F7E9 | BRNE X03C4 +| 000F8E 9510 | COM A +| 000F8F 2366 | TST XPIXEL +| 000F90 F049 | BREQ X03D2 +| 000F91 2722 | CLR B +| 000F92 9516 | X03CB: LSR A +| 000F93 9527 | ROR B +| 000F94 956A | DEC XPIXEL +| 000F95 F7E1 | BRNE X03CB +| 000F96 2110 | AND A,PATTERN +| 000F97 D7DD | RCALL WR_DISP_MEM +| 000F98 94A3 | INC XBYTE +| 000F99 2F12 | MOV A,B +| 000F9A 2110 | X03D2: AND A,PATTERN +| 000F9B D7D9 | RCALL WR_DISP_MEM +| 000F9C 9400 | X03D3: COM PATTERN +| 000F9D D616 | RCALL NICK_SUB1 +| 000F9E 947A | DEC Y_SIZE +| 000F9F 2700 | CLR F +| 000FA0 1270 | CPSE Y_SIZE,F +| 000FA1 CFBD | RJMP X039A +| 000FA2 9508 | RET +| | +| | ; ----------------------------------------------------------------------------- +| | +| | .ORG $1000 +| | +tsv3.asm:3705: Warning : Flash size exceeded by 1 word(s) +| 001000 0241 | .DW $4102 ; SELECT ADDRESS COMMAND +| | +| | ; ----------------------------------------------------------------------------- +| | +| | ++------------------+-----------------------------------------------------------+ + +Errors : 0 +Warnings : 2 +Code : 4097 +Rom : 4 +Data : 279 +Unused Code : 93 +Unused Rom : 0 diff --git a/src/avrsample.old/aaa b/src/avrsample.old/aaa new file mode 100644 index 0000000000000000000000000000000000000000..f3c95bd5d22196cd5b5581f49919975bf6d15375 GIT binary patch literal 72407 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 VXZP8CcAro9{D1R;It>6|1OT`e&v^g< literal 0 HcmV?d00001 diff --git a/src/avrsample.old/avr_make b/src/avrsample.old/avr_make new file mode 100644 index 00000000..eace73ec --- /dev/null +++ b/src/avrsample.old/avr_make @@ -0,0 +1,68 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +#all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +all: $(TRG).s $(TRG).elf $(TRG).hex $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +#%.eep: %.elf +# $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags .eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.hex: %.elf + $(BIN) -O ihex $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/avrsample.old/avr_make% b/src/avrsample.old/avr_make% new file mode 100644 index 00000000..682da205 --- /dev/null +++ b/src/avrsample.old/avr_make% @@ -0,0 +1,68 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +#all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +all: $(TRG).elf $(TRG).hex $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +#%.eep: %.elf +# $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags .eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.hex: %.elf + $(BIN) -O ihex $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/avrsample.old/hello.c b/src/avrsample.old/hello.c new file mode 100644 index 00000000..e203f007 --- /dev/null +++ b/src/avrsample.old/hello.c @@ -0,0 +1,60 @@ +/* hello.c by Nick for Hytech AVR */ + +#include +#include +/* #include */ +#include "hello.h" + +int my_puts(char *s) + { + char c; + + while (c = *s++) + { + my_putc(c); + } + return 0; + } + +int my_putc(char c) + { + while (bit_is_set(UCSRA, UDRE) == 0) + ; + UDR = c; + return 0; + } + +int my_getc(void) + { + if (bit_is_set(UCSRA, RXC) == 0) + return -1; + return UDR; + } + +int main(void) + { + __do_copy_data(); + __do_clear_bss(); + + /* initialise the AVR's built-in UART for 9600 bps */ + UCSRA = _BV(TXC); + UCSRB = _BV(TXEN) | _BV(RXEN); + UBRR = 71; + /* UBRRH = 0; */ /* = (11059200 / (9600 * 16)) - 1 */ + +#if 1 + /* send a demo message to ISPD via the AVR's UART */ + my_puts("a"); /* "hello, world\r\n"); */ +#else + /* setup the standard input, output and error streams */ + fdevopen(my_putc, my_getc, 0); + + /* send a demo message to ISPD via the AVR's UART */ + printf("hello, world\r\n"); +#endif + + /* enter an infinite loop as we can never exit */ + while (1) + ; + } + diff --git a/src/avrsample.old/hello.elf b/src/avrsample.old/hello.elf new file mode 100644 index 0000000000000000000000000000000000000000..8290ef0588deecf8ee7ba72433bd225dba561fe0 GIT binary patch literal 5979 zcma)AYiwLc6+X^})+tSKLZCqN*fefqxACs;?t1;$B#o2Jv(5uMq#zmHu6J+j75mEW zb(92Awkc|x5{V>@p;eKJBKQY_Mis~sYWD{!5mMzA1cXY(4pjXCf;LDfyNC9)w6u_>Wi&#XOF-E6DWYX~CMZlH>Yz_jtI}WA4tQSm z+b8g3Uv7Kw^ElO&j{Uja;plfXv^O?2?r&^tgc}l^DD zYa919R<&<q0(6>j`tX6E_X=l>MF7Cm?I*-aZiY<-KLH*VGEF3indoVnOK_0^aDJ9B=T`PM1> zrBLJiD=%(to%+rPFMrTF)jFknd}H?Q+4_6mo__YmbJNefcW%1={)M^U&d$$d{F+^) zA7T(Zz8u;xS`@90#?+72P7f=*2fyD^$oomt7Q>~fOVx`7X^PNtUz0{Ot`Sq3x-k$da1X6EI7w>^?xoKf+((}?xSzgY@BpnfI3@5_fwu{~UEoIq z-XZXyz&i!rC2(5c-2(3sc(1_w1l}+30f8SCcu3%b0v{6iu)s$I{-VIc0*@Hnj+$}Z zzJk_{H-py(Q<}0Kz%SeId%~2a)5bSVXK1}AhWzUkHuxKKzrjx^e`eEErw5Jvr*s6k zfR;l$igs4u=YY4OF};XZX8@W;t1|%o4z11rbT<}vT_N-%@Y4eSQQ!^?NZTJ0_`JYB z7kF0S+XAl%1#uDr7X`i`@T&s9EASo5gE(g~4sO-Y5UqopF;mLN7qJ13D*K3%pHP_J zXrgBnwiN!p!ZC%fDhx-^uNCf5_+5p275M>1zb{w-KBehiLfI6h>GNj4<(Ry$o>MW`Qe9cFuO12Gb-tAG1`#K0@=W7R z4)*G>86(H%J^2L{e-m9Y@i&Q>?IO+tB2I_c^E<^p|Bx9ae>>!U9_%M6RV(g9S+`uR4eYTf5{cq3TXn7IIR8dQpdZWR?0m^}s@2Jg%U0Qe(aAIU(ONY-nmJjm zWr~%86Qv2KP$);TG@i}I>}gc64vCI=5BTBh?j;^(OmL{M(zN>_n!j z3}T)^tTWY}vSQE_%BAtJc8_;%+fj?hQXC@=lkQlzA#hf&p%hJ)YWeY!lQYfl6XmLF3e)Emrmu6sqvm6fp+CZT5wL8 zYFL=+TB7P?3Il4TZo#Tert-zixX)Wj7GTZ#jv_0}v+5di+{bBY6WKjxOxa+znrs&3 z=}(J=c~ORV2Pg9dH(#<(X6!<~=2rsK@emS?p}gLM?49Lu!F!whI(8vpys**7@}3W@?+TYvR(Y-BE=(dS*T2P9EGs$@zP{gOhQ5zq`#AbsYz_%g0Sx6 zcaU?Aqk~%hjH7bz@dG#IC?`+hrDxAmClc}ak`v4(wc}MAJ@X`c+xG+&PurDA7heO^ z69cFX9OQWPV87>zr~a zlFPUmij3826e*SSr94EAQ>m7V?BY3Q#^AyqypKos!3@V-b3V8XtiG4NJL{M>qA|u1 zlpe>af$zo3fHi5m%@FWehV8~+$M<7Nn&n#}V{ZS?j!&T4j_AoHg@prYF^Jh;S$t6f(2!2}7n@n%AdN z%?D>(mV_`$nfG$KIj`^LtY`kC^t}GOTLXKvsQ)wYoO{&rk@0yx4`_2(9|PVe_~2II z<#PhMM~wdF{2Acwf`1Blo8ZqI%;4ty3-}GjbaVbk;Dh(2g?y|m%U|HB^=;r^ z126Tz5j^YP0skr*QycpG8=lhs-wSxSi1;_>SA*9ld5*Upyj~A&n6VD5O9S*Bi!}`NJdK5V9^DDs1{O(=A zZvsCHTPE)BVemn|%P7{wFQ;DcGT)uxUHI}|#p5}!Kz|Ipe*fF}{ojg{R54S^g$wzT zvz@l8lTcT_v>jiIGVU3b(>8xKYM0G#FCAEmrKRGp_I%r&{)zAxC|_^i|5nt!kkpw(ueaUgeF0ZO(Q|Iq=>^ z%uWU{-elzs5q^AK^L=C~sw1hhDeAH0_%qDFe~V7)JFQ^vmjn)>8syP;ov71da*72`5u&j^7^`#Q1!{=Lmfsfyx`UE`ryummg%= Yuc7AZ_|P1)Pajl**j6_O3)am406h^8IRF3v literal 0 HcmV?d00001 diff --git a/src/avrsample.old/hello.h b/src/avrsample.old/hello.h new file mode 100644 index 00000000..62e13902 --- /dev/null +++ b/src/avrsample.old/hello.h @@ -0,0 +1,7 @@ +/* hello.h by Nick for Hytech AVR */ + +int my_puts(char *s); +int my_putc(char c); +int my_getc(void); +int main(void); + diff --git a/src/avrsample.old/hello.hex b/src/avrsample.old/hello.hex new file mode 100644 index 00000000..f5889074 --- /dev/null +++ b/src/avrsample.old/hello.hex @@ -0,0 +1,14 @@ +:100000000DC027C026C025C024C023C022C021C0E7 +:1000100020C01FC01EC01DC01CC01BC011241FBE9D +:10002000CFEDD0E0DEBFCDBF10E0A0E6B0E0E2EB68 +:10003000F0E003C0C89531960D92A236B107D1F712 +:1000400010E0A2E6B0E001C01D92A236B107E1F7D0 +:1000500020C0D6CFCF93DF93D92FC82F8991882383 +:1000600021F008D089918823E1F780E090E0DF91CA +:10007000CF9108955D9BFECF8CB980E090E008950C +:100080005F9B03C08CB1992708958FEF9FEF089570 +:100090000895CFEDD0E0DEBFCDBFC6DFD1DF80E475 +:1000A0008BB988E18AB987E489B980E690E0D2DF2C +:0200B000FFCF80 +:0200B2006100EB +:00000001FF diff --git a/src/avrsample.old/hello.lst b/src/avrsample.old/hello.lst new file mode 100644 index 00000000..827574ce --- /dev/null +++ b/src/avrsample.old/hello.lst @@ -0,0 +1,325 @@ +GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 1 + + + 1 .file "hello.c" + 2 .arch at90s4433 + 3 __SREG__ = 0x3f + 4 __SP_H__ = 0x3e + 5 __SP_L__ = 0x3d + 6 __tmp_reg__ = 0 + 7 __zero_reg__ = 1 + 8 .global __do_copy_data + 9 .global __do_clear_bss + 10 .stabs "c:\\uzi\\src\\avrsample/",100,0,0,.Ltext0 + 11 .stabs "hello.c",100,0,0,.Ltext0 + 12 .text + 13 .Ltext0: + 14 .stabs "gcc2_compiled.",60,0,0,0 + 15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 + 16 .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 + 17 .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0 + 18 .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0 + 19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0 + 20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0, + 21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0, + 22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 + 23 .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0 + 24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0 + 25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0 + 26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 + 27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0 + 28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0 + 29 .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0 + 30 .stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0 + 31 .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0 + 32 .stabs "complex long double:t(0,18)=r(0,18);8;0;",128,0,0,0 + 33 .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0 + 34 .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0 + 35 .stabs "hello.c",130,0,0,0 + 36 .stabs "c:/WinAVR/avr/include/stdio.h",130,0,0,0 + 37 .stabs "c:/WinAVR/avr/include/inttypes.h",130,0,0,0 + 38 .stabs "int8_t:t(3,1)=(0,10)",128,0,46,0 + 39 .stabs "uint8_t:t(3,2)=(0,11)",128,0,47,0 + 40 .stabs "int16_t:t(3,3)=(0,1)",128,0,49,0 + 41 .stabs "uint16_t:t(3,4)=(0,4)",128,0,50,0 + 42 .stabs "int32_t:t(3,5)=(0,3)",128,0,52,0 + 43 .stabs "uint32_t:t(3,6)=(0,5)",128,0,53,0 + 44 .stabs "int64_t:t(3,7)=(0,6)",128,0,55,0 + 45 .stabs "uint64_t:t(3,8)=(0,7)",128,0,56,0 + 46 .stabs "intptr_t:t(3,9)=(3,3)",128,0,58,0 + 47 .stabs "uintptr_t:t(3,10)=(3,4)",128,0,59,0 + 48 .stabn 162,0,0,0 + 49 .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stdarg.h",130,0,0,0 + 50 .stabs "__gnuc_va_list:t(4,1)=(0,19)",128,0,43,0 + 51 .stabs "va_list:t(4,2)=(4,1)",128,0,105,0 + 52 .stabn 162,0,0,0 + 53 .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stddef.h",130,0,0,0 + 54 .stabs "size_t:t(5,1)=(0,4)",128,0,213,0 + 55 .stabn 162,0,0,0 + 56 .stabn 162,0,0,0 + 57 .stabs "c:/WinAVR/avr/include/avr/io.h",130,0,0,0 + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 2 + + + 58 .stabs "c:/WinAVR/avr/include/avr/io4433.h",130,0,0,0 + 59 .stabs "c:/WinAVR/avr/include/avr/sfr_defs.h",130,0,0,0 + 60 .stabn 162,0,0,0 + 61 .stabn 162,0,0,0 + 62 .stabn 162,0,0,0 + 63 .stabs "hello.h",130,0,0,0 + 64 .stabn 162,0,0,0 + 65 .stabs "my_puts:F(0,1)",36,0,9,my_puts + 66 .stabs "s:P(1,1)=*(0,2)",64,0,8,28 + 67 .global my_puts + 68 .type my_puts, @function + 69 my_puts: + 1:hello.c **** /* hello.c by Nick for Hytech AVR */ + 2:hello.c **** + 3:hello.c **** #include + 4:hello.c **** #include + 5:hello.c **** /* #include */ + 6:hello.c **** #include "hello.h" + 7:hello.c **** + 8:hello.c **** int my_puts(char *s) + 9:hello.c **** { + 70 .stabn 68,0,9,.LM1-my_puts + 71 .LM1: + 72 /* prologue: frame size=0 */ + 73 0000 CF93 push r28 + 74 0002 DF93 push r29 + 75 /* prologue end (size=2) */ + 76 0004 D92F mov r29,r25 + 77 0006 C82F mov r28,r24 + 10:hello.c **** char c; + 11:hello.c **** + 12:hello.c **** while (c = *s++) + 78 .stabn 68,0,12,.LM2-my_puts + 79 .LM2: + 80 .LBB2: + 81 0008 8991 ld r24,Y+ + 82 000a 8823 tst r24 + 83 000c 21F0 breq .L7 + 84 .L5: + 13:hello.c **** { + 14:hello.c **** my_putc(c); + 85 .stabn 68,0,14,.LM3-my_puts + 86 .LM3: + 87 000e 08D0 rcall my_putc + 88 0010 8991 ld r24,Y+ + 89 0012 8823 tst r24 + 90 0014 E1F7 brne .L5 + 91 .L7: + 15:hello.c **** } + 16:hello.c **** return 0; + 17:hello.c **** } + 92 .stabn 68,0,17,.LM4-my_puts + 93 .LM4: + 94 .LBE2: + 95 0016 80E0 ldi r24,lo8(0) + 96 0018 90E0 ldi r25,hi8(0) + 97 /* epilogue: frame size=0 */ + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 3 + + + 98 001a DF91 pop r29 + 99 001c CF91 pop r28 + 100 001e 0895 ret + 101 /* epilogue end (size=3) */ + 102 /* function my_puts size 16 (11) */ + 103 .size my_puts, .-my_puts + 104 .stabs "c:r(0,2)",64,0,10,24 + 105 .stabn 192,0,0,.LBB2-my_puts + 106 .stabn 224,0,0,.LBE2-my_puts + 107 .Lscope0: + 108 .stabs "",36,0,0,.Lscope0-my_puts + 109 .stabs "my_putc:F(0,1)",36,0,20,my_putc + 110 .stabs "c:P(0,2)",64,0,19,24 + 111 .global my_putc + 112 .type my_putc, @function + 113 my_putc: + 18:hello.c **** + 19:hello.c **** int my_putc(char c) + 20:hello.c **** { + 114 .stabn 68,0,20,.LM5-my_putc + 115 .LM5: + 116 /* prologue: frame size=0 */ + 117 /* prologue end (size=0) */ + 21:hello.c **** while (bit_is_set(UCSRA, UDRE) == 0) + 118 .stabn 68,0,21,.LM6-my_putc + 119 .LM6: + 120 .L9: + 121 0020 5D9B sbis 43-0x20,5 + 122 0022 FECF rjmp .L9 + 22:hello.c **** ; + 23:hello.c **** UDR = c; + 123 .stabn 68,0,23,.LM7-my_putc + 124 .LM7: + 125 0024 8CB9 out 44-0x20,r24 + 24:hello.c **** return 0; + 25:hello.c **** } + 126 .stabn 68,0,25,.LM8-my_putc + 127 .LM8: + 128 0026 80E0 ldi r24,lo8(0) + 129 0028 90E0 ldi r25,hi8(0) + 130 /* epilogue: frame size=0 */ + 131 002a 0895 ret + 132 /* epilogue end (size=1) */ + 133 /* function my_putc size 6 (5) */ + 134 .size my_putc, .-my_putc + 135 .Lscope1: + 136 .stabs "",36,0,0,.Lscope1-my_putc + 137 .stabs "my_getc:F(0,1)",36,0,28,my_getc + 138 .global my_getc + 139 .type my_getc, @function + 140 my_getc: + 26:hello.c **** + 27:hello.c **** int my_getc(void) + 28:hello.c **** { + 141 .stabn 68,0,28,.LM9-my_getc + 142 .LM9: + 143 /* prologue: frame size=0 */ + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 4 + + + 144 /* prologue end (size=0) */ + 29:hello.c **** if (bit_is_set(UCSRA, RXC) == 0) + 145 .stabn 68,0,29,.LM10-my_getc + 146 .LM10: + 147 002c 5F9B sbis 43-0x20,7 + 148 002e 03C0 rjmp .L14 + 30:hello.c **** return -1; + 31:hello.c **** return UDR; + 149 .stabn 68,0,31,.LM11-my_getc + 150 .LM11: + 151 0030 8CB1 in r24,44-0x20 + 152 0032 9927 clr r25 + 32:hello.c **** } + 153 .stabn 68,0,32,.LM12-my_getc + 154 .LM12: + 155 0034 0895 ret + 156 .stabn 68,0,30,.LM13-my_getc + 157 .LM13: + 158 .L14: + 159 0036 8FEF ldi r24,lo8(-1) + 160 0038 9FEF ldi r25,hi8(-1) + 161 .stabn 68,0,32,.LM14-my_getc + 162 .LM14: + 163 003a 0895 ret + 164 /* epilogue: frame size=0 */ + 165 003c 0895 ret + 166 /* epilogue end (size=1) */ + 167 /* function my_getc size 9 (8) */ + 168 .size my_getc, .-my_getc + 169 .Lscope2: + 170 .stabs "",36,0,0,.Lscope2-my_getc + 171 .data + 172 .LC0: + 173 0000 6100 .string "a" + 174 .text + 175 .stabs "main:F(0,1)",36,0,35,main + 176 .global main + 177 .type main, @function + 178 main: + 33:hello.c **** + 34:hello.c **** int main(void) + 35:hello.c **** { + 179 .stabn 68,0,35,.LM15-main + 180 .LM15: + 181 /* prologue: frame size=0 */ + 182 003e C0E0 ldi r28,lo8(__stack - 0) + 183 0040 D0E0 ldi r29,hi8(__stack - 0) + 184 0042 DEBF out __SP_H__,r29 + 185 0044 CDBF out __SP_L__,r28 + 186 /* prologue end (size=4) */ + 36:hello.c **** __do_copy_data(); + 187 .stabn 68,0,36,.LM16-main + 188 .LM16: + 189 .LBB3: + 190 0046 00D0 rcall __do_copy_data + 37:hello.c **** __do_clear_bss(); + 191 .stabn 68,0,37,.LM17-main + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 5 + + + 192 .LM17: + 193 0048 00D0 rcall __do_clear_bss + 38:hello.c **** + 39:hello.c **** /* initialise the AVR's built-in UART for 9600 bps */ + 40:hello.c **** UCSRA = _BV(TXC); + 194 .stabn 68,0,40,.LM18-main + 195 .LM18: + 196 004a 80E4 ldi r24,lo8(64) + 197 004c 8BB9 out 43-0x20,r24 + 41:hello.c **** UCSRB = _BV(TXEN) | _BV(RXEN); + 198 .stabn 68,0,41,.LM19-main + 199 .LM19: + 200 004e 88E1 ldi r24,lo8(24) + 201 0050 8AB9 out 42-0x20,r24 + 42:hello.c **** UBRR = 71; + 202 .stabn 68,0,42,.LM20-main + 203 .LM20: + 204 0052 87E4 ldi r24,lo8(71) + 205 0054 89B9 out 41-0x20,r24 + 43:hello.c **** /* UBRRH = 0; */ /* = (11059200 / (9600 * 16)) - 1 */ + 44:hello.c **** + 45:hello.c **** #if 1 + 46:hello.c **** /* send a demo message to ISPD via the AVR's UART */ + 47:hello.c **** my_puts("a"); /* "hello, world\r\n"); */ + 206 .stabn 68,0,47,.LM21-main + 207 .LM21: + 208 0056 80E0 ldi r24,lo8(.LC0) + 209 0058 90E0 ldi r25,hi8(.LC0) + 210 005a D2DF rcall my_puts + 48:hello.c **** #else + 49:hello.c **** /* setup the standard input, output and error streams */ + 50:hello.c **** fdevopen(my_putc, my_getc, 0); + 51:hello.c **** + 52:hello.c **** /* send a demo message to ISPD via the AVR's UART */ + 53:hello.c **** printf("hello, world\r\n"); + 54:hello.c **** #endif + 55:hello.c **** + 56:hello.c **** /* enter an infinite loop as we can never exit */ + 57:hello.c **** while (1) + 211 .stabn 68,0,57,.LM22-main + 212 .LM22: + 213 .L16: + 214 005c FFCF rjmp .L16 + 58:hello.c **** ; + 59:hello.c **** } + 215 .stabn 68,0,59,.LM23-main + 216 .LM23: + 217 .LBE3: + 218 /* epilogue: frame size=0 */ + 219 /* epilogue: noreturn */ + 220 /* epilogue end (size=0) */ + 221 /* function main size 16 (12) */ + 222 .size main, .-main + 223 .Lscope3: + 224 .stabs "",36,0,0,.Lscope3-main + 225 .text + 226 .stabs "",100,0,0,Letext + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 6 + + + 227 Letext: + 228 /* File "hello.c": code 47 = 0x002f ( 36), prologues 6, epilogues 5 */ + GAS LISTING C:\cygwin\tmp/cc8saaaa.s page 7 + + +DEFINED SYMBOLS + *ABS*:00000000 hello.c + *ABS*:0000003f __SREG__ + *ABS*:0000003e __SP_H__ + *ABS*:0000003d __SP_L__ + *ABS*:00000000 __tmp_reg__ + *ABS*:00000001 __zero_reg__ +C:\cygwin\tmp/cc8saaaa.s:69 .text:00000000 my_puts +C:\cygwin\tmp/cc8saaaa.s:113 .text:00000020 my_putc +C:\cygwin\tmp/cc8saaaa.s:140 .text:0000002c my_getc +C:\cygwin\tmp/cc8saaaa.s:178 .text:0000003e main +C:\cygwin\tmp/cc8saaaa.s:227 .text:0000005e Letext + +UNDEFINED SYMBOLS +__do_copy_data +__do_clear_bss +__stack diff --git a/src/avrsample.old/hello.map b/src/avrsample.old/hello.map new file mode 100644 index 00000000..d64094d1 --- /dev/null +++ b/src/avrsample.old/hello.map @@ -0,0 +1,311 @@ +Archive member included because of file (symbol) + +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + hello.o (__do_copy_data) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + hello.o (__do_clear_bss) + +Memory Configuration + +Name Origin Length Attributes +text 0x00000000 0x00002000 xr +data 0x00800060 0x0000ffa0 rw !x +eeprom 0x00810000 0x00010000 rw !x +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +LOAD hello.o +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.text + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t*) + +.rela.text + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t*) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.rodata + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r*) + +.rela.rodata + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r*) + +.rel.data + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d*) + +.rela.data + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.bss + *(.rel.bss) + +.rela.bss + *(.rela.bss) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x00000000 0xb2 + *(.vectors) + .vectors 0x00000000 0x1c c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x00000000 __vectors + 0x00000000 __vector_default + 0x0000001c __ctors_start = . + *(.ctors) + 0x0000001c __ctors_end = . + 0x0000001c __dtors_start = . + *(.dtors) + 0x0000001c __dtors_end = . + *(.progmem.gcc*) + *(.progmem*) + 0x0000001c . = ALIGN (0x2) + *(.init0) + *(.init1) + *(.init2) + .init2 0x0000001c 0xc c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + *(.init3) + *(.init4) + .init4 0x00000028 0x18 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + 0x00000028 __do_copy_data + .init4 0x00000040 0x10 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + 0x00000040 __do_clear_bss + *(.init5) + *(.init6) + *(.init7) + *(.init8) + *(.init9) + .init9 0x00000050 0x2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + *(.text) + .text 0x00000052 0x2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x00000052 __vector_1 + 0x00000052 __vector_12 + 0x00000052 __bad_interrupt + 0x00000052 __vector_6 + 0x00000052 __vector_3 + 0x00000052 __vector_11 + 0x00000052 __vector_13 + 0x00000052 __vector_7 + 0x00000052 __vector_5 + 0x00000052 __vector_4 + 0x00000052 __vector_9 + 0x00000052 __vector_2 + 0x00000052 __vector_8 + 0x00000052 __vector_10 + .text 0x00000054 0x5e hello.o + 0x00000092 main + 0x00000080 my_getc + 0x00000054 my_puts + 0x00000074 my_putc + 0x000000b2 . = ALIGN (0x2) + *(.text.*) + 0x000000b2 . = ALIGN (0x2) + *(.fini9) + *(.fini8) + *(.fini7) + *(.fini6) + *(.fini5) + *(.fini4) + *(.fini3) + *(.fini2) + *(.fini1) + *(.fini0) + 0x000000b2 _etext = . + +.data 0x00800060 0x2 load address 0x000000b2 + 0x00800060 PROVIDE (__data_start, .) + *(.data) + .data 0x00800060 0x2 hello.o + *(.gnu.linkonce.d*) + 0x00800062 . = ALIGN (0x2) + 0x00800062 _edata = . + 0x00800062 PROVIDE (__data_end, .) + +.bss 0x00800062 0x0 + 0x00800062 PROVIDE (__bss_start, .) + *(.bss) + *(COMMON) + 0x00800062 PROVIDE (__bss_end, .) + 0x000000b2 __data_load_start = LOADADDR (.data) + 0x000000b4 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x00800062 0x0 + 0x00800062 PROVIDE (__noinit_start, .) + *(.noinit*) + 0x00800062 PROVIDE (__noinit_end, .) + 0x00800062 _end = . + 0x00800062 PROVIDE (__heap_start, .) + +.eeprom 0x00810000 0x0 load address 0x000000b4 + *(.eeprom*) + 0x00810000 __eeprom_end = . + +.stab 0x00000000 0x6d8 + *(.stab) + .stab 0x00000000 0x2a0 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + .stab 0x000002a0 0x438 hello.o + 0x444 (size before relaxing) + +.stabstr 0x00000000 0x6a4 + *(.stabstr) + .stabstr 0x00000000 0x6a4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x0 (size before relaxing) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment + *(.comment) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info) + *(.gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) +OUTPUT(hello.elf elf32-avr) + +Cross Reference Table + +Symbol File +__bad_interrupt c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__bss_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) +__bss_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) +__data_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__data_load_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__data_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__do_clear_bss c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + hello.o +__do_copy_data c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + hello.o +__heap_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__init c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__stack c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + hello.o +__vector_1 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_10 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_11 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_12 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_13 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_3 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_5 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_6 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_7 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_8 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_9 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_default c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vectors c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +main hello.o + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +my_getc hello.o +my_putc hello.o +my_puts hello.o diff --git a/src/avrsample.old/hello.o b/src/avrsample.old/hello.o new file mode 100644 index 0000000000000000000000000000000000000000..ba38dfb088b83d582f332e654b89bb5d58702805 GIT binary patch literal 3972 zcma)9U1(fI6rOZryY@%zk5%!fTbkNzP4+*V&2FQqY-@!+)J9s7==EmzcC+?ociDTl zG(l+SOIt12TBAroL7#l^p^p`zRS|rVL_tsln?eymu;$4pjo&#lb9d4;&=dB~H)p;% z=iGD7>`qSYJGj5At4nC<5~HF$6JlbW5Ua45VM4E1C&FUx(v3?$$G?rAyLfiT_P@gO zG~WDsX5qrZjf-;^!?Ukk{&(*DRhoxqt;?b7=dXOQD?I!5?T>DUXT!7C7v>j!z4qNT zF)!w4ZoPH&?9Df?p1F07`9IuPnzNPvm&Nm|g}4`f%PP2S2Hpj{N9nT|XB0kS;D&)e zHSkRX@4(B>U{2y2_!|TNVc;l|F~e*jMh*Oif!{Om6$5{7;I*N)oqhwqVBl#3e`4Uz zflsR#zB2HFfxEiNevDaL8OIs-F-|hx%Q(gOC}UY=m+=7WPct55{66CxlihE0hl->J@`cM z*$RG-*a9TPPTspY*jrS3S}TeNX<#XehXm5C@FN1-Sjgsjd}3@X^*fUNP52D6{T+%yc1+x3*x6~=>E+mHQ&B|418R3s><-?tDB{Mu z4bR>oD8y&M5(<@)3Mz=cWNKHHe0Ap+7&fVW=Vmb zRU3_{P-k|H8s{i1O)=f0V$4CcmT@}bRAot`E=;tn@mAIKt2OI{ZMjuXWdh~cjX+aK zuN;K+Y`yNv)1>m)kAQ=tS<1(cR%?5Y9FF7M#;diG+bTP8&o5W&u?ZaO|69cY^rsq* z2LfQuBHw8`&6J`pHPOn&C zqIk!e7Ccjt<(K?~n4Gd2E#J%UM?UcaUj9&Tl7iumqZgu9PDK^3q?f6d%mh_TjFTkLU=H-knYRGp*8y5e^SkHHDq}Q&s7T3pzZYm)15@~-lauD zG>`7u8q+fIig31uCJ^nHZkT3#iTj0k5ju(wSE+zUcX;g+Q2c~Vbnn-qeQkuoL5B~QWtHo=q&222K4o(1I(E~d^QO+eKHD_XSr&AN;S2|{ zbX>-`db5md1j8DI_XCHhF(7n)Lh52m|3|J?4e}E38ilt2cc})882AEoS|0|NFs+X% SOgZ~PVanGC`kXjayZ-=4UZb-B literal 0 HcmV?d00001 diff --git a/src/avrsample.old/hello.s b/src/avrsample.old/hello.s new file mode 100644 index 00000000..8944fb73 --- /dev/null +++ b/src/avrsample.old/hello.s @@ -0,0 +1,228 @@ + .file "hello.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .stabs "c:\\uzi\\src\\avrsample/",100,0,0,.Ltext0 + .stabs "hello.c",100,0,0,.Ltext0 + .text +.Ltext0: + .stabs "gcc2_compiled.",60,0,0,0 + .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 + .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 + .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0 + .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0 + .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0 + .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,0 + .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,0 + .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 + .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0 + .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0 + .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0 + .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 + .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0 + .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0 + .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0 + .stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0 + .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0 + .stabs "complex long double:t(0,18)=r(0,18);8;0;",128,0,0,0 + .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0 + .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0 + .stabs "hello.c",130,0,0,0 + .stabs "c:/WinAVR/avr/include/stdio.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/inttypes.h",130,0,0,0 + .stabs "int8_t:t(3,1)=(0,10)",128,0,46,0 + .stabs "uint8_t:t(3,2)=(0,11)",128,0,47,0 + .stabs "int16_t:t(3,3)=(0,1)",128,0,49,0 + .stabs "uint16_t:t(3,4)=(0,4)",128,0,50,0 + .stabs "int32_t:t(3,5)=(0,3)",128,0,52,0 + .stabs "uint32_t:t(3,6)=(0,5)",128,0,53,0 + .stabs "int64_t:t(3,7)=(0,6)",128,0,55,0 + .stabs "uint64_t:t(3,8)=(0,7)",128,0,56,0 + .stabs "intptr_t:t(3,9)=(3,3)",128,0,58,0 + .stabs "uintptr_t:t(3,10)=(3,4)",128,0,59,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stdarg.h",130,0,0,0 + .stabs "__gnuc_va_list:t(4,1)=(0,19)",128,0,43,0 + .stabs "va_list:t(4,2)=(4,1)",128,0,105,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stddef.h",130,0,0,0 + .stabs "size_t:t(5,1)=(0,4)",128,0,213,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io4433.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/sfr_defs.h",130,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "hello.h",130,0,0,0 + .stabn 162,0,0,0 + .stabs "my_puts:F(0,1)",36,0,9,my_puts + .stabs "s:P(1,1)=*(0,2)",64,0,8,28 +.global my_puts + .type my_puts, @function +my_puts: + .stabn 68,0,9,.LM1-my_puts +.LM1: +/* prologue: frame size=0 */ + push r28 + push r29 +/* prologue end (size=2) */ + mov r29,r25 + mov r28,r24 + .stabn 68,0,12,.LM2-my_puts +.LM2: +.LBB2: + ld r24,Y+ + tst r24 + breq .L7 +.L5: + .stabn 68,0,14,.LM3-my_puts +.LM3: + rcall my_putc + ld r24,Y+ + tst r24 + brne .L5 +.L7: + .stabn 68,0,17,.LM4-my_puts +.LM4: +.LBE2: + ldi r24,lo8(0) + ldi r25,hi8(0) +/* epilogue: frame size=0 */ + pop r29 + pop r28 + ret +/* epilogue end (size=3) */ +/* function my_puts size 16 (11) */ + .size my_puts, .-my_puts + .stabs "c:r(0,2)",64,0,10,24 + .stabn 192,0,0,.LBB2-my_puts + .stabn 224,0,0,.LBE2-my_puts +.Lscope0: + .stabs "",36,0,0,.Lscope0-my_puts + .stabs "my_putc:F(0,1)",36,0,20,my_putc + .stabs "c:P(0,2)",64,0,19,24 +.global my_putc + .type my_putc, @function +my_putc: + .stabn 68,0,20,.LM5-my_putc +.LM5: +/* prologue: frame size=0 */ +/* prologue end (size=0) */ + .stabn 68,0,21,.LM6-my_putc +.LM6: +.L9: + sbis 43-0x20,5 + rjmp .L9 + .stabn 68,0,23,.LM7-my_putc +.LM7: + out 44-0x20,r24 + .stabn 68,0,25,.LM8-my_putc +.LM8: + ldi r24,lo8(0) + ldi r25,hi8(0) +/* epilogue: frame size=0 */ + ret +/* epilogue end (size=1) */ +/* function my_putc size 6 (5) */ + .size my_putc, .-my_putc +.Lscope1: + .stabs "",36,0,0,.Lscope1-my_putc + .stabs "my_getc:F(0,1)",36,0,28,my_getc +.global my_getc + .type my_getc, @function +my_getc: + .stabn 68,0,28,.LM9-my_getc +.LM9: +/* prologue: frame size=0 */ +/* prologue end (size=0) */ + .stabn 68,0,29,.LM10-my_getc +.LM10: + sbis 43-0x20,7 + rjmp .L14 + .stabn 68,0,31,.LM11-my_getc +.LM11: + in r24,44-0x20 + clr r25 + .stabn 68,0,32,.LM12-my_getc +.LM12: + ret + .stabn 68,0,30,.LM13-my_getc +.LM13: +.L14: + ldi r24,lo8(-1) + ldi r25,hi8(-1) + .stabn 68,0,32,.LM14-my_getc +.LM14: + ret +/* epilogue: frame size=0 */ + ret +/* epilogue end (size=1) */ +/* function my_getc size 9 (8) */ + .size my_getc, .-my_getc +.Lscope2: + .stabs "",36,0,0,.Lscope2-my_getc + .data +.LC0: + .string "a" + .text + .stabs "main:F(0,1)",36,0,35,main +.global main + .type main, @function +main: + .stabn 68,0,35,.LM15-main +.LM15: +/* prologue: frame size=0 */ + ldi r28,lo8(__stack - 0) + ldi r29,hi8(__stack - 0) + out __SP_H__,r29 + out __SP_L__,r28 +/* prologue end (size=4) */ + .stabn 68,0,36,.LM16-main +.LM16: +.LBB3: + rcall __do_copy_data + .stabn 68,0,37,.LM17-main +.LM17: + rcall __do_clear_bss + .stabn 68,0,40,.LM18-main +.LM18: + ldi r24,lo8(64) + out 43-0x20,r24 + .stabn 68,0,41,.LM19-main +.LM19: + ldi r24,lo8(24) + out 42-0x20,r24 + .stabn 68,0,42,.LM20-main +.LM20: + ldi r24,lo8(71) + out 41-0x20,r24 + .stabn 68,0,47,.LM21-main +.LM21: + ldi r24,lo8(.LC0) + ldi r25,hi8(.LC0) + rcall my_puts + .stabn 68,0,57,.LM22-main +.LM22: +.L16: + rjmp .L16 + .stabn 68,0,59,.LM23-main +.LM23: +.LBE3: +/* epilogue: frame size=0 */ +/* epilogue: noreturn */ +/* epilogue end (size=0) */ +/* function main size 16 (12) */ + .size main, .-main +.Lscope3: + .stabs "",36,0,0,.Lscope3-main + .text + .stabs "",100,0,0,Letext +Letext: +/* File "hello.c": code 47 = 0x002f ( 36), prologues 6, epilogues 5 */ diff --git a/src/avrsample.old/io.com b/src/avrsample.old/io.com new file mode 100644 index 0000000000000000000000000000000000000000..568687399ad11a000ca48f17576222aa89a1237f GIT binary patch literal 33194 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 HGU5LKe5Bwj literal 0 HcmV?d00001 diff --git a/src/avrsample.old/ispd.exe b/src/avrsample.old/ispd.exe new file mode 100644 index 0000000000000000000000000000000000000000..4963ef02fae4f79c13be35bb76c9455489555694 GIT binary patch literal 69514 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 literal 0 HcmV?d00001 diff --git a/src/avrsample.old/libc/calloc.c b/src/avrsample.old/libc/calloc.c new file mode 100644 index 00000000..93f72462 --- /dev/null +++ b/src/avrsample.old/libc/calloc.c @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2002 Joerg Wunsch + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: calloc.c,v 1.1 2002/10/12 19:37:29 joerg_wunsch Exp $ + */ + +#include +#include + +void * +calloc(size_t nele, size_t size) +{ + void *p; + + if ((p = malloc(nele * size)) == 0) + return 0; + memset(p, 0, nele * size); + return p; +} diff --git a/src/avrsample.old/libc/calloc.s b/src/avrsample.old/libc/calloc.s new file mode 100644 index 00000000..0e174d41 --- /dev/null +++ b/src/avrsample.old/libc/calloc.s @@ -0,0 +1,82 @@ + .file "calloc.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .text +.global calloc + .type calloc, @function +calloc: +/* prologue: frame size=8 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,8 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + std Y+3,r22 + std Y+4,r23 + ldd r24,Y+1 + ldd r25,Y+2 + ldd r18,Y+3 + ldd r19,Y+4 + mov r23,r19 + mov r22,r18 + rcall __mulhi3 + rcall malloc + std Y+5,r24 + std Y+6,r25 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + brne .L7 + std Y+7,__zero_reg__ + std Y+8,__zero_reg__ + rjmp .L6 +.L7: + ldd r24,Y+1 + ldd r25,Y+2 + ldd r18,Y+3 + ldd r19,Y+4 + mov r23,r19 + mov r22,r18 + rcall __mulhi3 + mov r20,r24 + mov r21,r25 + ldi r22,lo8(0) + ldi r23,hi8(0) + ldd r24,Y+5 + ldd r25,Y+6 + rcall memset + ldd r24,Y+5 + ldd r25,Y+6 + std Y+7,r24 + std Y+8,r25 +.L6: + ldd r24,Y+7 + ldd r25,Y+8 +/* epilogue: frame size=8 */ + adiw r28,8 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function calloc size 60 (41) */ + .size calloc, .-calloc +/* File "calloc.c": code 60 = 0x003c ( 41), prologues 10, epilogues 9 */ diff --git a/src/avrsample.old/libc/fdevopen.c b/src/avrsample.old/libc/fdevopen.c new file mode 100644 index 00000000..f52c4583 --- /dev/null +++ b/src/avrsample.old/libc/fdevopen.c @@ -0,0 +1,102 @@ +/* Copyright (c) 2002, Joerg Wunsch + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/* $Id: fdevopen.c,v 1.3 2003/03/17 17:49:46 troth Exp $ */ + +#include +#include +#include + +#include "stdio_private.h" + +FILE *__iob[3]; /* stdin, stdout, stderr */ + +/** \ingroup avr_stdio + This function is a replacement for \c fopen(). + + It opens a stream for a device where the actual device + implementation needs to be provided by the application. If + successful, a pointer to the structure for the opened stream is + returned. Reasons for a possible failure currently include that + neither the \c put nor the \c get argument have been provided, thus + attempting to open a stream with no IO intent at all, or that + insufficient dynamic memory is available to establish a new stream. + + If the \c put function pointer is provided, the stream is opened + with write intent. The function passed as \c put shall take one + character to write to the device as argument , and shall return 0 + if the output was successful, and a nonzero value if the character + could not be sent to the device. + + If the \c get function pointer is provided, the stream is opened + with read intent. The function passed as \c get shall take no + arguments, and return one character from the device, passed as an + \c int type. If an error occurs when trying to read from the + device, it shall return \c -1. + + If both functions are provided, the stream is opened with read + and write intent. + + The first stream opened with read intent is assigned to \c stdin, + and the first one opened with write intent is assigned to both, + \c stdout and \c stderr. + + The third parameter \c opts is currently unused, but reserved for + future extensions. */ + +FILE * +fdevopen(int (*put)(char), int (*get)(void), int opts __attribute__((unused))) +{ + FILE *s; + + if (put == 0 && get == 0) + return 0; + + if ((s = calloc(1, sizeof(FILE))) == 0) + return 0; + + if (get != 0) { + s->get = get; + s->flags = __SRD; + if (stdin == 0) + stdin = s; + } + + if (put != 0) { + s->put = put; + s->flags |= __SWR; + if (stdout == 0) { + stdout = s; + if (stderr == 0) + stderr = s; + } + } + + return s; +} diff --git a/src/avrsample.old/libc/fdevopen.s b/src/avrsample.old/libc/fdevopen.s new file mode 100644 index 00000000..1a8df297 --- /dev/null +++ b/src/avrsample.old/libc/fdevopen.s @@ -0,0 +1,139 @@ + .file "fdevopen.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .text +.global fdevopen + .type fdevopen, @function +fdevopen: +/* prologue: frame size=10 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,10 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + std Y+3,r22 + std Y+4,r23 + std Y+5,r20 + std Y+6,r21 + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + brne .L7 + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L7 + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + rjmp .L6 +.L7: + ldi r22,lo8(12) + ldi r23,hi8(12) + ldi r24,lo8(1) + ldi r25,hi8(1) + rcall calloc + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + sbiw r24,0 + brne .L8 + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + rjmp .L6 +.L8: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + breq .L9 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+3 + ldd r25,Y+4 + std Z+10,r24 + std Z+11,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldi r24,lo8(1) + std Z+3,r24 + lds r24,__iob + lds r25,(__iob)+1 + sbiw r24,0 + brne .L9 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob)+1,r25 + sts __iob,r24 +.L9: + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + breq .L11 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+1 + ldd r25,Y+2 + std Z+8,r24 + std Z+9,r25 + ldd r26,Y+7 + ldd r27,Y+8 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Z+3 + ori r24,lo8(2) + mov r31,r27 + mov r30,r26 + std Z+3,r24 + lds r24,__iob+2 + lds r25,(__iob+2)+1 + sbiw r24,0 + brne .L11 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob+2)+1,r25 + sts __iob+2,r24 + lds r24,__iob+4 + lds r25,(__iob+4)+1 + sbiw r24,0 + brne .L11 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob+4)+1,r25 + sts __iob+4,r24 +.L11: + ldd r24,Y+7 + ldd r25,Y+8 + std Y+9,r24 + std Y+10,r25 +.L6: + ldd r24,Y+9 + ldd r25,Y+10 +/* epilogue: frame size=10 */ + adiw r28,10 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function fdevopen size 125 (106) */ + .size fdevopen, .-fdevopen + .comm __iob,6,1 +/* File "fdevopen.c": code 125 = 0x007d ( 106), prologues 10, epilogues 9 */ diff --git a/src/avrsample.old/libc/gcrt1.S b/src/avrsample.old/libc/gcrt1.S new file mode 100644 index 00000000..dfe4d2c5 --- /dev/null +++ b/src/avrsample.old/libc/gcrt1.S @@ -0,0 +1,177 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +#if (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) +#error "GCC version >= 3.3 required" +#endif + +#include "macros.inc" + + .macro vector name + .if (. - __vectors < _VECTORS_SIZE) + .weak \name + .set \name, __bad_interrupt + XJMP \name + .endif + .endm + + .section .vectors,"ax",@progbits + .global __vectors + .func __vectors +__vectors: + XJMP __init + vector __vector_1 + vector __vector_2 + vector __vector_3 + vector __vector_4 + vector __vector_5 + vector __vector_6 + vector __vector_7 + vector __vector_8 + vector __vector_9 + vector __vector_10 + vector __vector_11 + vector __vector_12 + vector __vector_13 + vector __vector_14 + vector __vector_15 + vector __vector_16 + vector __vector_17 + vector __vector_18 + vector __vector_19 + vector __vector_20 + vector __vector_21 + vector __vector_22 + vector __vector_23 + vector __vector_24 + vector __vector_25 + vector __vector_26 + vector __vector_27 + vector __vector_28 + vector __vector_29 + vector __vector_30 + vector __vector_31 + vector __vector_32 + vector __vector_33 + vector __vector_34 + vector __vector_35 + vector __vector_36 + vector __vector_37 + vector __vector_38 + vector __vector_39 + .endfunc + + /* Handle unexpected interrupts (enabled and no handler), which + usually indicate a bug. Jump to the __vector_default function + if defined by the user, otherwise jump to the reset address. + + This must be in a different section, otherwise the assembler + will resolve "rjmp" offsets and there will be no relocs. */ + + .text + .global __bad_interrupt + .func __bad_interrupt +__bad_interrupt: + .weak __vector_default + .set __vector_default, __vectors + XJMP __vector_default + .endfunc + + .section .init0,"ax",@progbits + .weak __init +; .func __init +__init: + +#ifndef __AVR_ASM_ONLY__ + .weak __stack + .set __stack, RAMEND + + /* By default, malloc() uses the current value of the stack pointer + minus __malloc_margin as the highest available address. + + In some applications with external SRAM, the stack can be below + the data section (in the internal SRAM - faster), and __heap_end + should be set to the highest address available for malloc(). */ + .weak __heap_end + .set __heap_end, 0 + + .section .init2,"ax",@progbits + clr __zero_reg__ + out _SFR_IO_ADDR(SREG), __zero_reg__ + ldi r28,lo8(__stack) +#ifdef SPH + ldi r29,hi8(__stack) + out _SFR_IO_ADDR(SPH), r29 +#endif + out _SFR_IO_ADDR(SPL), r28 + +#if BIG_CODE + /* Only for >64K devices with RAMPZ, replaces the default code + provided by libgcc.S which is only linked in if necessary. */ + + .section .init4,"ax",@progbits + .global __do_copy_data +__do_copy_data: + ldi r17, hi8(__data_end) + ldi r26, lo8(__data_start) + ldi r27, hi8(__data_start) + ldi r30, lo8(__data_load_start) + ldi r31, hi8(__data_load_start) + + /* On the enhanced core, "elpm" with post-increment updates RAMPZ + automatically. Otherwise we have to handle it ourselves. */ + +#ifdef __AVR_ENHANCED__ + ldi r16, hh8(__data_load_start) +#else + ldi r16, hh8(__data_load_start - 0x10000) +.__do_copy_data_carry: + inc r16 +#endif + out _SFR_IO_ADDR(RAMPZ), r16 + rjmp .__do_copy_data_start +.__do_copy_data_loop: +#ifdef __AVR_ENHANCED__ + elpm r0, Z+ +#else + lpm +#endif + st X+, r0 +#ifndef __AVR_ENHANCED__ + adiw r30, 1 + brcs .__do_copy_data_carry +#endif +.__do_copy_data_start: + cpi r26, lo8(__data_end) + cpc r27, r17 + brne .__do_copy_data_loop +#endif /* BIG_CODE */ + +#endif /* !__AVR_ASM_ONLY__ */ + + .section .init9,"ax",@progbits + XJMP main +; .endfunc + diff --git a/src/avrsample.old/libc/gcrt1.i b/src/avrsample.old/libc/gcrt1.i new file mode 100644 index 00000000..bf13aa37 --- /dev/null +++ b/src/avrsample.old/libc/gcrt1.i @@ -0,0 +1,157 @@ +# 1 "gcrt1.S" +# 1 "" +# 1 "" +# 1 "gcrt1.S" +# 30 "gcrt1.S" +# 1 "macros.inc" 1 +# 33 "macros.inc" +# 1 "c:/WinAVR/avr/include/avr/io.h" 1 3 +# 81 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/sfr_defs.h" 1 3 +# 82 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 197 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/io4433.h" 1 3 +# 198 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 34 "macros.inc" 2 +# 124 "macros.inc" + .macro X_movw dest src + .if ((\src) - (\dest)) + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else + + + + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + + .endif + .endif + .endm +# 176 "macros.inc" + .macro LPM_R0_ZPLUS_INIT hhi + + + + + + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +# 202 "macros.inc" + lpm + adiw r30,1 + + + .endm + + .macro LPM_R0_ZP + + + + lpm + adiw r30,1 + + .endm +# 31 "gcrt1.S" 2 + + .macro vector name + .if (. - __vectors < 28) + .weak \name + .set \name, __bad_interrupt + rjmp \name + .endif + .endm + + .section .vectors,"ax",@progbits + .global __vectors + .func __vectors +__vectors: + rjmp __init + vector __vector_1 + vector __vector_2 + vector __vector_3 + vector __vector_4 + vector __vector_5 + vector __vector_6 + vector __vector_7 + vector __vector_8 + vector __vector_9 + vector __vector_10 + vector __vector_11 + vector __vector_12 + vector __vector_13 + vector __vector_14 + vector __vector_15 + vector __vector_16 + vector __vector_17 + vector __vector_18 + vector __vector_19 + vector __vector_20 + vector __vector_21 + vector __vector_22 + vector __vector_23 + vector __vector_24 + vector __vector_25 + vector __vector_26 + vector __vector_27 + vector __vector_28 + vector __vector_29 + vector __vector_30 + vector __vector_31 + vector __vector_32 + vector __vector_33 + vector __vector_34 + vector __vector_35 + vector __vector_36 + vector __vector_37 + vector __vector_38 + vector __vector_39 + .endfunc +# 93 "gcrt1.S" + .text + .global __bad_interrupt + .func __bad_interrupt +__bad_interrupt: + .weak __vector_default + .set __vector_default, __vectors + rjmp __vector_default + .endfunc + + .section .init0,"ax",@progbits + .weak __init +; .func __init +__init: + + + .weak __stack + .set __stack, 0xDF + + + + + + + + .weak __heap_end + .set __heap_end, 0 + + .section .init2,"ax",@progbits + clr r1 + out ((((0x3F) + 0x20)) - 0x20), r1 + ldi r28,lo8(__stack) + + + + + out ((((0x3D) + 0x20)) - 0x20), r28 +# 174 "gcrt1.S" + .section .init9,"ax",@progbits + rjmp main +; .endfunc diff --git a/src/avrsample.old/libc/macros.inc b/src/avrsample.old/libc/macros.inc new file mode 100644 index 00000000..29a8978a --- /dev/null +++ b/src/avrsample.old/libc/macros.inc @@ -0,0 +1,216 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +/* + macros.inc - macros for use in assembler sources + + Contributors: + Created by Marek Michalkiewicz + */ + +#include + +/* if not defined, assume old version with underscores */ +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +/* the assembler line separator (just in case it ever changes) */ +#define _L $ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +#define _U(x) CONCAT1(__USER_LABEL_PREFIX__, x) + +#define _R(x) CONCAT1(__REGISTER_PREFIX__, x) + +/* these should help to fix the "can't have function named r1()" bug + which may require adding '%' in front of register names. */ + +#define r0 _R(r0) +#define r1 _R(r1) +#define r2 _R(r2) +#define r3 _R(r3) +#define r4 _R(r4) +#define r5 _R(r5) +#define r6 _R(r6) +#define r7 _R(r7) +#define r8 _R(r8) +#define r9 _R(r9) +#define r10 _R(r10) +#define r11 _R(r11) +#define r12 _R(r12) +#define r13 _R(r13) +#define r14 _R(r14) +#define r15 _R(r15) +#define r16 _R(r16) +#define r17 _R(r17) +#define r18 _R(r18) +#define r19 _R(r19) +#define r20 _R(r20) +#define r21 _R(r21) +#define r22 _R(r22) +#define r23 _R(r23) +#define r24 _R(r24) +#define r25 _R(r25) +#define r26 _R(r26) +#define r27 _R(r27) +#define r28 _R(r28) +#define r29 _R(r29) +#define r30 _R(r30) +#define r31 _R(r31) + +#ifndef __tmp_reg__ +#define __tmp_reg__ r0 +#endif + +#ifndef __zero_reg__ +#define __zero_reg__ r1 +#endif + +#if __AVR_MEGA__ + #define XJMP jmp + #define XCALL call +#else + #define XJMP rjmp + #define XCALL rcall +#endif + +/* used only by fplib/strtod.S - libgcc internal function calls */ +#define PROLOGUE_SAVES(offset) XJMP (__prologue_saves__ + 2 * (offset)) +#define EPILOGUE_RESTORES(offset) XJMP (__epilogue_restores__ + 2 * (offset)) + +#if FLASHEND > 0x10000 /* ATmega103 */ + #define BIG_CODE 1 +#else + #define BIG_CODE 0 +#endif + +/* + Smart version of movw (use register numbers as arguments): + - uses "movw" if possible (supported by MCU, and both registers even) + - handles overlapping register pairs correctly + - no instruction generated if source and destination are the same + (may expand to 0, 1 or 2 instructions). + */ + + .macro X_movw dest src + .if ((\src) - (\dest)) /* different registers */ + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) /* src < dest */ + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else /* src > dest */ + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else /* both even -> overlap not possible */ +#if __AVR_ENHANCED__ + movw (\dest), (\src) +#else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 +#endif + .endif + .endif + .endm + +#if __AVR_ENHANCED__ + #define LOAD_X(lo, hi) movw r26, lo + #define LOAD_Z(lo, hi) movw r30, lo +#else + #define LOAD_X(lo, hi) \ + mov r26, lo _L\ + mov r27, hi + + #define LOAD_Z(lo, hi) \ + mov r30, lo _L\ + mov r31, hi +#endif + +/* LOAD_X_CONST(p) loads constant P into pointer register X. */ +#define LOAD_X_CONST(p) \ + ldi r26, lo8(p) _L\ + ldi r27, hi8(p) + +/* + LPM_R0_ZPLUS_INIT is used before the loop to initialize RAMPZ + for future devices with RAMPZ:Z auto-increment - [e]lpm r0, Z+. + + LPM_R0_ZPLUS_NEXT is used inside the loop to load a byte from + the program memory at [RAMPZ:]Z to R0, and increment [RAMPZ:]Z. + + The argument in both macros is a register that contains the + high byte (bits 23-16) of the address, bits 15-0 should be in + the Z (r31:r30) register. It can be any register except for: + r0, r1 (__zero_reg__ - assumed to always contain 0), r30, r31. + */ + + .macro LPM_R0_ZPLUS_INIT hhi +#if __AVR_ENHANCED__ + #if BIG_CODE + out _SFR_IO_ADDR(RAMPZ), \hhi + #endif +#endif + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +#if __AVR_ENHANCED__ + #if BIG_CODE + /* ELPM with RAMPZ:Z post-increment, load RAMPZ only once */ + elpm r0, Z+ + #else + /* LPM with Z post-increment, max 64K, no RAMPZ (ATmega83/161/163/32) */ + lpm r0, Z+ + #endif +#else + #if BIG_CODE + /* ELPM without post-increment, load RAMPZ each time (ATmega103) */ + out _SFR_IO_ADDR(RAMPZ), \hhi + elpm + adiw r30,1 + adc \hhi, __zero_reg__ + #else + /* LPM without post-increment, max 64K, no RAMPZ (AT90S*) */ + lpm + adiw r30,1 + #endif +#endif + .endm + + .macro LPM_R0_ZP +#if __AVR_ENHANCED__ + lpm r0, Z+ +#else + lpm + adiw r30,1 +#endif + .endm + diff --git a/src/avrsample.old/libc/malloc.c b/src/avrsample.old/libc/malloc.c new file mode 100644 index 00000000..6912b1e5 --- /dev/null +++ b/src/avrsample.old/libc/malloc.c @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2002 Joerg Wunsch + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: malloc.c,v 1.6 2003/01/08 11:14:10 joerg_wunsch Exp $ + */ + +#include + +#include + +#ifndef __AVR__ + +/* + * When compiling this file natively on a host machine, it will + * include a main() that performs a regression test. This is meant as + * a debugging aid, where a normal source-level debugger will help to + * verify that the various allocator structures have the desired + * appearance at each stage. + * + * When cross-compiling with avr-gcc, it will compile into just the + * library functions malloc() and free(). + */ +#define MALLOC_TEST + +#endif /* !__AVR__ */ + +struct freelist { + size_t sz; + struct freelist *nx; +}; + +static char *brkval; +static struct freelist *flp; + +#ifdef MALLOC_TEST + +#define malloc mymalloc +#define free myfree +#define __heap_start mymem +#define __heap_end ((char *)0) + +char mymem[256]; +#define STACK_POINTER() (mymem + 256) + +#else /* !MALLOC_TEST */ + +extern char __heap_start; +extern char __heap_end; + +#define STACK_POINTER() ((char *)SP) + +#endif /* MALLOC_TEST */ + +/* + * Exported interface: + * + * When extending the data segment, the allocator will not try to go + * beyond the current stack limit, decreased by __malloc_margin bytes. + * Thus, all possible stack frames of interrupt routines that could + * interrupt the current function, plus all further nested function + * calls must not require more stack space, or they'll risk to collide + * with the data segment. + */ + +/* May be changed by the user only before the first malloc() call. */ + +size_t __malloc_margin = 32; +char *__malloc_heap_start = &__heap_start; +char *__malloc_heap_end = &__heap_end; + +void * +malloc(size_t len) +{ + struct freelist *fp1, *fp2; + char *cp; + size_t s; + + /* + * Our minimum chunk size is the size of a pointer (plus the + * size of the "sz" field, but we don't need to account for + * this), otherwise we could not possibly fit a freelist entry + * into the chunk later. + */ + if (len < sizeof(struct freelist) - sizeof(size_t)) + len = sizeof(struct freelist) - sizeof(size_t); + + /* + * First, walk the free list and try finding a chunk that + * would match exactly. If we found one, we are done. While + * walking, note down the size of the largest chunk we found + * that would still fit the request -- we need it for step 2. + * + */ + for (s = 0, fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1->sz == len) { + /* + * Found it. Disconnect the chunk from the + * freelist, and return it. + */ + if (fp2) + fp2->nx = fp1->nx; + else + flp = fp1->nx; + return &(fp1->nx); + } + if (fp1->sz > len) { + if (s == 0 || fp1->sz < s) + s = fp1->sz; + } + } + /* + * Step 2: If we found a chunk on the freelist that would fit + * (but was too large), look it up again and use it, since it + * is our closest match now. Since the freelist entry needs + * to be split into two entries then, watch out that the + * difference between the requested size and the size of the + * chunk found is large enough for another freelist entry; if + * not, just enlarge the request size to what we have found, + * and use the entire chunk. + */ + if (s) { + if (s - len < sizeof(struct freelist)) + len = s; + for (fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1->sz == s) { + if (len == s) { + /* + * Use entire chunk; same as + * above. + */ + if (fp2) + fp2->nx = fp1->nx; + else + flp = fp1->nx; + return &(fp1->nx); + } + /* + * Split them up. Note that we leave + * the first part as the new (smaller) + * freelist entry, and return the + * upper portion to the caller. This + * saves us the work to fix up the + * freelist chain; we just need to + * fixup the size of the current + * entry, and note down the size of + * the new chunk before returning it + * to the caller. + */ + cp = (char *)fp1; + s -= len; + cp += s; + fp2 = (struct freelist *)cp; + fp2->sz = len; + fp1->sz = s - sizeof(size_t); + return &(fp2->nx); + } + } + } + /* + * Step 3: If the request could not be satisfied from a + * freelist entry, just prepare a new chunk. This means we + * need to obtain more memory first. The largest address just + * not allocated so far is remembered in the brkval variable. + * Under Unix, the "break value" was the end of the data + * segment as dynamically requested from the operating system. + * Since we don't have an operating system, just make sure + * that we don't collide with the stack. + */ + if (brkval == 0) + brkval = __malloc_heap_start; + cp = __malloc_heap_end; + if (cp == 0) + cp = STACK_POINTER() - __malloc_margin; + if (brkval + len + sizeof(size_t) < cp) { + fp1 = (struct freelist *)brkval; + brkval += len + sizeof(size_t); + fp1->sz = len; + return &(fp1->nx); + } + /* + * Step 4: There's no help, just fail. :-/ + */ + return 0; +} + +void +free(void *p) +{ + struct freelist *fp1, *fp2, *fpnew; + char *cp1, *cp2, *cpnew; + + /* ISO C says free(NULL) must be a no-op */ + if (p == 0) + return; + + cpnew = p; + cpnew -= sizeof(size_t); + fpnew = (struct freelist *)cpnew; + fpnew->nx = 0; + + /* + * Trivial case first: if there's no freelist yet, our entry + * will be the only one on it. + */ + if (flp == 0) { + flp = fpnew; + return; + } + + /* + * Now, find the position where our new entry belongs onto the + * freelist. Try to aggregate the chunk with adjacent chunks + * if possible. + */ + for (fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1 < fpnew) + continue; + cp1 = (char *)fp1; + fpnew->nx = fp1; + if ((char *)&(fpnew->nx) + fpnew->sz == cp1) { + /* upper chunk adjacent, assimilate it */ + fpnew->sz += fp1->sz + sizeof(size_t); + fpnew->nx = fp1->nx; + } + if (fp2 == 0) { + /* new head of freelist */ + flp = fpnew; + return; + } + break; + } + /* + * Note that we get here either if we hit the "break" above, + * or if we fell off the end of the loop. The latter means + * we've got a new topmost chunk. Either way, try aggregating + * with the lower chunk if possible. + */ + fp2->nx = fpnew; + cp2 = (char *)&(fp2->nx); + if (cp2 + fp2->sz == cpnew) { + /* lower junk adjacent, merge */ + fp2->sz += fpnew->sz + sizeof(size_t); + fp2->nx = fpnew->nx; + } +} + +#ifdef MALLOC_TEST + +#include +#include +#include + +void *handles[32]; +size_t sizes[32]; + + +void * +alloc(size_t s) +{ + void *p; + + if ((p = malloc(s)) == 0) + return 0; + memset(p, 0xd0, s); + return p; +} + +void +printfreelist(void) +{ + struct freelist *fp1; + int i; + + if (!flp) { + printf("no free list\n"); + return; + } + + for (i = 0, fp1 = flp; fp1; i++, fp1 = fp1->nx) { + printf("entry %d @ %u: size %u, next ", + i, (char *)fp1 - mymem, fp1->sz); + if (fp1->nx) + printf("%u\n", (char *)fp1->nx - mymem); + else + printf("NULL\n"); + } +} + +int +compare(const void *p1, const void *p2) +{ + return *((size_t *)p1) - *((size_t *)p2); +} + +void +printalloc(void) +{ + int i, j, k; + size_t sum, sum2; + void *sortedhandles[32]; + struct freelist *fp; + char *cp; + + for (i = j = k = sum = sum2 = 0; + i < sizeof handles / sizeof (void *); + i++) + if (sizes[i]) { + j++; + sum += sizes[i]; + if (handles[i]) { + k++; + sum2 += sizes[i]; + } + } + printf("brkval: %d, %d request%s => sum %u bytes " + "(actually %d reqs => %u bytes)\n", + (char *)brkval - mymem, j, j == 1? "": "s", sum, k, sum2); + memcpy(sortedhandles, handles, sizeof sortedhandles); + qsort(sortedhandles, 32, sizeof(void *), compare); + for (i = j = 0; i < sizeof sortedhandles / sizeof (void *); i++) + if ((cp = sortedhandles[i])) { + cp -= sizeof(size_t); + fp = (struct freelist *)cp; + printf("block %d @ %u: %u bytes\n", + j, (char *)&fp->nx - mymem, fp->sz); + j++; + } + +} + + +int +main(void) +{ + int i, j, k, l, m, om, p, f; + size_t s; + + srand(time(0) ^ getpid()); + + for (k = 0; k < 100; k++) { + memset(handles, 0, sizeof handles); + memset(sizes, 0, sizeof sizes); + + j = rand() % 16 + 15; + l = rand() % 80 + 7; + + for (i = s = 0; i < j && s < 256; i++) { + sizes[i] = rand() % l + 1; + s += sizes[i]; + } + j = i; + for (m = om = 1, p = 1, f = 0; m < 1000; m++) { + for (i = s = 0; i < j; i++) + if (handles[i]) + s++; + if (s == j) + break; + + if (m / om > 10) { + p <<= 1; + p |= 1; + } + + for (i = 0; i < j; i++) + if (rand() & p) { + if (!handles[i] && + (handles[i] = alloc(sizes[i])) == 0) + f++; + } + for (i = 0; i < j; i++) + if (rand() & 1) { + free(handles[i]); + handles[i] = 0; + } + } + if (f) + printf("%d alloc failure%s total\n", + f, f == 1? "": "s"); + printf("After alloc:\n"); + printalloc(); + printfreelist(); + for (i = 0; i < j; i++) + free(handles[i]); + printf("After cleanup:\n"); + printfreelist(); + } + + return 0; +} + +#endif /* MALLOC_TEST */ + diff --git a/src/avrsample.old/libc/malloc.s b/src/avrsample.old/libc/malloc.s new file mode 100644 index 00000000..610f133a --- /dev/null +++ b/src/avrsample.old/libc/malloc.s @@ -0,0 +1,600 @@ + .file "malloc.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss +.global __malloc_margin + .data + .type __malloc_margin, @object + .size __malloc_margin, 2 +__malloc_margin: + .word 32 +.global __malloc_heap_start + .type __malloc_heap_start, @object + .size __malloc_heap_start, 2 +__malloc_heap_start: + .word __heap_start +.global __malloc_heap_end + .type __malloc_heap_end, @object + .size __malloc_heap_end, 2 +__malloc_heap_end: + .word __heap_end + .text +.global malloc + .type malloc, @function +malloc: +/* prologue: frame size=14 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + ldd r24,Y+1 + ldd r25,Y+2 + cpi r24,2 + cpc r25,__zero_reg__ + brsh .L7 + ldi r24,lo8(2) + ldi r25,hi8(2) + std Y+1,r24 + std Y+2,r25 +.L7: + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L8: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L11 + rjmp .L9 +.L11: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+1 + ldd r25,Y+2 + cp r18,r24 + cpc r19,r25 + brne .L12 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + breq .L13 + ldd r24,Y+5 + ldd r25,Y+6 + std Y+13,r24 + std Y+14,r25 + ldd r26,Y+3 + ldd r27,Y+4 + mov r31,r27 + mov r30,r26 + ldd r24,Z+2 + ldd r25,Z+3 + ldd r30,Y+13 + ldd r31,Y+14 + std Z+2,r24 + std Z+3,r25 + rjmp .L14 +.L13: + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + sts (flp)+1,r25 + sts flp,r24 +.L14: + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L12: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+1 + ldd r25,Y+2 + cp r24,r18 + cpc r25,r19 + brsh .L10 + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,0 + breq .L17 + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brlo .L17 + rjmp .L10 +.L17: + ldd r30,Y+3 + ldd r31,Y+4 + ld r24,Z + ldd r25,Z+1 + std Y+9,r24 + std Y+10,r25 +.L10: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L8 +.L9: + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,0 + brne .+2 + rjmp .L18 + ldd r24,Y+9 + ldd r25,Y+10 + ldd r18,Y+1 + ldd r19,Y+2 + sub r24,r18 + sbc r25,r19 + cpi r24,4 + cpc r25,__zero_reg__ + brsh .L19 + ldd r24,Y+9 + ldd r25,Y+10 + std Y+1,r24 + std Y+2,r25 +.L19: + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L20: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L23 + rjmp .L18 +.L23: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + breq .+2 + rjmp .L22 + ldd r18,Y+1 + ldd r19,Y+2 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brne .L25 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + breq .L26 + ldd r24,Y+5 + ldd r25,Y+6 + std Y+13,r24 + std Y+14,r25 + ldd r26,Y+3 + ldd r27,Y+4 + mov r31,r27 + mov r30,r26 + ldd r24,Z+2 + ldd r25,Z+3 + ldd r30,Y+13 + ldd r31,Y+14 + std Z+2,r24 + std Z+3,r25 + rjmp .L27 +.L26: + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + sts (flp)+1,r25 + sts flp,r24 +.L27: + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L25: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+7,r24 + std Y+8,r25 + ldd r18,Y+9 + ldd r19,Y+10 + ldd r24,Y+1 + ldd r25,Y+2 + sub r18,r24 + sbc r19,r25 + mov r25,r19 + mov r24,r18 + std Y+9,r24 + std Y+10,r25 + ldd r18,Y+7 + ldd r19,Y+8 + ldd r24,Y+9 + ldd r25,Y+10 + add r24,r18 + adc r25,r19 + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r24,Y+1 + ldd r25,Y+2 + st Z,r24 + std Z+1,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,2 + st Z,r24 + std Z+1,r25 + ldd r24,Y+5 + ldd r25,Y+6 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L22: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L20 +.L18: + lds r24,brkval + lds r25,(brkval)+1 + sbiw r24,0 + brne .L28 + lds r24,__malloc_heap_start + lds r25,(__malloc_heap_start)+1 + sts (brkval)+1,r25 + sts brkval,r24 +.L28: + lds r24,__malloc_heap_end + lds r25,(__malloc_heap_end)+1 + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + sbiw r24,0 + brne .L29 + lds r24,93 + mov r18,r24 + clr r19 + lds r24,__malloc_margin + lds r25,(__malloc_margin)+1 + sub r18,r24 + sbc r19,r25 + mov r25,r19 + mov r24,r18 + std Y+7,r24 + std Y+8,r25 +.L29: + lds r18,brkval + lds r19,(brkval)+1 + ldd r24,Y+1 + ldd r25,Y+2 + add r24,r18 + adc r25,r19 + mov r18,r24 + mov r19,r25 + subi r18,lo8(-(2)) + sbci r19,hi8(-(2)) + ldd r24,Y+7 + ldd r25,Y+8 + cp r18,r24 + cpc r19,r25 + brsh .L30 + lds r24,brkval + lds r25,(brkval)+1 + std Y+3,r24 + std Y+4,r25 + lds r18,brkval + lds r19,(brkval)+1 + ldd r24,Y+1 + ldd r25,Y+2 + add r24,r18 + adc r25,r19 + adiw r24,2 + sts (brkval)+1,r25 + sts brkval,r24 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Y+1 + ldd r25,Y+2 + st Z,r24 + std Z+1,r25 + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L30: + std Y+11,__zero_reg__ + std Y+12,__zero_reg__ +.L6: + ldd r24,Y+11 + ldd r25,Y+12 +/* epilogue: frame size=14 */ + adiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function malloc size 354 (335) */ + .size malloc, .-malloc +.global free + .type free, @function +free: +/* prologue: frame size=14 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + brne .L32 + rjmp .L31 +.L32: + ldd r24,Y+1 + ldd r25,Y+2 + std Y+13,r24 + std Y+14,r25 + ldd r24,Y+13 + ldd r25,Y+14 + sbiw r24,2 + std Y+13,r24 + std Y+14,r25 + ldd r24,Y+13 + ldd r25,Y+14 + std Y+7,r24 + std Y+8,r25 + ldd r30,Y+7 + ldd r31,Y+8 + std Z+2,__zero_reg__ + std Z+3,__zero_reg__ + lds r24,flp + lds r25,(flp)+1 + sbiw r24,0 + brne .L33 + ldd r24,Y+7 + ldd r25,Y+8 + sts (flp)+1,r25 + sts flp,r24 + rjmp .L31 +.L33: + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L34: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L37 + rjmp .L35 +.L37: + ldd r18,Y+3 + ldd r19,Y+4 + ldd r24,Y+7 + ldd r25,Y+8 + cp r18,r24 + cpc r19,r25 + brsh .L38 + rjmp .L36 +.L38: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+9,r24 + std Y+10,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+3 + ldd r25,Y+4 + std Z+2,r24 + std Z+3,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r18,Y+7 + ldd r19,Y+8 + ld r24,Z + ldd r25,Z+1 + add r24,r18 + adc r25,r19 + mov r18,r24 + mov r19,r25 + subi r18,lo8(-(2)) + sbci r19,hi8(-(2)) + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brne .L39 + ldd r20,Y+7 + ldd r21,Y+8 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r26,Y+3 + ldd r27,Y+4 + ld r18,Z + ldd r19,Z+1 + ld r24,X+ + ld r25,X + add r24,r18 + adc r25,r19 + adiw r24,2 + mov r31,r21 + mov r30,r20 + st Z,r24 + std Z+1,r25 + ldd r26,Y+7 + ldd r27,Y+8 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + mov r31,r27 + mov r30,r26 + std Z+2,r24 + std Z+3,r25 +.L39: + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + brne .L35 + ldd r24,Y+7 + ldd r25,Y+8 + sts (flp)+1,r25 + sts flp,r24 + rjmp .L31 +.L36: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L34 +.L35: + ldd r30,Y+5 + ldd r31,Y+6 + ldd r24,Y+7 + ldd r25,Y+8 + std Z+2,r24 + std Z+3,r25 + ldd r24,Y+5 + ldd r25,Y+6 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r18,Y+11 + ldd r19,Y+12 + ld r24,Z + ldd r25,Z+1 + add r18,r24 + adc r19,r25 + ldd r24,Y+13 + ldd r25,Y+14 + cp r18,r24 + cpc r19,r25 + brne .L31 + ldd r20,Y+5 + ldd r21,Y+6 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r26,Y+7 + ldd r27,Y+8 + ld r18,Z + ldd r19,Z+1 + ld r24,X+ + ld r25,X + add r24,r18 + adc r25,r19 + adiw r24,2 + mov r31,r21 + mov r30,r20 + st Z,r24 + std Z+1,r25 + ldd r26,Y+5 + ldd r27,Y+6 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Z+2 + ldd r25,Z+3 + mov r31,r27 + mov r30,r26 + std Z+2,r24 + std Z+3,r25 +.L31: +/* epilogue: frame size=14 */ + adiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function free size 204 (185) */ + .size free, .-free + .lcomm brkval,2 + .lcomm flp,2 +/* File "malloc.c": code 558 = 0x022e ( 520), prologues 20, epilogues 18 */ diff --git a/src/avrsample.old/libc/memset.S b/src/avrsample.old/libc/memset.S new file mode 100644 index 00000000..cc049cfb --- /dev/null +++ b/src/avrsample.old/libc/memset.S @@ -0,0 +1,78 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +#include "macros.inc" + +#define dest_hi r25 +#define dest_lo r24 +; #define val_hi r23 +#define val_lo r22 +#define len_hi r21 +#define len_lo r20 + +/** \ingroup avr_string + \fn void *memset(void *dest, int val, size_t len) + \brief Fill memory with a constant byte. + + The memset() function fills the first len bytes of the memory area pointed + to by dest with the constant byte val. + + \returns The memset() function returns a pointer to the memory area dest. */ + + .text + .global _U(memset) + .type _U(memset), @function +_U(memset): + LOAD_X(dest_lo, dest_hi) +#if OPTIMIZE_SPEED +; 11 words, (12 + len * 4 - (len & 1)) cycles + sbrs len_lo, 0 + rjmp .memset_start + rjmp .memset_odd +.memset_loop: + st X+, val_lo +.memset_odd: + st X+, val_lo +.memset_start: + subi len_lo, lo8(2) + sbci len_hi, hi8(2) +#else +; 8 words, (11 + len * 6) cycles + rjmp .memset_start +.memset_loop: + st X+, val_lo +.memset_start: + subi len_lo, lo8(1) + sbci len_hi, hi8(1) +#endif + brcc .memset_loop +; return dest (unchanged) + ret +.memset_end: + .size _U(memset), .memset_end - _U(memset) + diff --git a/src/avrsample.old/libc/memset.i b/src/avrsample.old/libc/memset.i new file mode 100644 index 00000000..f05cb503 --- /dev/null +++ b/src/avrsample.old/libc/memset.i @@ -0,0 +1,86 @@ +# 1 "memset.S" +# 1 "" +# 1 "" +# 1 "memset.S" +# 29 "memset.S" +# 1 "macros.inc" 1 +# 33 "macros.inc" +# 1 "c:/WinAVR/avr/include/avr/io.h" 1 3 +# 81 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/sfr_defs.h" 1 3 +# 82 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 197 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/io4433.h" 1 3 +# 198 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 34 "macros.inc" 2 +# 124 "macros.inc" + .macro X_movw dest src + .if ((\src) - (\dest)) + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else + + + + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + + .endif + .endif + .endm +# 176 "macros.inc" + .macro LPM_R0_ZPLUS_INIT hhi + + + + + + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +# 202 "macros.inc" + lpm + adiw r30,1 + + + .endm + + .macro LPM_R0_ZP + + + + lpm + adiw r30,1 + + .endm +# 30 "memset.S" 2 + + + +; #define val_hi r23 +# 47 "memset.S" + .text + .global memset + .type memset, @function +memset: + mov r26, r24 $ mov r27, r25 +# 65 "memset.S" +; 8 words, (11 + len * 6) cycles + rjmp .memset_start +.memset_loop: + st X+, r22 +.memset_start: + subi r20, lo8(1) + sbci r21, hi8(1) + + brcc .memset_loop +; return dest (unchanged) + ret +.memset_end: + .size memset, .memset_end - memset diff --git a/src/avrsample.old/libc/stdio_private.h b/src/avrsample.old/libc/stdio_private.h new file mode 100644 index 00000000..16a8fbef --- /dev/null +++ b/src/avrsample.old/libc/stdio_private.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2002, Joerg Wunsch + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/* $Id: stdio_private.h,v 1.6 2003/01/07 22:17:24 joerg_wunsch Exp $ */ + +#include +#include + +struct __file { + char *buf; /* buffer pointer */ + unsigned char unget; /* ungetc() buffer */ + uint8_t flags; /* flags, see below */ +#define __SRD 0x0001 /* OK to read */ +#define __SWR 0x0002 /* OK to write */ +#define __SSTR 0x0004 /* this is an sprintf/snprintf string */ +#define __SPGM 0x0008 /* fmt string is in progmem */ +#define __SERR 0x0010 /* found error */ +#define __SEOF 0x0020 /* found EOF */ +#define __SUNGET 0x040 /* ungetc() happened */ +#if 0 +/* possible future extensions, will require uint16_t flags */ +#define __SRW 0x0080 /* open for reading & writing */ +#define __SLBF 0x0100 /* line buffered */ +#define __SNBF 0x0200 /* unbuffered */ +#define __SMBF 0x0400 /* buf is from malloc */ +#endif + int size; /* size of buffer */ + int len; /* characters read or written so far */ + int (*put)(char); /* function to write one char to device */ + int (*get)(void); /* function to read one char from device */ +}; + +/* values for PRINTF_LEVEL */ +#define PRINTF_MIN 1 +#define PRINTF_STD 2 +#define PRINTF_FLT 3 + +/* values for SCANF_LEVEL */ +#define SCANF_MIN 1 +#define SCANF_STD 2 +#define SCANF_FLT 3 diff --git a/src/avrsample.old/makefile b/src/avrsample.old/makefile new file mode 100644 index 00000000..71214fd4 --- /dev/null +++ b/src/avrsample.old/makefile @@ -0,0 +1,38 @@ +# Simple Makefile +# Volker Oth (c) 1999 + + +########### change this lines according to your project ################## + +#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) + MCU = at90s4433 + +#put the name of the target file here (without extension) + TRG = hello + +#put your C sourcefiles here +# SRC = uart.c $(TRG).c + SRC = $(TRG).c + +#put additional assembler source file here + ASRC = + +#additional libraries and object files to link + LIB = + +#additional includes to compile + INC = + +#compiler flags + CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + +#linker flags + LDFLAGS = -Wl,-Map=$(TRG).map,--cref + +########### you should not need to change the following line ############# +include avr_make + +###### dependecies, add any dependencies you need here ################### + +#uart.o : uart.c uart.h +$(TRG).o : $(TRG).c diff --git a/src/avrsample.old/makefile% b/src/avrsample.old/makefile% new file mode 100644 index 00000000..0dc1ef71 --- /dev/null +++ b/src/avrsample.old/makefile% @@ -0,0 +1,39 @@ +# Simple Makefile +# Volker Oth (c) 1999 + + +########### change this lines according to your project ################## + +#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) + MCU = at90s4433 + +#put the name of the target file here (without extension) + TRG = hello + +#put your C sourcefiles here +# SRC = uart.c $(TRG).c + SRC = $(TRG).c + +#put additional assembler source file here + ASRC = + +#additional libraries and object files to link + LIB = + +#additional includes to compile + INC = + +#compiler flags + CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + +#linker flags + LDFLAGS = -Wl,-Map=$(TRG).map,--cref + +########### you should not need to change the following line ############# +include avr_make + +###### dependecies, add any dependencies you need here ################### + +#uart.o : uart.c uart.h +$(TRG).o : $(TRG).c + mv $(TRG).o $(TRG).obj diff --git a/src/avrsample.old/n.bat b/src/avrsample.old/n.bat new file mode 100644 index 00000000..2ecd204f --- /dev/null +++ b/src/avrsample.old/n.bat @@ -0,0 +1,2 @@ +avr-gcc -mmcu=at90s4433 -Wa,-a=nick -Wl,--oformat,ihex,-M hello.c -o hello.hex > hello.map +copy hello.hex a:\ diff --git a/src/avrsample.old/nick b/src/avrsample.old/nick new file mode 100644 index 00000000..2ab5e80c --- /dev/null +++ b/src/avrsample.old/nick @@ -0,0 +1,123 @@ +GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 1 + + + 1 .file "gcctest7.c" + 2 .arch at90s4433 + 3 __SREG__ = 0x3f + 4 __SP_H__ = 0x3e + 5 __SP_L__ = 0x3d + 6 __tmp_reg__ = 0 + 7 __zero_reg__ = 1 + 8 .global __do_copy_data + 9 .global __do_clear_bss + 10 .section .progmem.data,"a",@progbits + 11 .type __c.0, @object + 12 .size __c.0, 14 + 13 __c.0: + 14 0000 4865 6C6C .string "Hello World !" + 14 6F20 576F + 14 726C 6420 + 14 2100 + 15 .type __c.1, @object + 16 .size __c.1, 17 + 17 __c.1: + 18 000e 5072 6573 .string "Press any key..." + 18 7320 616E + 18 7920 6B65 + 18 792E 2E2E + 18 00 + 19 .type __c.2, @object + 20 .size __c.2, 14 + 21 __c.2: + 22 001f 596F 7520 .string "You pressed '" + 22 7072 6573 + 22 7365 6420 + 22 2700 + 23 .type __c.3, @object + 24 .size __c.3, 14 + 25 __c.3: + 26 002d 2720 7768 .string "' which is 0x" + 26 6963 6820 + 26 6973 2030 + 26 7800 + 27 .type __c.4, @object + 28 .size __c.4, 17 + 29 __c.4: + 30 003b 2069 6E20 .string " in hexadecimal." + 30 6865 7861 + 30 6465 6369 + 30 6D61 6C2E + 30 00 + 31 .text + 32 .global main + 33 .type main, @function + 34 main: + 35 /* prologue: frame size=1 */ + 36 0000 C0E0 ldi r28,lo8(__stack - 1) + 37 0002 D0E0 ldi r29,hi8(__stack - 1) + 38 0004 DEBF out __SP_H__,r29 + 39 0006 CDBF out __SP_L__,r28 + 40 /* prologue end (size=4) */ + GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 2 + + + 41 0008 00D0 rcall UART_Init + 42 000a 80E0 ldi r24,lo8(__c.0) + 43 000c 90E0 ldi r25,hi8(__c.0) + 44 000e 00D0 rcall UART_PrintfProgStr + 45 0010 00D0 rcall UART_PrintfEndOfLine + 46 .L3: + 47 0012 80E0 ldi r24,lo8(__c.1) + 48 0014 90E0 ldi r25,hi8(__c.1) + 49 0016 00D0 rcall UART_PrintfProgStr + 50 0018 00D0 rcall UART_PrintfEndOfLine + 51 001a 00D0 rcall UART_ReceiveByte + 52 001c 8983 std Y+1,r24 + 53 001e 80E0 ldi r24,lo8(__c.2) + 54 0020 90E0 ldi r25,hi8(__c.2) + 55 0022 00D0 rcall UART_PrintfProgStr + 56 0024 8981 ldd r24,Y+1 + 57 0026 00D0 rcall UART_SendByte + 58 0028 80E0 ldi r24,lo8(__c.3) + 59 002a 90E0 ldi r25,hi8(__c.3) + 60 002c 00D0 rcall UART_PrintfProgStr + 61 002e 8981 ldd r24,Y+1 + 62 0030 00D0 rcall UART_Printfu08 + 63 0032 80E0 ldi r24,lo8(__c.4) + 64 0034 90E0 ldi r25,hi8(__c.4) + 65 0036 00D0 rcall UART_PrintfProgStr + 66 0038 00D0 rcall UART_PrintfEndOfLine + 67 003a EBCF rjmp .L3 + 68 /* epilogue: frame size=1 */ + 69 /* epilogue: noreturn */ + 70 /* epilogue end (size=0) */ + 71 /* function main size 30 (26) */ + 72 .size main, .-main + 73 /* File "gcctest7.c": code 30 = 0x001e ( 26), prologues 4, epilogues 0 */ + GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 3 + + +DEFINED SYMBOLS + *ABS*:00000000 gcctest7.c + *ABS*:0000003f __SREG__ + *ABS*:0000003e __SP_H__ + *ABS*:0000003d __SP_L__ + *ABS*:00000000 __tmp_reg__ + *ABS*:00000001 __zero_reg__ +C:\cygwin\tmp/ccmeaaaa.s:13 .progmem.data:00000000 __c.0 +C:\cygwin\tmp/ccmeaaaa.s:17 .progmem.data:0000000e __c.1 +C:\cygwin\tmp/ccmeaaaa.s:21 .progmem.data:0000001f __c.2 +C:\cygwin\tmp/ccmeaaaa.s:25 .progmem.data:0000002d __c.3 +C:\cygwin\tmp/ccmeaaaa.s:29 .progmem.data:0000003b __c.4 +C:\cygwin\tmp/ccmeaaaa.s:34 .text:00000000 main + +UNDEFINED SYMBOLS +__do_copy_data +__do_clear_bss +__stack +UART_Init +UART_PrintfProgStr +UART_PrintfEndOfLine +UART_ReceiveByte +UART_SendByte +UART_Printfu08 diff --git a/src/avrsample.old/r.bat b/src/avrsample.old/r.bat new file mode 100644 index 00000000..43c4d94d --- /dev/null +++ b/src/avrsample.old/r.bat @@ -0,0 +1 @@ +revava -e hello.hex -o hello.s diff --git a/src/avrsample.old/x.bat b/src/avrsample.old/x.bat new file mode 100644 index 00000000..fbce676a --- /dev/null +++ b/src/avrsample.old/x.bat @@ -0,0 +1 @@ +avr-gcc -mmcu=at90s4433 -S hello.c diff --git a/src/avrsample/a.sh b/src/avrsample/a.sh new file mode 100644 index 00000000..f5282def --- /dev/null +++ b/src/avrsample/a.sh @@ -0,0 +1,7 @@ +#!/bin/sh +avr-gcc -S -g -Wall -Wstrict-prototypes -Wa,-ahlms=hello.lst -mmcu=at90s4433 -I. hello.c -o hello.s +avr-gcc -c -g -Wall -Wstrict-prototypes -Wa,-ahlms=hello.lst -mmcu=at90s4433 -I. hello.c -o hello.o +avr-gcc hello.o -Wl,-Map=hello.map,--cref -mmcu=at90s4433 -o hello.elf +avr-objcopy -O ihex hello.elf hello.hex +avr-objcopy -j .eeprom --set-section-flags .eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex hello.elf hello.eep + diff --git a/src/avrsample/a.sh% b/src/avrsample/a.sh% new file mode 100644 index 00000000..f5282def --- /dev/null +++ b/src/avrsample/a.sh% @@ -0,0 +1,7 @@ +#!/bin/sh +avr-gcc -S -g -Wall -Wstrict-prototypes -Wa,-ahlms=hello.lst -mmcu=at90s4433 -I. hello.c -o hello.s +avr-gcc -c -g -Wall -Wstrict-prototypes -Wa,-ahlms=hello.lst -mmcu=at90s4433 -I. hello.c -o hello.o +avr-gcc hello.o -Wl,-Map=hello.map,--cref -mmcu=at90s4433 -o hello.elf +avr-objcopy -O ihex hello.elf hello.hex +avr-objcopy -j .eeprom --set-section-flags .eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex hello.elf hello.eep + diff --git a/src/avrsample/a.tar b/src/avrsample/a.tar new file mode 100644 index 0000000000000000000000000000000000000000..0748a87fcc6761cccde9b41685d5089b72bbad2a GIT binary patch literal 20480 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 VXZP8CcAro9{D1R;It>6|1OT`e&v^g< literal 0 HcmV?d00001 diff --git a/src/avrsample/avr_make b/src/avrsample/avr_make new file mode 100644 index 00000000..261036ed --- /dev/null +++ b/src/avrsample/avr_make @@ -0,0 +1,68 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +#all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +all: $(TRG).s $(TRG).elf $(TRG).hex $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +#%.eep: %.elf +# $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags .eeprom="alloc,load" --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.hex: %.elf + $(BIN) -O ihex $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/avrsample/avr_make% b/src/avrsample/avr_make% new file mode 100644 index 00000000..82c4ddbb --- /dev/null +++ b/src/avrsample/avr_make% @@ -0,0 +1,68 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +#all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +all: $(TRG).s $(TRG).elf $(TRG).hex $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +#%.eep: %.elf +# $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags .eeprom="alloc,load" --section-lma --set-section-flags .eeprom=0 -O $(FORMAT) $< $@ +%.hex: %.elf + $(BIN) -O ihex $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/avrsample/hello.c b/src/avrsample/hello.c new file mode 100644 index 00000000..add0fd10 --- /dev/null +++ b/src/avrsample/hello.c @@ -0,0 +1,118 @@ +/* hello.c by Nick for Hytech AVR */ + +#include +#include +#include +#include +#include "hello.h" + +#define F_CPU 11059200 /* 4Mhz */ +#define UART_BAUD_RATE 9600 /* 9600 baud */ +#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) + +int uart_putc(char c) + { + while (bit_is_set(UCSRA, UDRE) == 0) + ; + UDR = c; + return 0; + } + +int uart_getc(void) + { + if (bit_is_set(UCSRA, RXC) == 0) + return -1; + return UDR; + } + +/* uart globals */ +static volatile unsigned char *uart_data_ptr; +static volatile unsigned char uart_counter; + + +SIGNAL(SIG_UART_TRANS) +/* signal handler for uart txd ready interrupt */ +{ +#if 0 + if (uart_counter == 0) + { + outp(inp(UCSRB) & ~(1< to uart */ +{ + if (!uart_counter) { + /* write first byte to data buffer */ + uart_data_ptr = buf; + uart_counter = size; + outp(*buf, UDR); + } +} + + +void uart_init(void) +/* initialize uart */ +{ + /* enable RxD/TxD and ints */ + outp((1< +#include +#include + + +#define F_CPU 11059200 /* 4Mhz */ +#define UART_BAUD_RATE 9600 /* 9600 baud */ + + +#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) + + +typedef unsigned char u08; +typedef char s08; +typedef unsigned short u16; +typedef short s16; + + +/* uart globals */ +static volatile u08 *uart_data_ptr; +static volatile u08 uart_counter; + + +SIGNAL(SIG_UART_TRANS) +/* signal handler for uart txd ready interrupt */ +{ + uart_data_ptr++; + + if (--uart_counter) + outp(*uart_data_ptr, UDR); /* write byte to data buffer */ +} + + +SIGNAL(SIG_UART_RECV) +/* signal handler for receive complete interrupt */ +{ + register char led; + + led = inp(UDR); /* read byte for UART data buffer */ +#if 1 + UDR = led + 1; +#else + outp(~led, PORTB); /* output received byte to PortB (LEDs) */ +#endif +} + + +void uart_send(u08 *buf, u08 size) +/* send buffer to uart */ +{ + if (!uart_counter) { + /* write first byte to data buffer */ + uart_data_ptr = buf; + uart_counter = size; + outp(*buf, UDR); + } +} + + +void uart_init(void) +/* initialize uart */ +{ + /* enable RxD/TxD and ints */ + outp((1< +#include +/* #include */ +#include "hello.h" + +int my_puts(char *s) + { + char c; + + while (c = *s++) + { + my_putc(c); + } + return 0; + } + +int my_putc(char c) + { + while (bit_is_set(UCSRA, UDRE) == 0) + ; + UDR = c; + return 0; + } + +int my_getc(void) + { + if (bit_is_set(UCSRA, RXC) == 0) + return -1; + return UDR; + } + +int main(void) + { + __do_copy_data(); + __do_clear_bss(); + + /* initialise the AVR's built-in UART for 9600 bps */ + UCSRA = _BV(TXC); + UCSRB = _BV(TXEN) | _BV(RXEN); + UBRR = 71; + /* UBRRH = 0; */ /* = (11059200 / (9600 * 16)) - 1 */ + +#if 1 + /* send a demo message to ISPD via the AVR's UART */ + my_puts("a"); /* "hello, world\r\n"); */ +#else + /* setup the standard input, output and error streams */ + fdevopen(my_putc, my_getc, 0); + + /* send a demo message to ISPD via the AVR's UART */ + printf("hello, world\r\n"); +#endif + + /* enter an infinite loop as we can never exit */ + while (1) + ; + } + diff --git a/src/avrsample/hello.c% b/src/avrsample/hello.c% new file mode 100644 index 00000000..0f3b6e65 --- /dev/null +++ b/src/avrsample/hello.c% @@ -0,0 +1,116 @@ +/* hello.c by Nick for Hytech AVR */ + +#include +#include +#include +#include +#include "hello.h" + +#define F_CPU 11059200 /* 4Mhz */ +#define UART_BAUD_RATE 9600 /* 9600 baud */ +#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) + +int uart_putc(char c) + { + while (bit_is_set(UCSRA, UDRE) == 0) + ; + UDR = c; + return 0; + } + +int uart_getc(void) + { + if (bit_is_set(UCSRA, RXC) == 0) + return -1; + return UDR; + } + +/* uart globals */ +static volatile unsigned char *uart_data_ptr; +static volatile unsigned char uart_counter; + + +SIGNAL(SIG_UART_TRANS) +/* signal handler for uart txd ready interrupt */ +{ + if (uart_counter == 0) + { + outp(inp(UCSRB) & ~(1< to uart */ +{ + if (!uart_counter) { + /* write first byte to data buffer */ + uart_data_ptr = buf; + uart_counter = size; + outp(*buf, UDR); + } +} + + +void uart_init(void) +/* initialize uart */ +{ + /* enable RxD/TxD and ints */ + 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 + 4:hello.c **** #include + 5:hello.c **** #include + 6:hello.c **** #include + 7:hello.c **** #include "hello.h" + 8:hello.c **** + 9:hello.c **** #define F_CPU 11059200 /* 4Mhz */ + 10:hello.c **** #define UART_BAUD_RATE 9600 /* 9600 baud */ + 11:hello.c **** #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1) + 12:hello.c **** + 13:hello.c **** int uart_putc(char c) + 14:hello.c **** { + 74 .stabn 68,0,14,.LM1-uart_putc + 75 .LM1: + 76 /* prologue: frame size=1 */ + 77 0000 CF93 push r28 + 78 0002 DF93 push r29 + 79 0004 CDB7 in r28,__SP_L__ + 80 0006 DEB7 in r29,__SP_H__ + 81 0008 2197 sbiw r28,1 + 82 000a 0FB6 in __tmp_reg__,__SREG__ + 83 000c F894 cli + 84 000e DEBF out __SP_H__,r29 + 85 0010 0FBE out __SREG__,__tmp_reg__ + 86 0012 CDBF out __SP_L__,r28 + 87 /* prologue end (size=10) */ + 88 0014 8983 std Y+1,r24 + 15:hello.c **** while (bit_is_set(UCSRA, UDRE) == 0) + 89 .stabn 68,0,15,.LM2-uart_putc + 90 .LM2: + 91 .L4: + 92 0016 8091 2B00 lds r24,43 + 93 001a 9927 clr r25 + 94 001c 8072 andi r24,lo8(32) + 95 001e 9070 andi r25,hi8(32) + 96 0020 0097 sbiw r24,0 + 97 0022 C9F3 breq .L4 + 16:hello.c **** ; + 17:hello.c **** UDR = c; + GAS LISTING C:\cygwin\tmp/cciqaaaa.s page 3 + + + 98 .stabn 68,0,17,.LM3-uart_putc + 99 .LM3: + 100 0024 8981 ldd r24,Y+1 + 101 0026 8093 2C00 sts 44,r24 + 18:hello.c **** return 0; + 102 .stabn 68,0,18,.LM4-uart_putc + 103 .LM4: + 104 002a 80E0 ldi r24,lo8(0) + 105 002c 90E0 ldi r25,hi8(0) + 19:hello.c **** } + 106 .stabn 68,0,19,.LM5-uart_putc + 107 .LM5: + 108 /* epilogue: frame size=1 */ + 109 002e 2196 adiw r28,1 + 110 0030 0FB6 in __tmp_reg__,__SREG__ + 111 0032 F894 cli + 112 0034 DEBF out __SP_H__,r29 + 113 0036 0FBE out __SREG__,__tmp_reg__ + 114 0038 CDBF out __SP_L__,r28 + 115 003a DF91 pop r29 + 116 003c CF91 pop r28 + 117 003e 0895 ret + 118 /* epilogue end (size=9) */ + 119 /* function uart_putc size 32 (13) */ + 120 .size uart_putc, .-uart_putc + 121 .Lscope0: + 122 .stabs "",36,0,0,.Lscope0-uart_putc + 123 .stabs "uart_getc:F(0,1)",36,0,22,uart_getc + 124 .global uart_getc + 125 .type uart_getc, @function + 126 uart_getc: + 20:hello.c **** + 21:hello.c **** int uart_getc(void) + 22:hello.c **** { + 127 .stabn 68,0,22,.LM6-uart_getc + 128 .LM6: + 129 /* prologue: frame size=2 */ + 130 0040 CF93 push r28 + 131 0042 DF93 push r29 + 132 0044 CDB7 in r28,__SP_L__ + 133 0046 DEB7 in r29,__SP_H__ + 134 0048 2297 sbiw r28,2 + 135 004a 0FB6 in __tmp_reg__,__SREG__ + 136 004c F894 cli + 137 004e DEBF out __SP_H__,r29 + 138 0050 0FBE out __SREG__,__tmp_reg__ + 139 0052 CDBF out __SP_L__,r28 + 140 /* prologue end (size=10) */ + 23:hello.c **** if (bit_is_set(UCSRA, RXC) == 0) + 141 .stabn 68,0,23,.LM7-uart_getc + 142 .LM7: + 143 0054 8091 2B00 lds r24,43 + 144 0058 8823 tst r24 + 145 005a 2CF0 brlt .L8 + 24:hello.c **** return -1; + 146 .stabn 68,0,24,.LM8-uart_getc + 147 .LM8: + GAS LISTING C:\cygwin\tmp/cciqaaaa.s page 4 + + + 148 005c 8FEF ldi r24,lo8(-1) + 149 005e 9FEF ldi r25,hi8(-1) + 150 0060 8983 std Y+1,r24 + 151 0062 9A83 std Y+2,r25 + 152 0064 05C0 rjmp .L7 + 153 .L8: + 25:hello.c **** return UDR; + 154 .stabn 68,0,25,.LM9-uart_getc + 155 .LM9: + 156 0066 8091 2C00 lds r24,44 + 157 006a 9927 clr r25 + 158 006c 8983 std Y+1,r24 + 159 006e 9A83 std Y+2,r25 + 26:hello.c **** } + 160 .stabn 68,0,26,.LM10-uart_getc + 161 .LM10: + 162 .L7: + 163 0070 8981 ldd r24,Y+1 + 164 0072 9A81 ldd r25,Y+2 + 165 /* epilogue: frame size=2 */ + 166 0074 2296 adiw r28,2 + 167 0076 0FB6 in __tmp_reg__,__SREG__ + 168 0078 F894 cli + 169 007a DEBF out __SP_H__,r29 + 170 007c 0FBE out __SREG__,__tmp_reg__ + 171 007e CDBF out __SP_L__,r28 + 172 0080 DF91 pop r29 + 173 0082 CF91 pop r28 + 174 0084 0895 ret + 175 /* epilogue end (size=9) */ + 176 /* function uart_getc size 35 (16) */ + 177 .size uart_getc, .-uart_getc + 178 .Lscope1: + 179 .stabs "",36,0,0,.Lscope1-uart_getc + 180 .stabs "__vector_10:F(0,20)",36,0,35,__vector_10 + 181 .global __vector_10 + 182 .type __vector_10, @function + 183 __vector_10: + 27:hello.c **** + 28:hello.c **** /* uart globals */ + 29:hello.c **** static volatile unsigned char *uart_data_ptr; + 30:hello.c **** static volatile unsigned char uart_counter; + 31:hello.c **** + 32:hello.c **** + 33:hello.c **** SIGNAL(SIG_UART_TRANS) + 34:hello.c **** /* signal handler for uart txd ready interrupt */ + 35:hello.c **** { + 184 .stabn 68,0,35,.LM11-__vector_10 + 185 .LM11: + 186 /* prologue: frame size=0 */ + 187 0086 1F92 push __zero_reg__ + 188 0088 0F92 push __tmp_reg__ + 189 008a 0FB6 in __tmp_reg__,__SREG__ + 190 008c 0F92 push __tmp_reg__ + 191 008e 1124 clr __zero_reg__ + 192 0090 CF93 push r28 + 193 0092 DF93 push r29 + GAS LISTING C:\cygwin\tmp/cciqaaaa.s page 5 + + + 194 0094 CDB7 in r28,__SP_L__ + 195 0096 DEB7 in r29,__SP_H__ + 196 /* prologue end (size=9) */ + 36:hello.c **** #if 0 + 37:hello.c **** if (uart_counter == 0) + 38:hello.c **** { + 39:hello.c **** outp(inp(UCSRB) & ~(1< to uart */ + 67:hello.c **** { + 264 .stabn 68,0,67,.LM17-uart_send + 265 .LM17: + 266 /* prologue: frame size=3 */ + 267 00d4 CF93 push r28 + 268 00d6 DF93 push r29 + 269 00d8 CDB7 in r28,__SP_L__ + 270 00da DEB7 in r29,__SP_H__ + 271 00dc 2397 sbiw r28,3 + 272 00de 0FB6 in __tmp_reg__,__SREG__ + 273 00e0 F894 cli + 274 00e2 DEBF out __SP_H__,r29 + 275 00e4 0FBE out __SREG__,__tmp_reg__ + GAS LISTING C:\cygwin\tmp/cciqaaaa.s page 7 + + + 276 00e6 CDBF out __SP_L__,r28 + 277 /* prologue end (size=10) */ + 278 00e8 8983 std Y+1,r24 + 279 00ea 9A83 std Y+2,r25 + 280 00ec 6B83 std Y+3,r22 + 68:hello.c **** if (!uart_counter) { + 281 .stabn 68,0,68,.LM18-uart_send + 282 .LM18: + 283 00ee 8091 0000 lds r24,uart_counter + 284 00f2 8823 tst r24 + 285 00f4 71F4 brne .L11 + 69:hello.c **** /* write first byte to data buffer */ + 70:hello.c **** uart_data_ptr = buf; + 286 .stabn 68,0,70,.LM19-uart_send + 287 .LM19: + 288 00f6 8981 ldd r24,Y+1 + 289 00f8 9A81 ldd r25,Y+2 + 290 00fa 9093 0000 sts (uart_data_ptr)+1,r25 + 291 00fe 8093 0000 sts uart_data_ptr,r24 + 71:hello.c **** uart_counter = size; + 292 .stabn 68,0,71,.LM20-uart_send + 293 .LM20: + 294 0102 8B81 ldd r24,Y+3 + 295 0104 8093 0000 sts uart_counter,r24 + 72:hello.c **** outp(*buf, UDR); + 296 .stabn 68,0,72,.LM21-uart_send + 297 .LM21: + 298 0108 E981 ldd r30,Y+1 + 299 010a FA81 ldd r31,Y+2 + 300 010c 8081 ld r24,Z + 301 010e 8093 2C00 sts 44,r24 + 73:hello.c **** } + 74:hello.c **** } + 302 .stabn 68,0,74,.LM22-uart_send + 303 .LM22: + 304 .L11: + 305 /* epilogue: frame size=3 */ + 306 0112 2396 adiw r28,3 + 307 0114 0FB6 in __tmp_reg__,__SREG__ + 308 0116 F894 cli + 309 0118 DEBF out __SP_H__,r29 + 310 011a 0FBE out __SREG__,__tmp_reg__ + 311 011c CDBF out __SP_L__,r28 + 312 011e DF91 pop r29 + 313 0120 CF91 pop r28 + 314 0122 0895 ret + 315 /* epilogue end (size=9) */ + 316 /* function uart_send size 40 (21) */ + 317 .size uart_send, .-uart_send + 318 .Lscope4: + 319 .stabs "",36,0,0,.Lscope4-uart_send + 320 .stabs "uart_init:F(0,20)",36,0,79,uart_init + 321 .global uart_init + 322 .type uart_init, @function + 323 uart_init: + 75:hello.c **** + 76:hello.c **** + GAS LISTING C:\cygwin\tmp/cciqaaaa.s page 8 + + + 77:hello.c **** void uart_init(void) + 78:hello.c **** /* initialize uart */ + 79:hello.c **** { + 324 .stabn 68,0,79,.LM23-uart_init + 325 .LM23: + 326 /* prologue: frame size=0 */ + 327 0124 CF93 push r28 + 328 0126 DF93 push r29 + 329 0128 CDB7 in r28,__SP_L__ + 330 012a DEB7 in r29,__SP_H__ + 331 /* prologue end (size=4) */ + 80:hello.c **** /* enable RxD/TxD and ints */ + 81:hello.c **** outp((1<TvYYBxCXkywAp%m2L zo1NJm`Kpo;bMu=wzj^QNdo#1MdhXESv7VkDQl*C`DeMs~e~#!b3}yvkfIdrG=vw<$ z`|6uF-+cITHB+I?sAJt(9vl zTP~^jyS4c|`+R@=V)Sc1vF+1%E`n#z{ENL^Y;urw3+BL=vPGUh<0gsFYsehoa6#bT2wW7He_oa7&yXuWx8BYE zJSs-^3T#VO$bSrS#Xl`Lf9T?{Kwy7&<64m$oCKq z9F%e3S7>{17L}x&$4V5T`x&5=Xb0x_r9}7Az5w4Rv&TA#Mp2Il{c0x9)$teT^TFJm z^iY5wphp7yASESconxp|LTA5}vQ8Z*;gMgMA4Q!Pe1C25NQrcu*L*0@P9~s~=yCco z+C|JArCcCig-rR}0cH*tw#6&=qOkQ<7SU_Kuh2me&tFN5f={ZeXC96c$AU-9kX}N1?{x{dbL3Y(Ecmv6JDt5pXO>r=j9?9j4{5w*l z@~r6!LfR*!W5r}KmBxrutIkB#^i1r)Xd{y@vW^TW$#gO(=%q%2Qlw_JVb4^pN-#O= ztIqN~t*D+qSsLt`JgiwB?$(eA3@ew{`JLn0xvcOzhuJC3eh7=nP>Y77OG06nUn834 zkuJZqfUHy4n60^95SY9ln0)Mxr1-2Zlly)8{w{0&lc+e#=m(iiCE3-yhyieMFqO{x zDGn@zT&$CTn}VTYdU&`<(@xEl>qxE>jAb!Om0EMkvHT^5MIzUj7!q;Q$K^UuQ+bg( z*0Vu0Qb=_p>sqE$5Gyr~Rhui?bLNcfr*bU7nw1kZuaIY98ad9hTZ*EaN5%vP*;>cx z@>8ZIg}ex&VN5k`$Fr-(ylFUgLq-DW*at_`2(RCe@kFiW_`6BQaS#p%TeDmkI$>9F zV;aJ~9kQ!sr&+Ov8eYY&C1$a$|JNuspm(NjH9!E&8*DqnyO~3jj8RjQA~h^c#h9AP zNiMR&QlA<~kqbz(f|^N7DiQ!;#-|2S#1_(FLCs|)6~Tls=TieIA_wV+pw>NCauF!_ zEY*f$UYC%=hw#xIduj+L*dVtYq)Z~C2g-D35D3GVsW!`6GO{Wl`(qTQC>!U1@Yts} zP_d?Apkbf2gzv*r@j4&%&Hj~*f!AxmPy9O+ClEYARnW=h~>o)7&|7G#! zHyu#?x5X?qP1iH(O|M)SLuy1U>HukEjz?y!aKtd?t+H2hjZ{*Qv9b|sDa!{UyjKdm zk(7#tRjmYrQ_bl@eIUhgLr3yYS3@nqvB=jJK z`_Nz!KcQxF zm)kfh-(M8(eee|Kab-8BVV2*(z)9SbakUUd+2t<@-M@?X;hP&W_7C*HKmJzJ?Zlyo zzwcC0c6Z#t8^;CfkRqW~JZ|sO0gf!dXehm8PB)Z}H31>2^S7gHH`~A&igk2G*>K*;>$o?qWdtvnjw2a4Oe+BJ#QKPc| z1GKN9^1Yq;KS6r~bwc)kiFOa%;(IZVzlHX3^!Yit{|;JJIB)N%4qEQNe@8!fB^t)$ z(L+xf2F{tu31eJ=!vc77b;Gr01U_rIHQ5n|gggM&pBQx55*ytxDmC1J>u1DS0^Qto zEYmf3?~D0-B8Demc+91eA+pOd;=5M+lb{-{)s_-gg3P+)j@hHYUiFrN!SYlpF k_uyHX!|Uk0#Jq;COU%#B|1;>3F&UQ_Q|K6D0NxY-1uXE)Gynhq literal 0 HcmV?d00001 diff --git a/src/avrsample/hello.s b/src/avrsample/hello.s new file mode 100644 index 00000000..dbaf1a9a --- /dev/null +++ b/src/avrsample/hello.s @@ -0,0 +1,416 @@ + .file "hello.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .stabs "c:\\uzi\\src\\avrsample/",100,0,0,.Ltext0 + .stabs "hello.c",100,0,0,.Ltext0 + .text +.Ltext0: + .stabs "gcc2_compiled.",60,0,0,0 + .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 + .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 + .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0 + .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0 + .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0 + .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,0 + .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,0 + .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 + .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0 + .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0 + .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0 + .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 + .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0 + .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0 + .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0 + .stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0 + .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0 + .stabs "complex long double:t(0,18)=r(0,18);8;0;",128,0,0,0 + .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0 + .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0 + .stabs "hello.c",130,0,0,0 + .stabs "c:/WinAVR/avr/include/stdio.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/inttypes.h",130,0,0,0 + .stabs "int8_t:t(3,1)=(0,10)",128,0,46,0 + .stabs "uint8_t:t(3,2)=(0,11)",128,0,47,0 + .stabs "int16_t:t(3,3)=(0,1)",128,0,49,0 + .stabs "uint16_t:t(3,4)=(0,4)",128,0,50,0 + .stabs "int32_t:t(3,5)=(0,3)",128,0,52,0 + .stabs "uint32_t:t(3,6)=(0,5)",128,0,53,0 + .stabs "int64_t:t(3,7)=(0,6)",128,0,55,0 + .stabs "uint64_t:t(3,8)=(0,7)",128,0,56,0 + .stabs "intptr_t:t(3,9)=(3,3)",128,0,58,0 + .stabs "uintptr_t:t(3,10)=(3,4)",128,0,59,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stdarg.h",130,0,0,0 + .stabs "__gnuc_va_list:t(4,1)=(0,19)",128,0,43,0 + .stabs "va_list:t(4,2)=(4,1)",128,0,105,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stddef.h",130,0,0,0 + .stabs "size_t:t(5,1)=(0,4)",128,0,213,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io4433.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/sfr_defs.h",130,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/interrupt.h",130,0,0,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/signal.h",130,0,0,0 + .stabn 162,0,0,0 + .stabs "hello.h",130,0,0,0 + .stabn 162,0,0,0 + .stabs "uart_putc:F(0,1)",36,0,14,uart_putc + .stabs "c:p(0,2)",160,0,13,1 +.global uart_putc + .type uart_putc, @function +uart_putc: + .stabn 68,0,14,.LM1-uart_putc +.LM1: +/* prologue: frame size=1 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,1 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + .stabn 68,0,15,.LM2-uart_putc +.LM2: +.L4: + lds r24,43 + clr r25 + andi r24,lo8(32) + andi r25,hi8(32) + sbiw r24,0 + breq .L4 + .stabn 68,0,17,.LM3-uart_putc +.LM3: + ldd r24,Y+1 + sts 44,r24 + .stabn 68,0,18,.LM4-uart_putc +.LM4: + ldi r24,lo8(0) + ldi r25,hi8(0) + .stabn 68,0,19,.LM5-uart_putc +.LM5: +/* epilogue: frame size=1 */ + adiw r28,1 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function uart_putc size 32 (13) */ + .size uart_putc, .-uart_putc +.Lscope0: + .stabs "",36,0,0,.Lscope0-uart_putc + .stabs "uart_getc:F(0,1)",36,0,22,uart_getc +.global uart_getc + .type uart_getc, @function +uart_getc: + .stabn 68,0,22,.LM6-uart_getc +.LM6: +/* prologue: frame size=2 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,2 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + .stabn 68,0,23,.LM7-uart_getc +.LM7: + lds r24,43 + tst r24 + brlt .L8 + .stabn 68,0,24,.LM8-uart_getc +.LM8: + ldi r24,lo8(-1) + ldi r25,hi8(-1) + std Y+1,r24 + std Y+2,r25 + rjmp .L7 +.L8: + .stabn 68,0,25,.LM9-uart_getc +.LM9: + lds r24,44 + clr r25 + std Y+1,r24 + std Y+2,r25 + .stabn 68,0,26,.LM10-uart_getc +.LM10: +.L7: + ldd r24,Y+1 + ldd r25,Y+2 +/* epilogue: frame size=2 */ + adiw r28,2 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function uart_getc size 35 (16) */ + .size uart_getc, .-uart_getc +.Lscope1: + .stabs "",36,0,0,.Lscope1-uart_getc + .stabs "__vector_10:F(0,20)",36,0,35,__vector_10 +.global __vector_10 + .type __vector_10, @function +__vector_10: + .stabn 68,0,35,.LM11-__vector_10 +.LM11: +/* prologue: frame size=0 */ + push __zero_reg__ + push __tmp_reg__ + in __tmp_reg__,__SREG__ + push __tmp_reg__ + clr __zero_reg__ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ +/* prologue end (size=9) */ + .stabn 68,0,48,.LM12-__vector_10 +.LM12: +/* epilogue: frame size=0 */ + pop r29 + pop r28 + pop __tmp_reg__ + out __SREG__,__tmp_reg__ + pop __tmp_reg__ + pop __zero_reg__ + reti +/* epilogue end (size=7) */ +/* function __vector_10 size 16 (0) */ + .size __vector_10, .-__vector_10 +.Lscope2: + .stabs "",36,0,0,.Lscope2-__vector_10 + .stabs "__vector_8:F(0,20)",36,0,53,__vector_8 +.global __vector_8 + .type __vector_8, @function +__vector_8: + .stabn 68,0,53,.LM13-__vector_8 +.LM13: +/* prologue: frame size=0 */ + push __zero_reg__ + push __tmp_reg__ + in __tmp_reg__,__SREG__ + push __tmp_reg__ + clr __zero_reg__ + push r24 + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ +/* prologue end (size=10) */ + .stabn 68,0,56,.LM14-__vector_8 +.LM14: +.LBB2: + lds r24,44 + .stabn 68,0,58,.LM15-__vector_8 +.LM15: + subi r24,lo8(-(1)) + sts 44,r24 + .stabn 68,0,62,.LM16-__vector_8 +.LM16: +.LBE2: +/* epilogue: frame size=0 */ + pop r29 + pop r28 + pop r24 + pop __tmp_reg__ + out __SREG__,__tmp_reg__ + pop __tmp_reg__ + pop __zero_reg__ + reti +/* epilogue end (size=8) */ +/* function __vector_8 size 23 (5) */ + .size __vector_8, .-__vector_8 + .stabs "led:r(0,2)",64,0,54,24 + .stabn 192,0,0,.LBB2-__vector_8 + .stabn 224,0,0,.LBE2-__vector_8 +.Lscope3: + .stabs "",36,0,0,.Lscope3-__vector_8 + .stabs "uart_send:F(0,20)",36,0,67,uart_send + .stabs "buf:p(1,1)=*(0,11)",160,0,65,1 + .stabs "size:p(0,11)",160,0,65,3 +.global uart_send + .type uart_send, @function +uart_send: + .stabn 68,0,67,.LM17-uart_send +.LM17: +/* prologue: frame size=3 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,3 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + std Y+3,r22 + .stabn 68,0,68,.LM18-uart_send +.LM18: + lds r24,uart_counter + tst r24 + brne .L11 + .stabn 68,0,70,.LM19-uart_send +.LM19: + ldd r24,Y+1 + ldd r25,Y+2 + sts (uart_data_ptr)+1,r25 + sts uart_data_ptr,r24 + .stabn 68,0,71,.LM20-uart_send +.LM20: + ldd r24,Y+3 + sts uart_counter,r24 + .stabn 68,0,72,.LM21-uart_send +.LM21: + ldd r30,Y+1 + ldd r31,Y+2 + ld r24,Z + sts 44,r24 + .stabn 68,0,74,.LM22-uart_send +.LM22: +.L11: +/* epilogue: frame size=3 */ + adiw r28,3 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function uart_send size 40 (21) */ + .size uart_send, .-uart_send +.Lscope4: + .stabs "",36,0,0,.Lscope4-uart_send + .stabs "uart_init:F(0,20)",36,0,79,uart_init +.global uart_init + .type uart_init, @function +uart_init: + .stabn 68,0,79,.LM23-uart_init +.LM23: +/* prologue: frame size=0 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ +/* prologue end (size=4) */ + .stabn 68,0,81,.LM24-uart_init +.LM24: + ldi r24,lo8(-72) + sts 42,r24 + .stabn 68,0,83,.LM25-uart_init +.LM25: + ldi r24,lo8(71) + sts 41,r24 + .stabn 68,0,84,.LM26-uart_init +.LM26: +/* epilogue: frame size=0 */ + pop r29 + pop r28 + ret +/* epilogue end (size=3) */ +/* function uart_init size 13 (6) */ + .size uart_init, .-uart_init +.Lscope5: + .stabs "",36,0,0,.Lscope5-uart_init + .data +.LC0: + .string "hello, world\r\n" +.LC1: + .string "Serial Data from AVR received###" + .text + .stabs "main:F(0,1)",36,0,87,main +.global main + .type main, @function +main: + .stabn 68,0,87,.LM27-main +.LM27: +/* prologue: frame size=0 */ + ldi r28,lo8(__stack - 0) + ldi r29,hi8(__stack - 0) + out __SP_H__,r29 + out __SP_L__,r28 +/* prologue end (size=4) */ + .stabn 68,0,90,.LM28-main +.LM28: + rcall uart_init + .stabn 68,0,107,.LM29-main +.LM29: + ldi r20,lo8(0) + ldi r21,hi8(0) + ldi r22,lo8(pm(uart_getc)) + ldi r23,hi8(pm(uart_getc)) + ldi r24,lo8(pm(uart_putc)) + ldi r25,hi8(pm(uart_putc)) + rcall fdevopen + .stabn 68,0,110,.LM30-main +.LM30: + ldi r24,lo8(.LC0) + ldi r25,hi8(.LC0) + push r25 + push r24 + rcall printf + pop __tmp_reg__ + pop __tmp_reg__ + .stabn 68,0,111,.LM31-main +.LM31: + ldi r22,lo8(32) + ldi r24,lo8(.LC1) + ldi r25,hi8(.LC1) + rcall uart_send + .stabn 68,0,115,.LM32-main +.LM32: +.L15: + rjmp .L15 + .stabn 68,0,117,.LM33-main +.LM33: +/* epilogue: frame size=0 */ +/* epilogue: noreturn */ +/* epilogue end (size=0) */ +/* function main size 24 (20) */ + .size main, .-main +.Lscope6: + .stabs "",36,0,0,.Lscope6-main + .lcomm uart_data_ptr,2 + .lcomm uart_counter,1 + .stabs "uart_data_ptr:S(1,2)=*(1,3)=B(0,11)",40,0,29,uart_data_ptr + .stabs "uart_counter:S(1,3)",40,0,30,uart_counter + .text + .stabs "",100,0,0,Letext +Letext: +/* File "hello.c": code 183 = 0x00b7 ( 81), prologues 57, epilogues 45 */ diff --git a/src/avrsample/hello.tar.gz b/src/avrsample/hello.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a9cb3bd6f894a86151de22710fddba3c091da66 GIT binary patch literal 1810 zcmV+t2krPDiwFShtK2>U1MOICZ`(!^_E!n;e;C*fBBi22NtS%JqawEKBrg0CNO>uW z0>+A5NgI(|g1fS43x7j{$?Q?&>*}&6Mqus*zpwl^MG@I=v-Zz@9MrVuMt*<~crCCC>)tAHJm)3>T zaUy5&ZE)*v{U6cuXEaGufQECr7T%ObGNCtf&AkboeCX4&=jHOQh`eCtb9$k)FJyi4 z{R)fSCC}G*JE_jePPr^1P2v1Do@uY*P2g&;S}y%sF5OQ=z^O76`c|l0#dYOJ1qCIamU2%q%dS+5;-T$hHiGCnKWoniRx>4(ZY zY=4}xP8Y26>ni}sZOFn5okkih6trO|NPhfQqroGNy^XVmCa ztK?84i`0l*E3J6s6C7lXHFbSK!#L9G48- zz#oLRdb4b9WGRb8`ip%3*@yZq>%ZG*9i;W&ZFX86*Vg}LyQu$Pwf;}ORR1>=@#Eju z-{ZCFdHk383jV%?=6xHoDgTDwf2*1S53ksj5d@(+@0~v1CpFA}%Qw#%O-4Vy{p_JQ>C!U|K+W7WwFw zSHerAk|RwYMdZtSg*JO95*dYPx7%eS_<<#Y4Fj&w)otU2wAwD0dc9JYkgLwv^DsRb zET`l=pf4*PLM(Cag`PNG9G9@Fe}z>^NY2Pit}zMkFgm@s&ZOn=lPBXjc!P_d&NHSG zzu*j|i|gLmMIXF6CYKkd>BL~&Kn#t=VeCjk5ex3wT#*NlYVKE|?$u5I>f{}?nWd#ts_kteKXFf!in%970;+~~Zrp6V za&!6vY}%`w4EnvJy6VlOHLSiv+iEys`tKXo%p#omuH`O zLuAZ4GoeWXPH`eVKrd@A3xcE4Ugcf?b+v8|nhkj{%7=*z7hE3aLpg=oRbjP36mHol zx?O%!mvlr=aD##AdzBuLzT;s*c5=)v_9|&O;hq=dNZNa8#8fJ_lp6dIsdO`CrA`Lf zUYRdHFNKpFVI3k?UF?@m@j!an$62mqvDfgE*$l!~2$_qQH+dpCeKNkVPJNL{V6sVK zuaYKMb%W6E6T?_Y?JmSVEmk@XU_Aaj^F2DFfQ^xC>AUU@A}76CAep~I`H~=Hxp3Eg zY{0_Q)lL7{p0sgK#{ndX#@zWcn*qWEPKdxCK70!#SYzdmMKOH-n06UO;=`t9Ama!HWf2Hf+?eqx5euM zWc?3Q-nGBw?|%oaX8!wMyOsX_*KW58{P%V6-#}RScC`ZEKFDASymq4}RPn0RI6OQw z1q82_L}}3_JprBxfCqqTJWnRRh{onun7N!K1|3+yvim!-+6+`OKhi`j`;qn-fWst$j7YXwg?x|x&pnD1Mp%Yr46%@i+9vxu$VGpFmOaBC?ANSXjSn;1m?Ba~=Df#^(A5DTBIi)KIB z+J#v&OVMvBTbnTxvMt!0E`vx|;Ed5Uo8){%KgNHh6X9tGQP)z>V<^R&n!_eRsDL3~ ztTwI3O8&e87-G(~v}=J{q48r-bFNt2UG~HpP(s2->q(3t0>8^y;GUM%XvRfUoLa2=xqfRR8T<$6;x0`1r=0KK?N=8UxO4L8~`W)0LGe( APyhe` literal 0 HcmV?d00001 diff --git a/src/avrsample/io.com b/src/avrsample/io.com new file mode 100644 index 0000000000000000000000000000000000000000..568687399ad11a000ca48f17576222aa89a1237f GIT binary patch literal 33194 zcmeIbdq7iHwlKcWImt;#LO?)7ln@nBKoLRFLO=v1N^OZ^6=ka8t7ETK2hP#9cFLi# zLQYU?otbv#YOB~z9ox>N4s!)ESJ7iZ+EQOLt+g{#E7tBb*4oE{M)ZT!Rq4vc;`W}szv9kIP6CR)NYj%@nvF01i2gz;8->CN||0?-ElXoZoE@T|@ z82hkl6*GlVF&X##B2s3g#HCnMCbH!z1rsJsST`wy*$jWh@K-Qt1(>Ci=A>jW4bwtX z3sWasembclt3B)5wA<6D>FVh>^OihNGrjGB@AOsrT@#N?+%&ONZx7+Judy}Rxt6Ty znNxHIV^mD+$nlBErU|KO>E_W1C}0ePoMB&72UO3}xzsCY9a@GSMj0p(4M!13ix}mn zM@E#19zYf}1LdRH2!$Yam}&`l3RDYPf$~rmN<(H8gTj#ku@Hua+|vTu-G31%5=Eh* zC>jkz+0iLX1zjq+(WCnFoTggpP#5vNl2PMksHSuz&0oy!?K5hQFQdg1O)==Z-_NWq z4%w$!zC>y)rQ8Vh)U`Lym?^!JhZ|()Fri9=_#yU_jIQN6r_!D9s=CgNK5;|BFUiiD zKU2|3=%~3`%K9Ip1VPJ?H*8&r^<8-7BRsT^J8qHehCH^`^xy8R@3y{L%zP%iyu_4NeC zpuN!w$&jUBa*y3j>MsM3RL}G0d37tBVnK$U8o;yRR{}M=j#2ZK^aka}(cU!>Bk*40 zeDxT}>}|TNs7QSGM$ztn&7=MJF={*y{3_f9ne2i{R6OkpQMgsP^rHbl62GKW5^^`w zi0krQzqS(m!Jxqq-}p22&R1QhD4r2Muj)EQlkaW6OAUUz;jgylH04r(rC}C{FOjDk z<`Bu9Jstdk*iM13iy_7dVuXQ_-qLlF0#TX?z^DMg=uh7ky3Az&r>LNZ65G3AD0m7_ zL7PHRPdpY7gCa(FkStYO(?;ArR||oTSG>Sj(Cm;EP9TX(UDF9TjTlO5bzt*@7_h%j z*TT^*DsZ|MN}YtgeL~d`#IeHhHxZIVtI=MiL)_33pR?GIQmm`~TxOV0#5X!9e?ghl z#fDP?XJ}*379!Nfo(GeFC@!*%{SX{pRr=MAt_G^3i|>-0(L*R)*Vks%0pau(NjT0> zh}Q~LPcjvZ{!^*RfcCg+m-vJkhzs#od-tL%xAsVFns8LtzQ-@&`3h(J>HdPkcxq67 zwI4mo$J%qDOmUGyZn8z@#t6Ad;2LQ^srH6n?>c*k=E6zwPcU=Z{OdYMR5h7>FZ5%-sadvK`%+>im>AC(!%f8V0TEXi^{_obaDe2(LdR9#Ior7&X* z%0ko1f?&PF@l$f5b84a-$}{*ka!MdkR0p~9YnCsQ_Vzh@jGDz((W*Uc1vBJulNvF- z$E-7Ny=GnJYgL)?NCa)?GQYH#HEQ~VXNJt+)i@7%89WqemP2p|cq))A=H8jGA&F~Zm?Z`6*X@zjnglhZn~A8Vvzs!%n8G^oMi zWpx&h>@3)^#WdGZJkl9>`_}8fa%_na41$pGYDYPKBj8+2Lw0Sms`xPBxCWXshSY{y z>j(+rq9J{vm1HT9`z=EJqt4=@PTD)kS^Q+@b?26+U5vd|z2kTWCFICl>Y~Mv3El&gdNdiZn6*8fE#(M}q z*1H!n1!UA(lTINYj*xM4=JCCn&uwnM!fg0&9?!S;tWT6u0tm&zuHcDuQvw(7RE&;46zL1L+3AI zfo2PSRHIq8#I^dGIez)lveGm6L`MH8vgcP1LSqPGgzQUPY_;#x5YAZbo1^2SKwmQOMlW0K-(cX` zI;rk-wj`N;L}Bc^3+awg_Et7tLa)sv8iMw~B=XT6Hjs~g4zyGV89r6ihwzfg#1+kE zkEHtlnAzh19zfG@e0c|38*8_;twX)A<%dPCsvl(affthxn%>5%f z`qi1-MV#HOwAW|wAAJ0Kt!(!Yv{xxQFD z7J7?DIIe~^d|GD8hp-&)f)*;YRJTplX1rG7@_Q!^0Jr)k2 z*O2qLmeR}Ie7nqWVYSsdDy_yySseiNo@%YpQYZ`DoTjyA2t|31wAO@C6L%apP@=lF zCWa~|pJC*4C~wE{2vA(C)>?JzY(T9Mi=$@>y}zksYKx=OzjpRARZ+FGskvN8)-H;w z7~)wYx7ElndYUt*wuYke^3uVTe${zXtU*-zHdH3QhJNAzn8zYpp5;b@n1@1f%c!l< zff8e+TCLHD@JD$@%IPh&HLcWkYxEpTL?z?V%g!xP9pzcGXwCro#7c#C&kun`%u$MR z&Z3uP16fYhKzln|Yd`~061B+Qs>93Dm+{lUrp61w#(4H2QcEbM`-ySMJC3JQhsAkx z`q%c>NV_NU)@z47uLK&Hj+LI50!pyB^kv+-MS@`kp`iyyoLKWFqHF$&EK!wOd^@Rv z@w^2+Qj{?ERnMvb5YFX8*;BbaL+q^)ufMMG{!NK19zR6mvq_ahAt9|Q>UhG^roHIa zYx|BREQP+&`yaybR;WsifUD>4)_0o3)irBK9x;N1sbU8K12b0boaro# zD3W#@{}?%eEu|~01&epcj^l3w=*RP4!F-SB$ZfHBMEcjABS@{K zD?+wJD0Q0C-|ZL~&pfK@gupSLBWNy2ut72ZsF-IJ)2*0)P|RPUxm?~{ZrWTfc`g?> zmy1&R>>6k%T5B{Eq$iZ}&J=4#QeKr<6AMKX+>eVjER+DSt-$qR9@Fh$|4sr>u4jeZ zZF0>VDU8v@YiD2pQ9qykuFNMNgn>Ykn8Z z2Otz#J1ab|)*6}7l9vTwUIk33YOS$(%+0r)XVYJL13AAFUpj=+e*s0l0g608NDSMR z7zD9c8))Za`@2!S(v7N1KszdPt#0-)-VpE&bFFIj(bvq-AA-a~`y`n?G=x{n(L0lU zvhmOmNtPD@U&1V!1%?AmPpev948?sw7YVN^t@p_47@>*eG;cIUlw#dA1Ip}2y zNUWJm9bP7(^)PsrUXWlW;-TVMvmf$5Vq%T)m_-_8CZW1huCn_HD=i47Hh8u3lIOc{ zyI&2EV?*tJ4SZEY?0%i%^9E?oS4|WTQyF^jSVi0Ypfh@I8euL3zJ@TnKMcONz#YyR z?EazPxM)0Z)dXXNOD4gmt6D_se-WR~8(}VxKNUy_fKp8C^a&2O5vJ=QUOd;^6 zk8fo=O+rS?!Mfyw9#egEeEraP(g!Oob6d@D3Wc|^pP6Q%dPqIQr>kTRUNY4OO!yZD z92V*pP&O0{Jd8y7v#o&QSO8 zD9_OV{&T2%bd=}!0TP-bX+Ulob;!~#_PPnLFyP*yoGRnf4p39PrYJWRk9!Q9F<|tX zc-s4@+ZyGm47dweoE?hIQTT;WcT@}7T0FlpehKF$dcCqNocqm1+J^?*|u;vO~Bv-7qm zA`mPz_(A>A5d3~GAF9cEp2;C(u5*SXcvp0j=K@DPwM zZU!8WX(w}^Ai6*hJtllMiB?cW;{4F3>z%DBCv&2Zi>{pR%y3z^5wMMhbb{k=}##eWrdPvO2;HSiH@BB+FT z$c?kmG7&Eb$i1tCzn6WnCMt+_!;gzJ&P-^-RN0!%D$*Ad1MHRIo@ok_XjK^mNZ#Gj z@cI2k@FA6VG?9Kb^k7>UPp+!kKPrB+0Ys0(RTVv?ta%Rf0m*NNd#?5b+u8@+W+QIW z5C`HD8e5P%R*!SEP#xW7J)WX%L}s@^k5jabEmiJNJszzMhKnR@3stmG8PbS0xubPh zt4(jgU#Sm#W;*zHsKcK_N7l*)OiC8lU|HS94vUv%T*(mr9njsSw>UE)-&V6i-;gFVeP>j>QV$dbpNs;ably`_PsMtM^f--wH+8D#I^g3p zejc=b4t?p*vk?@~R3+yBvGPXtdy&dJ>Hbom(}RD_WCIs4m}R5lDZ&u6xVIs3!{aH> ze&o#j*p%^UM*H@AQ2&;Rb?9>1V*A&^{=p8L6id>Y|tFii-)jOWh;my|CT zRdJnUQ+;H74Wzsja*rCG*uJdtfyr+|{R4X-MgB`$!alU16m0`gPxa zY=RDtol}oZ{5U0YGDi|8z)&0U(fH>SH>8!trl?{*}p*# zrW&eLrwZD;1jnj^wJ@fQy%>imd|n0K_)UgmW#h#-{u@bw(=P4NkvK=~syiBoGu8OC z>gaI1T%8cG82S;vaQ~ggFRR>I1Ab8@!35(8$OEOa?r%hh8|OCAo<^p6#^ux=K9+Qa zT286|bcKPG<*sc}l$ob`C6H9C$>aVWG}|=f9&7TvNvva$JI&F@%?sqr?L!t{eOm2ti?9W<(n ze@M`)H-(@FK&glFd!-wk{h;ZK=^(6&z!Ktvh|?j16-)(sX9z19(4%B7uK%BmY_Kr+ zul^}hcK0I4a?rInasstqM=@1sHKI%D`39QGL+OZdsh%@3A$hP`sag@TElQ=!L!n6B z67jPb_0T+|L9BV?ld){rB1(-|VJtUNqgz3#kmhn~#dxiLEyW;B-t^6hA?R^pB|0gM zfBQXY00-1i{4lfM4}}euv(%PYGUafq{!3FsWY^V$vdOIt!y?780pph@E>gXZG;BIp+?Z0NSEQD!z{eE9Cy*gEhcv`|y$UU3JZIpW^jZaWG zmp*FpWYa`n{yah=UcaYY;YZ^=Ni->RDn9hsLnxyiR2m9(_+XTBQ_%o2&MQTdr}Oj0 zVkZ4-cLHkkKSY=aRt+xJO=ieRW6XiUpwu6+P??R7 z1iWg{3w{cD6ENikTLxO`Xen4Jp^-PM1V2NS=_Jo=3V(}iP~)F~RogOAlDaOG;BpeD zCz&Gp54DTEVRC;q%3<1>{EiymzUfkfXrSf)FyO|cJoqMlClG9A82mFNC*FYW5yoNs zf4LWGaRG8K48b|b{fHK1;C>_oPe$%VTATuAh&ORSRJ_Bjg*q!MbfEiqN_Mk`61-YY zs4DZ)87(C?@f5K5YgAh1g~d6dSxj&Zb5EhYYWD*$h%Gr91L7>TK|98yQt^~wKQv|k zfxvhPB?vGaYr@QY{5IH^faA*dQi&)5?py^|0JIqhpOcTqc-L9VD_G0ZTVQx4&1a82 zn;6Vu=9riWizvq{5}R1$yY;$Xvjo;1ozWGEaw3;_G(KoAk)t;!mWgc%pBY-@Xf9EX zeme2m%76aJ(a$8p{6s|}pdL5uC#e67bZupj{F8}ITIBOa?D;Xup0h2s>tau3I8X_Q z7ZYyZ*mFZXb;GL#_w5^E+l|sI@58jX?>e~rKMs7qyR=DzyxRU42wfi#t}wz}aGOC{ z%x=5kjU>?+XeA<1g6U(3!C!jiy}O}ag$)6;*z-!I;SNWDNYL(&?Z++&SnT`XkkUT| zF?h)=_}LcacR|^JK#4sN>D;|MbHmH_Gj%WheSF6~LH2Z=m98fQZb;V+)D7uh$W_c; z`M9!FUpWlYQl%ss+>jh%f;9Askb{nED@(65fuvn(_sYk8gb59ZyjBCNwfC~}&-Q;7 zJBhayGGjwe*5wBE|5>eI9`TxR_1W9nI z`xEi=en!X~kkT+-gCU->vB#CV5$#eIjVef-fM z6C!zbFH==PrtXEoHWWqLpqbqL*T>8m^Zb~kgkL56XM#iCpYTn>pT-s?E=!~-jf&E- zG_9psn$@y2#cEY5Ev1D&R>g!UKdnj)7WlhM@1Ja8&_kP`!%jzq=vT-Gzh%@iDoP!t zCO!OsPa(|uBG5vPeU=Eln)-<5*zLr(^(~ws`*eji|7|c;-fuF_zbL^XEwsxT$=P~r zY|`-qNzTuj;-RT|&7We8b6DdtT8_V)Xv6bRX+g*Fz?!kLqEK4yJZ+i|ihoge4iKZSa4~ zq{p2&-gVX^_TU{ofaLKJBt7VcN!W-0$s2NCd|8jt+(d{}sA3G2Ou)*B#V{kgqe{*6 zGQG}^QWnPn8;+r{vSg^B)7xu{RnoEg@xlIxIrhPLBKeR#Z!f}c_b&5(Cmql^>3ZE) zzJt0t`Zb;7F>H($)nEt1*OnX4bGWELN-h(;~^P0|j;&t6`!w={I zrVj;7faw9I-w@uY6SR$bLEEG&)i>$WV7XV&|5M4i7m)X_y~F>tw>j)yTK{Ah{*05 zys^iErq}^N#Cr2(EDqXr!a0UnN>zBNV-0c zKuvk!-cZ=|=G8WZo4rhvAYki7P)PIl!q5S>&gqK8j!whC67IgyC!~D_P#tIia48y( zxY)mSCIYtZ{AgpI*r96?VN2KD&3e0C>b;~L9oX!(PZBRSKLy(z!a4eoASpX|ZVc?; z`2u$EG(XAQXnvX@UDF)sX(ariEK0mblD4zaRB+4FuRoTHb#ifVJBDA`Go|9z!89(} z5aq*lm-tASTO=E))b?E1NF@pH%YI2Tjihv+a;hweOA$@c#QtTL#9zaQ_=h?|r~&JX?6~^K+jw zpAdJd5-m3-<&*zH;yAMHZ*HvCdxLPHCpMKRFa_;k#PsA;hIIiyf zouBI4{XvPO3`k@&NW`ngBV_IxiBJXQU}rFDE;JYk3%meK*$XCoq{wsUC;dC3p8tgN zdQ*MQU2h_NJ2z%-Em(HE3e%pN&PZiHjMMMzE-c*Jck6YskEpJ_0Ct6Ce?*2Ve7mwu zZIlnTyHKhMHQ8jQa#{^3R^3>c0r@i*#Tv3_O}ZfYGQgBfhHjJ1A+37AuRuQwfgNY6YAY@9;%)Il~T~ zhQ2B&IvMDd>RamC$zCk?a}O#kvMKQoK6u6Fyx{bvM4vCL{^~DoFT#(2*KbT{DC|>{D!cOQBag&Ip#>d`O1x~7SA7%J=dL& z`0sI<>@+szcY3qWReb3Pb6!X}$2Lsr7*)sqBh_K*Ow}~Rc8qFckLFV_SNL8&nKAqT zOhR;A$0!>amuec8Km#;tcQZmeFM&Zq#Fs+sFXal)%CY>gT=`+diAGJX^I_!t;bCXs z;k~yZEs#jaImUFpuvR0(_Qtw)=et39M9Z+}5z3M?8fwy&b61#44vnLjhGO}sRM+kf zhf+bxI5Y#{R1LB0kEEQ@Q3MbP0L3zlsxiiZBbGo%f+G$b@stG96Uw%jM_Aa_jen+( z*E|~B5R)pWPS%@jWU~xb8!9v|^EGp6{F%L}vI*%^1FU@#jKZ!VUus?S$f>E0#Mr6E zVShGd`hgnB5GC9&GP^YiafX0#+a#X7TApzGTDg!5%k!`wKm!v%waJKEc(+04Li<-S zr^6~H|8&p;TIilRd@49#m4Gzf1Q1;Fg#|3KYDU_AHG=kBY0Z^|LVGSuK5#nO=rQps zIXXVxo(nw#0n{ZEfSBwYs0;Xs^LRGw4278?Eh)8l@P> zrz*+eBVGUHyH?&ZeXsJr?#@&CNX}Oh9HfG-2r+_89y1IqbWKF3gt$Z zq&iJwsMK0b0TiY&R2hhIG?nm~WoAXFW$Bg>Je^VkpfjMd?EyM02x_xJ5AlaABe*Dw zfnQ7Vi{w=v6|ZbuQi4#aZR{9oEJdOs;?34w<)#RIYA#9WGjcAW4|G7GkLAatW~FMW z%8~O^Mfhg@P)RR2gNvypuz^3dUPr<9NC$$PAE}2(Yz<7Rn5&~Y!b>e$?kAQ|t{l|J z@*rOgI!+V#AXPMJD996RpaLgTv!eB|4u1rtW@Q>Eeslw^1jjcKd^J=f#iq2UIsvDs zBOEw~CYc{hosmg z=1Nzp(@Lct)Kjo~OA5+_NLRGVu({X$Sq9)~2wu0Bkrykng887aR65^NojZmaNAWim zUWgph+mC7*5sM3vmWdW7IMBP5}p+d?^yR(3hQCzKbtqtv0(~qb3n4b zwfvAdWn$-x4K$G$sU#!yQUl}tmf(Mi1m8^lrVW2BmnPq={4~AG`!Rt_0MF+y+VEfH zQu-zl+UDaTnBFGh`#Sg*@Xa=S6nxJT*;X7-IPw05cy9;qS$wDszYIjrR&EEbpHmW; zc{hRh8QJ~k46zkwqXO|Ho(h|r8&76($cci(iUi8YNbhq#9;-3?}06$!dGb( z+6G`c%1rxy&*m^D44(w4#7GB(W5c;cyy`Y_mJ zcSbyoi(vQ1neD8WI7=4JT=+;y;Z)eG_ukG+eGhUG4{~E43&mfR-V!)aMg&yEf6b7{(T(vBjYAG1T}N)%Y0o_!!m} z6FNS|Xp0H6#e~~phS=gFY;lp}V{Ep#`L^T*w(OE^F$=fFJ+du%(YEZx+hR($#Vy&E zymVW3+3KR7*kT^F#VuQ%uw0n5LYP#(V#dmC$*XP2YiyGrw{Nn6ZQ zwm4*qfnHxHo&ueYR>3-I`qgun_b{d$i*q^cFqx)_n)=bxys@yNO!lqPepsJTQ539r zkDdk#%y8tV+Kb?@(r7>geb}rVZJ@nRHlU8K9At!9TJMLjo6R(e=FyrY99HRIjKD_|8k~<%0PJ58Z0@{wXLT+dprApkPeR`6VCSZS&W#@E+(_R> z`4y^CKW>uK_+g>1GnQSncyAx*q|&hu3sb&L`PLaIE(Vo(`7+JH4+>>CnBkW|DQX-x zwz+p2r+PO!Sr6Kf-V+yVeYMsh%E_ilx|R}m8sbBnJ`I8G zSX^Y&9GzF+w820eY*U@VJpq|AT6SJ^gw++(@nsn;u!|mc#nr<8L$VvuVIAqP7Qxp3 zTI;Y{YjlZw+k;?G4BjL?1zHEhLvpCU>|Mhh|fThzUMkAR$yug}6ORhmclDO$nVa^H zk$ZhsUAtt1jpeu=M#FGmpn}1_m!1D`o&i0&v}AtDKSrFX)K*LAqv~^ZlyY&zdrQhB zI0a$PhOFl>LU$t~CNuH_8?(EzvGS!nE9pqs3F50;gs1s0e(6^7?z<=AE}m^p9W?0Ksd zNJ7qvoPy$qCY#~kW(6`S=OF?~ClDF_X$4hIRc^t&;(`Yg%;u(C^7~Wnr|=`T?K8H| z2tuypkl)`Flh{x$$~}0;^|zdbxqr%eD`#I$T5eiyE5OfM?uzx_vn@`wv*#_URA=sa zOR6I-wQe@O{CyZ6d~ZpuW4kQG+C!{9#o9-#0n7V)2M#l&z6+Sg>Mh>HJD_F?0kqHJ z4Zj1*I1i8>%duuls+@^(z@T%0Fxcu$bdIw)0%mqkRT-g3GdC^zEd_n4asmuud%QE; z)1iiOsoqR7tm@&$dM5@gBY_~wseLTeJJR``JC^u`I6oo-upV9qim%qiG*rXtJf+|{ ztW4@I7UJB+qMU)l68qloygVP~sI7|@+mt!sQg;>!9$^cv%44RZr?kSme3^F+OiN$+ zi}y&U%lX~>jQ06Td`p}k@v1AgyeWhPj2k<8mRz~w-Pu{!kE0@xejLr=C0D-k{7hb= zaFbLV;i5guk;urP@;=FZY!$d!MYJeqw6OLpv`XTaSFsDCa!dpB=^j zuzj^EUU&7t7kQj2@8B1CZ#qvnzk@;jIr7JR6nWysjP_%CPj}bu?k?v!+XDA#)O}0v z!Nw5btJObTrm zZs4rbdD{71X?G{n3XqKU7i-SB)xhKK?pw~YpkBl#inAH~7bIe^(D;2Mo(78=pG4x# zVEafgRQL!I1I;s;8~LzUmcJW5urSG{pNGQ`u^^m`^WB+W=AFBI?s7(ZL!A4?Kpu0U zQXBZ70KOIe5f|o&ed$-#f7TrIk-Pf_WT3hu)-yfeJSX^QE>!SoE2tvj3MHI0N#e)pT~hva@uJWfmT(hJ zDZ@$SvzR_bOH%sP1+c`AneJO>F9(0yFWX)O5Off?%5*&?FCNu(br1OIPL+vYE`{Fp zPwFtFL-7ca(?@$@d(SseEI#=a^h2;O{!zq*z+n%2o7(PC!!!`79s3W?bQ)6_*fm~j z4JQZ1uXIbtvu1i35`diglg#F{w6x&4e6#rhu&0?}H~s8_IcD2}*(D2$A0`dmz`u;N zY3b&fkCd287H3V)e7Jbg15?a1^9yE~)6FGIO0v>ZNpM@i0Q#LTxs70i-?YdE2mhhy zPT`HYO%Hl2DYKPnWZ`4LF3+T z+U{C^s5*U=gpacdbFergR2@FbLPy&Mz7?i-E z1O_EAD1ku<3`$^70)rA5l)#__1|={kfk6ojN?=d|gAy2&z@P*MB`_#~K?w{>U{C@e zfxcq`ddosrm|ouP47etJ_j^97GlE>SZ+V2j*~*r0rP^l8W^-c?yxCO8uH3q#s^{1n z6x>m8>kU3%$SvQBcz6atfJ!``G;{PHD{D=U zKXd#i&){x#bIvmjAswR{(Y%gP3Weq?Tluf?61KT-TH}hb9izy%y#KorzK!VS&X&ae z0ol^WM+wGB)4~PgG-6Z|`GTr&N$=&!tuHAXz~PJVf-) zVO*`|)$crlpH`RgaM9~#nkp!8m{J%~Ql-^j+-jNZf|R-{>;JJ8F3IUocXz`5IZcaW znbR39w+=gUb1ZMVQQ14JD2Zq3mRHkHif7YXUU`~!F_rWbTD*Do;)N@^leL=KqlgMf z{Kft=OKqASrp-#?k3ZfzWfs&m(GMNEakHJ;dX@D8VIG;?uBmF}3hH7G~6`NgfCZE#H~DIm0Wc}aSU zdjpgTcP$uYm25NpjAwnoR>CHpiog5csY!Ge(>_gEqC=AiSMvD5tF9%F8=BZpVDcCtf^<&*ARGFY}JZ37rh53!KSQKS2fF=X;$-ZysFNRd<>>d8L>5pXF#yj<8?lR?S- z&vC&;{cZ3@2HegCPhb!eZb%2r@DcNO9FM15TIHoWc(BfDJ(d-GnFwAedIwHlX0*KN znsImuIdVA{Ugm`h4DMcDFa}xD;6iNk;Zhuf4!cqh-*d5n1_6{thoyn*4Wxm)T;b|k z{GAN1uHx%5JiCgoDfY`y9{(n1oq#)G;f{no?>4ONy1J*d1UueMzgosf5OpKUY0lc( zF{&bJPqT99vtb5Eh5aUvYRK&vB^6}-r1;_43l$@E?kv>r2CI3)M$Wu;BfnvFs4n3? zjbT=Ci5ZSP4?i-`O#YGY>NT6!ty*&*or3ZWgzUNvm0bDy z_3#vQ!rbBk*P7K6%!~TTPEMUV{fP;1u9Oh21iFBBPrx;+34q_wPY0a+gzta|X*kwu zE(T@``cJWv@BhG4s19hAudi5BzWS+uhnG;DlEQ+GPdrh+VRfbX3BHmuuUun(Y~AKH z8_XaR?x$;j&gPA)$~hvURY64a`gI%Dm?4DuiSnoVX+WsTHJi#S%0YPMl~0)~H1QG~ntl7X# zFt6k}@Lg-(RI!Et`e_Vsy>{bzIDQ+9ej_lrajn8XVd{xB9ApRZT?y>n8+YZVHLKRG zT?c`b>@k;DtTC@&vlgWA6bN{2IlrDWZ&}Cv)I4k90wu)@7M6fufCNN738Y67uwl)U z+}%_V5^I5JBD)|Je^|YyAOr8wZ$r)2pr+{lRfoH(kXR|qzn3K~Lb2>4> zO3W!~Y5gh4P*A2Qp3@Y>2krzSVW$A9dGZ6qCu2IXPn|~mCr_RVAfRD`SW4D#W?Om1 zI_{~vOq#ikL7A>!!$H3F$M&#!qWNKxuW*VPtg}fGHJgjUTD%(St2w!!+N$*%SN%sY z*-t?Bt=qJI-5MxD0}{AH{JzYXoC%>b$XytjQ-Id2ep<82xpMQ$bs*6HCA^tP(oBe$ zrx9a15GjE#NnQ!Janrv?M7fqfsdVX_6mV+NPe z%QoDLN)L8a-$UXr$oqjMnUBJI(eVq__%^&DbFR8i%bu(D{=s4c_%?LBvl@S)z|Sb~ zmn^gRp>Qhw_|0nEp}=nuxaV2fQUV?&=s5Kp9DXN+W+)zOWXnXj5-9O}^>dyjvLyxV z#`D$Ho`+;hT1Av4t1=v$(8I@d&*5j$!86sKsWQ9~svg6wZMkMc%~YzX91CM!wH;R z1{w}H`_EU4;Ozu&xK4M*n7)ncd>-rXdYI4j&RHS{fb6#;ID{Z?`Ey>R2_74I*d zY6&jHCzs(XuU6QZ$(e9#Kt?*ed678sLe)cs2FLHYAQG~kqS)%$8=;s^khU{ zv}i$5!8(apq*Nie99yYSC=mrK5K2HweL|y=QoE2DO@^w7!V#&o$Ovd@Ko@E>PzFdE zia@0Dq9{ZvE{aA_&*2gVQh!kl0yJO*tOi8tGKxjhrUJ*LMx&8%5rC$@moTrXsMrW~ HGU5LKe5Bwj literal 0 HcmV?d00001 diff --git a/src/avrsample/ispd.exe b/src/avrsample/ispd.exe new file mode 100644 index 0000000000000000000000000000000000000000..4963ef02fae4f79c13be35bb76c9455489555694 GIT binary patch literal 69514 zcmcG$3tSUd+Bke>CYgi~Lb!-ZHAID|3`{8~S}uwg;_Z5V=uPDJSB6=@e;(WvaDktDe}TKWz`eD=on7Fr zE^xnA;67B~t}Ad~EO0+i=w=I_(^Gm0l%mq$t^bc789;>48F`i;eguRUMkGfh-Lx?AOuBBVF+Z_uog`=qi1=|Qbr&r3d55s&Q!K1{*tJE7F9ZMJrKbu z3{5m{Zxj6~LjFct8;2^+oY;pvGz){qQ77z(QULz@gN08K>t_!l*17=N#znBzf5Gj1 z8#2S|Fua^Xs;;0wI2jDhv7i$c)TC&grdywUrKREw)S?2heAHfeq*kKf0WO)UXPTMD z%J!;XAim9YnQ9OoQ&aSlh&p4fSJu5bL&#HCv{25BT6F5A1Y&}$GV zQ=?OVmm*}{Lr&-?sg1LBb*~MkbOAKWzx+}{@Odt(vU9!xA#>0{gboIygDkQ-$?mUX zoPq)K>+eM69Ap=w+R_kaiqtINONcg$*I6c z00adPbutVVm=0VV8%%$K*y=NQ^rTv;x_Vw?JJ>VmHD~L*p4N;%f!BF-`pk@mLO=*$xjjlB|3Q~K_HQ+Vo%GMw#rVoCrG168GuR9oN($&!Z9Tt7%BWI4)njJ ziQzTg1U}W5z{8BLZ0OM#hz+E{vRWpyHfDAAIW;lf6h|f9m@ojd(r=!`Ypx{l3$7-( z-2FAYMgae{QU7i54~+T;!9Ohd1KEOkO)o_CB?yU#*Pujx0huUFN2jAcOAyWn?FG~- zhdI3JVnVetv09bbM5_~F$==9zLVax6P@l(SBi1IVKAIRsiUa0*^$}G4PgMP+!F%j) z#3_Ajf6ek^q3G1^nf)~>juW})*rVw0`cvIAYm%?RKjrKmXrfI98FG4c8l560#c^y2 zI)zaG;bRJPG8Uc6h2A(e1)WSrryd3`pZW>ZbTtzbl)4uMrS1b~2Uh{E5>-D#*fb`h zLbsT3LiYfMQ%@m{MiJ9r(*#pSkAx}cXj1F6y{D^7knjo;K0*RZ2$M;nkgQ^%3dxQX zKb|^~ukN|6DPHR{k#BL3Q46rylgx5N5 zymoQuwGPK?9hYCb*zwv|3t+WWok4E^wyCw0IJv85BYz!;ZthpRea9kEx36I9vkvp* zTH;_L!ZjkLHMZar^jewW6O?t?c{H?Do1rkRFMZmoc?ue9V37~k2WbQKL0WT?z$25| z;wQ`s3?mbF9zRYccU_OQ*e@SL7I>$f<`h1sWkkivx_iZ~7%EH5!!Hu!0?NEXScZz# z!d6tQmpWCPFQg(kOfVczA-x0*t2q3G z*8e`#+cKmsW}sfB2FnOlI&Bb=qM<|xaEf(x~bC^?m7B-o^|jHpY=K_^fkf;pDG z^!VEKt!G1t$V{C;bueR`M}4hY+k$6c%9v1{DysGVU`T+-oZ@nGIA^{I-t7)2uZL7F+UBZEIAPc?xc{HsySI zr|TLQ3hDgsCD_)emF8QO4Tb^wk1{O>vyeqfr|@xTi%=fYa^k_6!UmYpqx+BfK8bX~ z%m@d1_$)Gb@HS@QWPUbF&Q`*9$?~voI;EWzK=rYHKSv3Xw;%ohLTW6uSK_1N0oAK}1V!1hjyxm9qzrAosBe!Y69L z1LVnX4jV(L6#g&)Htqux*hcysLOS8&5g~abMkn}3G%+v_g~MS$Mt;py?=@6cz{a}| zNJA5Cm!6e|?cjgTuwT|hzhIzHIXx#Xh-Twb9OZN>_>v^weDEd5#ndH72+pBRh0w;z zgcL_Ef8Barl?%VM>sk@g>*98pv0kF8Fd+1nPc&Rcf6GHuJpV&<^L}9_WXO{e!eni z)z4PFw(8#4yF&;5qpXsZcc=gV;eYFYsZXH1!K%g)#L4V&&!zq(;xNU7j_k{AtiB2U&4Or&Cn6d*7<*_Qp89m>&nuRgO+>2s(9O<{^k40a}9jKeK|R=zXw7 z!^@87N{4~hA*47Kj9#pHv8H<%_#=m*N{_1FK!&R6sQOLhJTRQnRoP{4clEe>SU$3R zB5R9e`3+=wKFQiPkRowTBaHZ+>uGy?vLEL^P%w;P4YrAfif!b;X_6yG6q}to8fpZz zj#zQ>z)aRIGYW_N)<#+PZPgVnymk&$;p9g%h3EV}2aX+3Ktqlk2KZrT#l?!IbPqSj zl;Y*jlno)Ri8=-h!q@&7PS4c4zQ%tk11bLgw<XEjxqoQ7V*Nf+zKU8#3XK)NW z>ml8Z2q_)E>m_sqMn?cTf(si%chVQi`}*G!KlM7jeDl3!Mlr6@GX4EE<0W-C-w8#W z95~i2r%MR@IWrzH(HXxkCFkg!>vg%nB^FPSh`I%FY9VT=NmGz3grH(Ytpbz(p_rJ> zP7pw<)QMt9WjipJh-ofXRml)+jW^vdB2N^F_*5C<7tkoH(qSEv7tf@csrt%xoD%GZ z(Y2*QX1el{4ZuJeqAM@j09eekMS+CcP}z>(STytdvp}eElQt+MAgbXU7?y9R>LKk; zLIAIB6t8X^uMY60S{q1^N9aVhN}0&Cr+1oSSt3fA2=avW8W||grh`7Ibc~gbgH9}u zJO^w6bl9OKrp`XqAh(fY5tZ^PVX!J8j`N^$->{Wia)O%kh<3C@)gTmSH(-~ z*3+)5`=g^2LY79cc~kL6;#WBvSFcW6Rk(O*+WIBya?+Np$yuMaI(NeZ_>qhsDG>M2 z1Nf1QA5w5m8X`zaCXZCie=sdQBXa?)+n~S?sRBQQ*L%XmJI}k(xgVx0u> zXw)(({9xFFVa4zlfPFU%Q-i?o?%W7)dm{pWf%vfye%}p=Ly@DunUVM}F>=TF-~7n= zkxL^NMCQWZj>wgfp-9qUj1`GKqdF;6hm_+Hqn=rlaXAQ$m5R{+kW>5PoVh>BNkYzh ze@Cg~6zE6(k2w(nYSV5{eO9I#Fq40usW5{KybC^v+JT2I15S^;^vA~3#Dq=K>nwpy0TzG)U z*+lCYgzUO#CfV=m;mg0#R;wBQA1Aclclow=?FJ56M)ajg+*zk2~Gu015OJr zoDo{({G1cjTD*#tSfBHn*6Jh8!FZPeNrXCy5Ra-O8UEQCZFLm9KGarEV*F8RCJK5a z2WA-?=n~dmzHj}W7w+IOtpysdV#f1TrgXuhi*sJ ztAPoxG67}eG%Pd=CGTD{W4WHSHZPynDeR{c(g#2XbZS!E z$?36FuU(z|U5{*$xBrl0TTvlfH978eP-AJ4@T8v`WPO@RajYN8a6;|0aUkY6p)Ak= z3KViz^a;!Soca!sc+=_4UB7l+Uj9Zp)o#ea3a(TJ)ImuMdwRi2MmR*O&YM-NKWY-g z+M|*gVHF{KL<+ByimlstH;S>!O87yF#1!;_Rh$y9!&pTPaVG`qO z1eIbkvo5|Zd4L&ahBw*U0OkGvFHmAEP@go6%DX;)W6!J~58pTF-rALHCgR3j|VgDvUp`VVMsI`}e}fs8$aWd1HbB&yeKrgctmq z3f+Ih3osK~BiCiV-Tzm5(yU1_lYR!z=t()?%aMG-Td-_+9m^ai2r(G< z7!NZlzH>>fUYa`g7QkJA)(Oe}O}@r7Psz7pbk#2yUiTEkYn}w)XPA_MQy_Dbv=C1S zvr&vQ7jzWb0_WOeNY6gYW;13=5dDSDwUUN>;A1_6yC4k1n#|;`2i<8B105olM!W19 zF-F?V3GACJ({_2_s=c$VC)rQIFw;2<3$z7R5op}a!AHqd`+}9Q{>6w?J8Wo}yrnpF zz-GOiD~rKf8(s@+)l=wL7}6=;(Ia!zJ2G^#L<CYt4;2-Ps*`_X_|NNt zw5{4xZ!rCboUnWSf~kHA$S70IG1Uv0>iJ9)oeVTCwTb2kf~d}7suweuNY7zXt4oOL zR3`a~>vDA(LrbFqTcY9>X-mvts$O80S3k*AmoQZ?f$tfndOO2bl`vT@fvv6t@AiQA zImU_R&qGU=En1(mCV$EDRcLwkx+N%Y*&_5n(gUlq3y~N2NdEIBM^p|@nUTrKGW6!Y z6s)P2WgYu-e4N+i702gDR`#EifirW+VIK6wM_=*q7&3hTF_tZl)2=+sfvv0l!hXl275JSI*6fwz;b3l*tX`vEb zdDuRva*@$};WB@wjzmHo`dvL2a)Lx`(C@S21Ph3!!u_bY ze)!5GYRlC}V)sB_=&$M(m{Oms%R(TY+I16=rDxB8lj0~#3#Cywv9cV+^(?kG0rrgi zvYRN*^)1W)?sDw5={;$u&EKr8(;x<_YH)GqD)<)2ul5cjauHS?M`H4TL9A76i|jP0savJEXF3#8N&7KhokhJ24|$Cvme2 zi6%4)0v%KKkav8Sh+Kr;?3i+n+)QkOL%=6M_y$(@19TMq{owW~M^yt?`1UgAZ>R8z z>K#+~Wn}f227Z~WdKdWV>fcOpI_D;`ip^wxK1m@oIAw5(aw>L{rcRlPnf^Hh>=*Jf zC(=91#M&6=SQxxzB1Br9xlXH?E7cQMGkI$2)U>IKr>>c5NRm4ZO1X33g34*o%bnA~ zXP7<}0{bAcO}vT0pO{)Y6}$4O6;g4l2AqUhUe<(*y9s4184cs&ZbIZLYg4XsiS;HF zn6hf_>LsgEZYgfvN=Zpsx^&gbxyGf-QkJJIU%vdl<;x$0$V=12Y5miv=^@i$jU2(s zQP`V6D#oW-67NSi3*7qx>k1UKn!6RW09zpba(zk{TdsQ#tzzweerqbbPj>`ucCMF> zrl{g5zCAMnPS;LE0Pp$d7sir7w+W1gjy?*?=GJN64_9SQL#3JzjhQj1Q~^Ug4yuTe zxQ&9%&f3)DwR4Ww%8%FHK3=OhUQ1&M6YEaPuSCINOgTLt3+yts3XXM>5y-Y1N5xl3 zmJPPCZk)$ zskOvj&>I80mH?gdPsqj10FNX|Q^KY>up0k~NKOtU;h(4xAo1DiX(W93y}oB;Ce!JXW++;uvfMU75gm?oG(Z?mZYLmwN3{^@{J5BDF0RW=-)t=y)v3YQ9h?~;M;@3{Fh#Q41e3B& zfM>Eehc^z#%~xb<72NDhEycxVPEv3&nUg3k`W-}=L*nM6%p}AGWzI*OtX3}4wZS4; zOCOw%Bt3uE*SI9>Y4RLeynM~twMvlVlpu7I=(&x$iq^`n{zagZtxV%mzg`Ru#H4(8 z@)PDmeen4m_$=7ki9F{$Z67AWI%{W6s8Gt;^5*9~{qSGjY&n~>Pi@TRn}g4ozxA?j zwljzM)*QR+aQ86(am-dH0yWC|-0USNW9f=@3-pV3aE}%1A2&Vr*t$oadi3dE>T}G$ z{K;b`{rblqdvu{b+hls$q<@6dKl8*d6MxE?(sG{GFI}@2IQ&S`YFlN6?7u2lNB! zLp}m+JnTn)hrieFg$g+q_Ac};^e=RT_J(>x{h z=dxt!wMrQ|-XvVd(H~$6{BQ%oIsACDIguZtf^Z0;)Sn`{c%DAh-#uk!48#4-$0Foa`UO`?SCyRhI;)usD-2`hQT}*MbMkvPOB5 zk^dBvy=-0KW?ZGWdXu|wZQ3sQ&Y1@+JqjlndFa7n1gPF(j$G+n8SL0Wx!f-}*RG?F z5lD5#94dT0&7_8%RJbu!v8k}7Rt``1A3J|fJJ9dx24vHmMz*L%I0`+3_%p)MX{Kq^ z(3%3sISDd#e=q!FY9&qr5FSANtOKoZeNBDsPi;W{R0ndCy|9hZ!k(+g5UhAX{_P^H zXkR4!Vw!2fitTc9FfQAK%Pwd!*yLhA_PM)m3J+a{eg}0@3uF&=Y@Z0Fr%p443&yEE z3a{|5tFT`0RQQ{Yf zGng|a=Rt1%Adl)5T!8vxrk8INtNGrX%8R_D)aC~(o1hhjbO@QBeh`$~=ARp+*H75= zR8=B3YyVO|sK_O)xB0#*(5m-ZZ;+K2(_tN&7mUWI3LM&>O|a>-GLd^=9GnGkY7oTl z$|i#ZuaS;~q0{8T5+t_P-U_IfLGi9k6q711RyOfXOylxugbd(7t|Gw$>}@$H=CO*s zn#Ov0MMZn%Meq(f^YX_u`u~gmep`_flwu%If)ZZFYhh)TVa!)7s8LyR{)f0ZBPi)9waKaQ2e%wKj zaHH(3OiFksBi@|lsi$y4FOlA7q7I9HIRcRzQ{Q|J?K28xX9>b;^paMikA#xDk7UFG zXo-KHQM8^V0k``xe@3i1(Nhoh8I=2ogv0$70dVFp04h66LP1`f-JR}-@jT?7OY56i|m2ioEFDGLLf3nd>MxUi}mco z5QTd|d^V#9P*_n$k@;s*CAaM}-t^RGAx;6n$a)Jh`~1ei6bJOT{0KnbwC*0HO!MJM zmnN5;wP0;(Hq<)IQxAq3Y5R=dSvvQi~(+bAR?j#x#((4IpoC z;ev6QX8B?FyFcXQK;MwIoU67H+P1r!FY-|%-dg>!2ryBqO_E-=-B;=&kj*$?GxiBD zM%#?NwagB(HgTWP%@+aqgyMhOdH(~KL8GCQ| z`5dnlqAk1KiRO5Za|$xYt}usLcMl_Tu<$Nvt;aJ-)cSM0JAy%Bm~z&ZgJ*-sX~ErH zj(B4)kiE3!C&Cd^G@S0-osh-Um*rdqBSYh$3_-ujGJlFnV4MdbTjsY^2_5hXxum!v zOPuPFgbG?%MAn6)*~Tk`aey%PLGAF`Pd`%}${4+b(MK4)f{ujxLV*ygz7wm2*j`)C z?b$hfvvYcZr{i<_((7TeK8u($5Xl<{_}y3dOVl7URGVbjE6Qv9hg_?4@98!?oFmVb)M3x2cl896o2bN6qB))h6{H z27mt{sSU8w(mQr(g!PDNA#!{~j@SK_um4bO?0lnW2BgoU!-3vW;NH1mR*iO= znK;a!SFJW9YNI$cq8 z*=zY`PatD?KM-+P##=Gv4g$}HL$IaZ$S|0LaMI=eL*kx{X=ara=phb?zslHRUU-xU z>dwCEWrcY zBY2+>63u&9n62H7m{wMyPLDTtMjfKB01wiIybJ7Wc2( z;1ppNoa-!zj}sav>+&dHK5kI#;I?f=F{V|F5856dCnnzo_UCc1K+S(YS@`=868Mx+ zaIo7pY42*t&m%Br+wzT0n4pF|;Fo+K9PupmXQY7!bc7QWW3Py*|wvLFytfArin+_ z2%Dmdzs;CyR!e*aifM^)FZm|Mo%0Q_u%nzM@Qq!Qgm7o%&R6{Bij62oiDL{05)MOEz~5PJ8DV1048`*9yF8Hpy@^yWbEX)!H(~n(Q}kUJUXq!D$1w!Nj+jqjb+};H zn{OQ^cBZThp!lzeR38|d0E*G7+&{rI`7T7OWF}x5rK(8ci@Uuw(1esger6)?3gqM) zg#JjAj;W`5@5&$ipB4FIYwr4r_7nA}ahYEwyrSA%AZ};`iHHz4w?3$=M`Cho`T}^( zYn=x#oT3twTIaDGYE3&ENYdh1nJvnR#Fs-h$r3t!8CNSR2mASv|#t~$7 zJ;+bFGW&&5#g}>WK!c2nu0jOX_^q<1<{-<}XWrIwpwCIIw%DY@-h@r0^KDHRT)bNM9=3Gm}|L?wsz41>v@l?!L}9d7jW#E+hH&s?(rk07U~}!it94pyRa{u#7vd zY&diYr?csenj@N0m{ch)TMrCR&P$yYpAU-n$3zTnqrdMMAW7v7g$Xr}VX z$_DYZya3JkYnZgj6*xK6|)B?|n{|Gs7a+-S_qVf&| z5G6orL3WJ=PKi&Jp&q3LP7Ntz_n=@^!+_&Lx-SCZ*NyTBzY6DO)#~TVI9h}!h8z-- zwf9ib9RC;uFiy><3p>L&d3m!JUjTqH0AnR_GOSv4W;h(9Km^|=1__(L!bxyP1=MLP zf=$y`^36h%#-!h9eX5rPl@e^tTkq@{71MDsvz?}xyh+5NOQM3dS)8S@FYi4eh15E?< zTvY?Snh~s@Y4j(ksu5nFV(>Gl;6LDl0`Nfr_@DrM(EkkoKmh)M0Q>_1_y_L5>wsqP zZ6BwuBwTJz{jQ;0VO#3Mx65w3t`#ee81^dmE%nE==r9C7BK#vF1~CGjwfiKFN!PwQ!Y1=LUPC3Te1UTD738x%z!u2CCy9rnMIgEh@7O>Va zDB&eTh9pIc{fy;nh3lHDeaunq*7IOh=V}i8Rbcy6M=f#wva{!YmtdL&P7f~J;F@W0 z<&)rK;OOp~Eu%5ro)*J}nJtF%Gh2R~<7wL9+6LfY#p;TYay%{haE|*S$Nm42W6yu& z*fXAEA>>%t(lZZglQdehs2|nJV4aA%#j%=6p?)Y!0XY>dJ&Pb$8n|R|_ZeLG)UFO8 zSGyr-8QpyqvP;z*iz2&k0FF?=5!wP)V1YHXBm~%jfWMgV0fq1#U^|6r$MX-&vD%!wY&2*zhQlf^#UC|N2 z6=J%-b?$B-zBl>X>8#a9OGj%S~Fhz+q0;3PDks5y8)}m=tYY- zWoyQ(rJyDp9xx7BII4B-<<^W#P~vc=%fIvW%(ZAw6Rcd`Zb*l=-?l7e}FFw zi;N$+Uq|k@5L{6f7|R$O1*Y?X8i0-b?l(YShFmXO{qoYuFV?Amr!-t-C};TRQr&D( zml^jCzttaJLb-qC9|gD~RW<;OE8fkl3j}aWE{_E;8VN}lAlbx*MRiNhD~x-VU#cG{ z1kP?Ja-iefp@h}%_rA9WfQOhF}px9nAo`n4 z(F=!!uwujbcG%KQ!7qBgebFSN+KX=ue(yZ8VtbSj{xLK?G$W{lPEf#8p5F9*F_p7u z2;XvrwScd+S^Y}DWun2}oFf(sO@7k@gmKUeRz-wx+;5s~?{hsq=*k;*<#}CsK2xOc zQ}Yb~u%8Yy4u=`NVMbr^7clpSoWjqMDKR6Co1L)`bm0cG9!v;LQ@}G(jIy+l!b)V) zWGn>Jjz!2M2N)v9GC~w=F5I-$q~zdg_>NiP@!<2@rLTt11$zz40KPoUw}G zHr-%6s9RIdsjCO#PteHIBiAD7wo7a;_^OBFt!}kV^V|%Z=8rS5{b6GQ%$$Mv6hB;F z1}pd)zM+PyUtY66n@s7dk<<9D(F-+MFLd|w&Ki7&Ip$apI{EAje1qp*&~$m@tvAV< z80XqNw#o}7v$$yCAt&67cllv20VdL}abWho9tmKuCNcGF$c17Z>@mRoHze#YCHWZG zSbib9TZu8+AGUCi~Y&bKO&r@g!#=vCx!Qf55Ud=2xVFv zJhI|M1seo@DGDsVrhyHZ7y&k7bK-!h4}#Dru&|`fc^79Z$vRt|!snD}5-#-4b_b=} z;JPVTojLjXWy0?WQykw`tH=86HE?iC4gFA?w5b0*Z;z6104uhRC19=z7IX0A+nvB^ zgGecvFy-lV{B^#W>E?$$m-eSuv|;O=b;4o)Cce*eaep$uTUKc#y*%t_*TBBbv3(jG zZJk9_TXy=tx0VKj>hTQLl)F!&x@;yF?(c}Ho_4-1{o}2ru}2QC0O>+o%N||=JYh4{ zfgwdD(+t{gh~t~_dBp{|4OEw%nEP%G>@XaS6Z#JselO=6_UFU#GCmn#2U7p7wqH-a z0-hGNJSmB9$FkyB$TE_|g&1sGN!Zn7Rv_sqD=mH;wQm=WqO47FQNJ=Hi3@@dX>F2; z;VTXM9s?gGDz^^x1VJM%z>&n_LH?VV7|`T`X0q7}8_MMobLX}^pFz6A{6@9g=3t$N<>>o()CwD-d? z%K+Z{^?2`R%69j`#-ystSyWS-bJ%?g)vd^>sWl#Ue~W69@Daq}WXECHJl$~UZ@dj0 z!Sy>F!C-(RXu-lP$XXIdaO6KYf{@XqSK&^waj-SLcap?uEZq71od z;+nDJq7do0Xr%N8J}z3scN!WMa8fbg_w)5&`VWHWfpOmBbCxhchJW2Ro>s5v8s_QD4&P&}O3*4uZnr>~> ziyD_utN?~70nmXtD_Gmz05u8?p`y)B*j3=kzL^9T%B)=jhRWYj4a?K(OG4OqO)|46 z-Bn5nQyQHCEd=Hzg{g$J{ED1aYLtaP0YVSNZ#Up&MXzJ4hR12p*^`@0K^0&~K*tDC zBlzkASOaPT763g@v+0___|pGcuUl)ar>#TEQVPCH0f_s667svqU_Y0i9#Z-}KY?*s zhgGKgY!j$qn8LP=!@SG#sl~R@OASGQ84`0Tm*pYCLJeCU@>>`T#6RTYCzPMFZIqRN zVcSTSpA!>O&O2*E17-73N(6GOtg=&lDOYG5HmNEc)k;*^ULZbOSO~WYD>^G1peCIO zyiS9HyUY`K4T*YWl^r5z1cLmg&H|jke*u>|4YrNGiu&?3GMh$&3T>f~J9uC>w)@cW zpG!E>Q`M*>T*5G?vIB=o`bAmua=c>AbV6zGK4BSV4DlW znhPg>)V7V*yl-Hs-@}zC+g6jdEdWpQ9gsEE}L;4hX#T>webQs@Fm!c8A^Vrh81 zCrc+lzkLe*c8g!F{g?~KiCnx>>fUKT>fRrNQO=YB{?p2f&a!VYM%dO3=?h>uCc3`m zzi@p^4IB84TEppG;W(Xpz-i#|J<;=A9DEKz0=!{h7Qn#$chG>_&wo+bghe+P9K5l@ z^ug1HhS}61-uBQc$p95>Z(yXP9shR@zp2-+Xy25;$hiPk*@%1`k_Lnim9U=iVSfVV@ILO$TP@bwm!modT5I#KG^nRl|hoC=up4bfk$=Ty!ypE_SxJLTktXkq)Y zm~Bq1%LVQQGL(V##nS+$7SsHi(~S8(zowDdF`?=VQ+=ALYG$e%8P=-Fipvs?Ax{H* z8fW9Wqq0^l=$nI}#%cqYl`n>FWUFZdTMl6`U)31ceXJH9sZsEVnq&YXr-OJUj#uIM za2y|LV9Nk8k_p?;CO|#N&02SyAg^y4fNvkUF1I<_zHDo6Yj;7xmJ@LX__UBP0SV#o z*(j_`t7^g%vH%QCH$*32X}eq;;rrxw&Cu{5zzH{#MN0XEf8R`e)z%&O=7klEjtET* zkOa=Wesoeu^dJJhGX?bfvC4LdAl$l}Ae`P34&)ik57ziCz?#CHQdjy0ZD~eeO2O#D z;6(=V%PQN&?}XA}V1XdM!ogp#sey)+FO^km;M@*qk;^P|*7hB*O~wQSVu1VZ?tEVc zGQ)7Z#5`WOcHt)V1+XIN4aJE%sSFP=x-b(|()3khs+ZmrQ>=BLC73UO&q;5HDeg~k zz=guWczkas^>#e}IkZqCZ18eH=}SpY!Osz|gQP26>sbKFUjQ}N3guod*pQx0a!Syk ziPr)E>p-{B$CgLkju$3)Ii)Q!2DZsTCtUow9bemrYmFm@oVi#D(kI*+;Ud9kTz2wy zJX~CiTb(^S@^owY zTT)x4?$_Q+Q$)Sg^4R~GoIq>o?V*J+Mb082blAkk6s4S%=oEJoE`m%Sx|@%NeNPaF zOsbe7z8P*zKoGL&gjpj(>4^9LT5|}Rh{>Qfl<_{DLR#i`YY*XSqtHGq%pCEiH)913 z) zS&QL5?jK))SorDxd2(_Vyk)1(-d8y%>y3||VcvfCY4-(FOCap?6Carfc1OPZe7{N=qjC-+nvC#ub5d(9%XI!>8lS2xXO|{a5hCG+YM$S^Rr|JiNs)I) zbq(>&d{YI64MYR~Lklwoi?*6*pgj-=7KSi6!IKIXYg3E|GV5Re@$;-Lu?U9Kj z+I}CW!>?Ip+P+Njif91)mFfI4C7-Vn;kJuboWL*Bq?`w;M=bV~YDIveUvUX3=K(8? z;Ilm<1z*wu?7R^yX_Q-8KGZs-FOFob3K`YG0z1Ik@@2STGH4h)fL4zxAomRNzafQ| zL9qH2CyYgdhVh9(ILA0TD9nW0K_FCa7QX!6L-xdF__!;r? z_-|)BrhBKS&i?uA@Y#!J`xO(ED&>XQ?%7|>erEP>XK$Y!6O_OvOW2&yGs`hui2XFSb-FBWC@#`) zWLDYSN9TSz@A>)O#FO{`?fzX!M;>@QSwH8#Ii+*f65EMM6E|ybMRXF+6Vt*^5)&tF z)7B8Gh%91&ST^}_;uASTZXl3)QfyMj@(m9^x&7Ja4!nKTXTPs?)%I6E0}Tc`(K~U= z>~t(VAvCw)XVVULhMvXofAX9gdG=NPtJwVf$c}R^&qUMv5Iz1Q9B>V54k3aRbQXeJ9qxSE-je)&%MMq`5RO%gY-ZvioZh5x4 zrh5pd8F(3U_BiMa9Xl0!f=&<)xVPT^0l{=Vzr+P9>mE|{*fy$cTa~tK+V+sl_7G_c zaq_E`U=hDZRW?L8_GlP~xZ@+GAfH%=EaKDr7Mg*thM-+Cm+0!`H^{)hTj}a{U2wH^ z4+cjDZy;3{Rh{pvr)z#n!iT@OWXlk+G~{ZPWk|-wS%!i*y{BseLOZ5dcB%;TTX6hu zep3wnfSBH<>MV1D#MeD2UXs#4i~~z^EJZ_K;W~xxQ3jutYBU9ER2+rnLlwW29_X;t zYcB|6nfQm4xazwnz%y%CC{>>cfv8OID?rh`t!S$ga?g!|p%9fHX$1y+4q>TJ{Kmjf zF~DbO7zfzEgQyV%ms7f|o&NU;+e0e2dI;C~WaXXjWA0bI2o8a|TXNF%{zK87aae=LA!2kK7UOZq^mLijqUwEO`WaOR z?s*s$IMCWLOX|mvvSAn*MJCv{li~#T<9_?6ZS~2kRRi_#0SR}$e^6|b;1tkF?a)au zQXuw`&W(96=L}GD1HT&H8|Z)GzT6qH#{kmQbdVc$K#!wO!c0tooG#A=Py6@Q3&`ri zW#bD&S-787<*xFU7p*t6V&C@Q9Lf>V6>&D={EqK!zf{@GO4~+hvTh}9av02wfyuFO z&x6q4#{Z_jgK&S#nD0bA^Bw>1K!5XJnI}PyUw}INThu_W$3^}Ndi^}#$vfT8BmPMm z<~Ek$G8l)&om3j7I(-xcH^D)6C;xBeJKX)>LH7@IaADwAopyca>Vye#sqM?|zB`?s zggbr0Xs6G>ov!n=n?l4%;{NxE8Rt~>a{nHfYY{^c9TBbw_jciBsZYZ_|Au;v^~`x> z{WsbM-&T5|<_|U2n@VVLUVixvJ_lAr)~*C-batT8fpW4o$NF^qB8jG#UuZAKYfG_#c`-L>fCd^F=$%BQXy_|J3E+NiMl6lVG; zvXdgolS~)yTeFi^-M24Y^c?piI1IgTjUQe%qs=T+b#cD}%wLD6G~8+YB;0tNR2>=2 zd1ySX>NL*~m+d1hyA{a1(EYFP5Txr2EG(S zsV3WEh0(Z&wyaYilc!iQVrzHaTh^#FLu%05b}F)(n7n>Q84YczwQZUG7@G{a$4M8YwK;6tivfI6y@M-ywD#0GjgYdSJOQc++^<5@t|i zgNnOOFX2{5S)q!M4f4#)r~l6xHoe}GughI~Z$;)nMW7y#b^y!Y6&EWTMQyH#7m$O!od`k!d=2?w61A+=Vf}ht zF3CVAzOPPk#46sW&R^y=50jQ}np6T@zbS;~;U2*S!nGinsiO>oFpI#w4)>sP*RRXh z9pLLL8vYZAB3_T#wh0V=5K*_=m~6I{1&BswaS`-%%RquaJ?$% zZMbraKR6UhIxL@I+FvXO3fjH|uHo)ZE*tTqT@zj1ZSJ-%SEv27z1#k|y&njm^`^{O zwo?fu2La9gm4-RbI8OM%R0>BrcFSQq-=YCZb%A$^@L@W<0g<4A^)ds%qI}MDkr%ln zi_g#Lt>W&XwoZGW{WH7pK78ncfm5dEp@0`_{#b(FGKFEJ6ox;Ac1uWN5nv z8`1gg&8tKY=A;_(`K1KElj2v)?Hd%(z`s+|dsTDHvbU97m>h0?e1Ug03$%=C>s(Ui z^ijLBp<#+$t78Y-x?N&hr>e=`&tG!g1e20ZR|jk#<380=)t$gLZw)37^_W5c{dcCE z541MoBdw?o^u~nam;KNo4~M8Ws9ep=S+Lxy7n@G_72=Ee73~$y$}TWI*Z`~>bVJ(@ z`**2o-j`pv#yws(>{oCrKGc?7^HG4E-ypYK4OR8?t0{g9VUMka51{~O=W?C@@%sg- zJ`&OLjuo)YY2QLydqRV^$bz?!!BdVCS=`|dwc=myjW)}VL+?EwC~LeVneR;76f#}gbN*=a4=4In%#nF_MJrEa7!JPT|eySl+ea^`F3b< zkE^Z5C30b9qHiH|Bc8loyjI~OvyK`(>@_vw4dpnmk3D}sEdAgV6F#6AJ01V9n1DXK zf1x}lyX&5I*VfwYRroI(|<`m5I?eCsFl3%_;>c_qh12tTf)Ba%diCc%d1jp zSVMsJT$OFEm2UXJBck8Lq6R`!KmGE>KZBYE$A`YZ$}@(IYX42(f-J<3Ni;ae zSUS#uQ2s{g2MNGmCBt_TQa}pQfyt{|Xv*W0?KFnftHJ&wd4`M9?e$o=bLFia)_HxcBe; z0_{LqIOd(es7d{}eZ0kRiE@TCf>Nd_O#5#W+oi!o-l3E%3chcEf065`Ia#B~bWe^C zELvTAc1-{pq31PMqXW9Z&gLphj{WaeNLQgA^(4ug>K! z#I6XG@zB=kO=E))nw*H^To(P&*BkA<(`4YJ@3 zw0Wv^#Lq>R?Ey-;GlZWQoKFVl%YyT1^P<6`O<-c-=h6a+DR(7um|aiLr%QEk;dX;8 zJzrKD2}Z*k$n<=&RAr+1$n=SDKGB~KGVOp8?CR_CG$1jl7in zZrWa-oUKY;s@ey)(UvOttxCLGJXkgY&kgC$UCQK#R428@Y$-iy0DFvh18Es#xN;VFsWvk3nL@oZxj|W2x z_)HOyvd=iu1lQ)W#DCz(9lh=WxG?GG<@{EXe@Mn}q#KPsWO>T3+&Oul(FZ$BkNuK; z$lhwdX8-)}Qo^opEsq0n)PkUgNppK!kMO1pTf z<3T{{c)>%b#Ib%>C#|uIM5j7xrG_1fQWO=FATMQVrB+tYL>XxzqB8Gy@8>el01i~= z^LgJtUi}QuWv{jNT5IpU_S$P-9z(a;Lbqf?HvojQ7xH-LaD7(OZ=sc;XF@*?{S3n$ zbN$jAQ*tba?`}GBST=yzTs&5nceS=7hC<&nIm!4e0K(Mg5nTt>AXVGSOCD*eb(;d<<|sj zD;Hq08D+FOr3qz+5@f~KhZo<_xQb=Er`eD?R9`WXy&pdoPb<^V_ntMvsMf~Gh4q(f zbF+u7TFyG=@Yn%Bc~>;a-n7jwcB}JkTtO$dT3&?7+Dh- zFT(AQc40f+rTV0f`8kMz5;mCEC+YKZI_gvWL-PVdT|7mX3ST10|I*zC{lU-+=+Ny+ zL71WFeCcj{3qpBu>25(^7upC$IH*y52xNFlN(k`G3{QFy{b8p47kd&wjQWPqQ*abi z(gybnmU<%eP{DDeG6KC=UJ|(Uj^&^NFlcaPKfWPrE(VFLJvP|0Os*wH7Zw065nMx~ z%P~ocN@BEQP4)!SswNaoKUReJQ@)}zp2sftk3PWObYx}P2W9H-!-kOlJ59C1PJ`HF z*rgkbN`rcaf9tnkrRNssx4J^Kp$TR*`PE6+;C*D)+jEU^7nbOwkH_Owl1ud#9fee{ z#sa{k#x&jtzX`TaGxSZW>ymY$OXja#^6J07kag+1!ld(0J&hIr5Xqisz|BE8hEJ`( zw7{r8fV=3dx^5{Kx+VSEEwjEb3tL_WzlP)yN2WvKTDGkAyjX{}L z*W0HFPub@fzVYjuBxm#WZwV>SoVsx!I6ekPMhs&KQuDCWm zGgJKTvI~(rHb`V~H)aBw#PrLx7tn>gjpg3rYd=&bqLZrqN(zTEV>8W&vbRqbj$B#n zJD#t#K3UM%wD^YfDVTjYVZU(s$mvV_{8D%cPGre9{7ZeLL^TPOsJlbW90k{@-4@cwRJwDqg`E1GnZov3@t}5ldsS!;%g{kB#u{0tUcEXqJanB z^Z_I=zVMX_9}ir{`Il)^tYHzG<_T*8?-cUC8k7Ia81w!$XM21#_-y??Q;y(odt^^e zNB{hn=LtRbVAD`Q#LO8Ly;kCp-INNqR7c_*;n_m$T4R=gqghw$T&|^-+}^SFsD%K* z$aBu^GiJr&U@w8cdO>|xja>~hXT%n-(Zy~m)M2Jw?A3%*e#`Y|V~g+(A8UYDIAyzU z?6IiTx|xg3FQmP+&BefH#2&$$#kx82)mOeo$k(~@HA}wElCLx6>+SM&2G%&N(YbO= zX*lK5u6uC?I6`n}yJ4ppaq~5mN5%SYcXaIWnXtG1+xP0I$FXBS==Z*hMZ;fVNT{#C zWSA7mk6M$^p?5wVE-y?pZ#Uq{bnNU=@l*5epc}CO_wgK~_&N@*3^{H;g-83LOW*4c zh8)MHZShIGMn4&HJd-6oi3N$@KmAxE)+C<}ZOCE(i(L9Wp{GI{cY)G(4E4M9JiR8g zf!W@?CNaf@JsXHLV`P4mu=@wCCSX7i<@A5-v&Sw!R#p4+Qoo59FdjMb84EVs^R8l< z57y-@GZbbR3lk7=WKEE{IOo!)Y@5H`@Kikl2%ngbo-?0)ieL7v`ECmenzyQ}tU-0R zCkt?4u@nfA^ku^ajHG1|D{o%a=yy81^OERQO(Xu2-Em3JRhP%)W&1AaR&b?mNmvQ> zHyDCe2CexXqxc&8h3KQTb+z}@KG;8Kc_7Rox8#SvXewWJK{zLSKgXFo>zUlFCw%%+ zy_n^SJ}TYfubAetAH$X1Cc5lLa2f6T1lkAV`*7Gn6CCEl2jMEtsn|wX28d;uKfoai zxrTkob%Sn*yCD(B`^~&z-VG~ocAq|SX=Hii-pGsQUi!;^^}3GMFssdagY`yhl=UWS zj8%F6kokUnx?i;LnzhI}9{Yy2SwF{JnY9*wgCkyxcqpPIVnu`_0!{KiSDmRoOM2Ds zv*rFWZq2^6XK)T$;K=;7pJihxVOXNKufW{kqi1{h*4`XdnQ*Pp<+S-Yw_m+-b!u8V zV&TRqShN~j7_(5|p*Ny^c_Aq~DC&*=Lq?hwzgFg3-s6iNSD(yxl`p<0-!*ngNKPjN z^{*IngQDIj%nMn2x^_X-8@2kVty!NTNhTyt@l}@R zq}{U4kpfmm_c)2%Cv`6!Mm_ekC5z86n0}hbpA55MO82!#p4hX?pX_H~)epa08yVwz zb!PYfvZDz_Dw;3ok%z&47`v*DMc3Ew5pwhZR=^N7oZ_5xfnN;2798-$LL}!em!IY@ z23(M?Wxsu3q@GT;mv>zK{-E5h_4`e^8H|_GUtRi!;=6^??;_KX?S0+Z%f~LU^bVzU z{N3NWR~qjY{7DA+TX!5h+GD?;$dVZ`oG|$6L){;{giB#}XR03cps29|76Bbd@jOf) z84y6-iNl^7W#Pr*Z+XnTLV14cis$o{pQPs*rM^AV#79Y7O>%H`2ZF0O$@NM7hsQ)Y z=2Ibl;bJk+DEkBTtE#6>tL-TM>nG@;pwfKg+aurR1V8k1tsiCr*#;c;BKKm&?leH( zk1v5`Fa*r_{IuAw;Jn%Ir`(IR9gqBk$gH^ZC%icFQ}!=x=Aq!gRcDN==uTlv1&U)p zT5B=hC%07aF!JzkxsxP4?3QB6(nHgaQVQ9o+CpuCwwbuj#Q({-F0|$1|5W~0E_g;w zfAQ_`9$)5vWi<1d4^*f<5$bfq#eX}$*6sGk!mQmytD3MfDd@2#jJ&p!IQAMfdmq z1^w;)pYFf0|5)95o1xF6eZK8=xmVBrEcLuCyz_*Fdv*hBsSw zG)a~CwO4G?Bg)ndQ!GWxog2BY`#6rF;OI=o)ygXsKmXf^{A>E$0jNAI14+@Jop~Ie zF8f)yR`BDzcL!qiz|~4NBM@I{yi*vXuMLLplHO5vs2fwgE{5xEzxKU+|k z5?E`Fwa4Bq#IjOUoC^WY#VTZ+CSWtte~5b(a#{{%2Naj%I z;HzT;D3JzGZy`YFB3z(Lbd{ROti!r%-B{gR-Adg$-OIWix?Q?cx?0^;U4*H(Z=*@* zVCt~e^rUIM$>!V7x0@l#@T564)^%eR>K7aRl)Tc&&Qh!eW zv%XR9V<0#qMQ)Z)5D|?pK9jYXBp^ zC=3M9S~zU#8-~R|fVvj0A}&wh0-`aTsETl%bOn85>`5t06+w9eQdY)g(P|x5rS_=O zJmdazB@LBtjgD=!t->_eFfw|i*})(~94!;VR1|-4QpM&kBz2tRoNtW%Qh~0*?Z0%f zMgP)iXWKsi8d}6Tyc*ZLIzHvCozN z*$?Z;rniwk9)4kvZf}nsLF{`a`G-RW@F?>RqY~L|?K+7E_$QfkG|9AqZZ!?ieTDl# zb0l>%_oR69LBo8rPT#*HnFfRe3Q-+we_7PUlTL$t9&BL6^UAI8Ld6TU%j=ObTgf~l zFbzil>#K*4PST|{6eYpqufRsTid9#~`Dfo+QSjh-A=^^0PhfWj>_^%sV7D0F=_(46 z&I`4E{55|t;ERV*tF9*aXNR&RP)PF6HsRJ#0qAWX)^=Fp6TNpSZad5hoa%}x)w3_# z3E*LPOf0t5Rcs5b{jN4^?SZ%p%M3XNc0NGd!3sPcU-sL|U*h&)c%AEmDhEJg?FSfZ zH(+Pmq37Zb&CEStfjvr2q<>qHwzk}_Vg{pjtoB((3%hwGD!AEG;j+H(<3zio^DdmW z%s*R)l_F^qvB$3r3bA4}NRsI}mvxcJWzErJ#h}Ythuac^^w@-v0aggEx_Zukv0m)w za+HVcFb*omd5;#H5_c04M3xZjD)>>rrddw!i?DQ;b(qmHfOZ(|U)UpD){lIkMjU#s zUv>3I2L5$Z*-?u%y-dI#N3g#{QShL+yNOY>wn@=$J!)}Tlfmv<-(r)c(r7?T&N&h% z$4Kvs3>JR4xy!oAR5qNG1C#pPFb#mqy4qCs3CQ#}x`1B;9GrD&Sy6^%vLV<6$mWYG zjb=tT7RSjDjxN1)vPK_hw$w~1s|#VP)?C(J`lw4c)!6aU<6WVz3z#(pqsVj3;ZaBM!#>MO;UzGVF3vq)O&8)rPr4n_P6 ziCwQcHuXUW&H4q;zigfsb%=^rworbbqerbWDCEi>RA0+tIXk;?{-!2+;N+>VWgPLD zD~=cpyPXT0 z8KgfEMD57MOXyX?4a zG}6~;(t|bWuUvMlVCjoA>G7KMM=m=$vkH->Ngt<4pMP1ZFatH|A)54r%Z`zZzaUNe z08M(Y%Z{frkY0DqEq}Ns-Ei6QDmr=RVNLo?n)GuGj{bv?zD<)pP?Nr|!Et65(${Iy z2W!$_X>dG%#RJYon)Hd9^hX*T<*;PVG);P%CVhT`qlu*t)TA%fq$e~uKEkxNGf0#E zkS4uXgTut|>#n-xkJ6+Y8XVgrk$zZ{u2a*Q;eer1P(5wRWc9tvDjJJzmZESN&m5Du z?UG~kLS|{s^46wcvu?SJz3OkQjx+u%%w_FksvfZi$GY{fh`LM8$ybY_BC2b<_PP&!wBC9-xG(V;>*8PDdk<-jnYap@f(Dn z9-NPbrS($u#^1#GtzZvqANIjt#i-w^oDDvT30SPuRV#)T%o7*GFK`p1$j|d_m#TjHg|V0=NprojUEzacdSu$~a|G|S zi>&T?WOdi0RU9?fdtPcivMTlHR*v=$uV~`6x++-z5N`cZiJ0f^S$z!c;9C~)WF6DV z6HFF>tXh=&0+j` zaov)@q9GQ0SgfTu#8Md6$s${-Ad6_L)0Vr9Groy4u4;oguTzKoG76WJf`T*ScXu;XN9$!hRM4Nb?Lm$NTx z4?>tlG%E;e+Jg{o5l{Xk=Pk2|28R58x3^Fx8Iq^hmiRXWkr2nC{#3ORz zkF6z^$cdhMQ|+RnKCNAB_)%tQX{)%+bUx4`Rw@V++C~^^4Y7#p6@;+15#p?fIxJ8S zzWuQs)u6jY9HJnU$Oz|KQ_coCv97hmhvmcz%@Vm&H%CrX-CVKfk8pv0W&UwIK1yZa zYP?DZa135=j23p zyU`>r`$5sQY%~AzLko|for)i%l0vZ!{Jp|obSjK!x{7ue`c5}?oYDGw^IoFG?*4nR zhdZTWb2mMWe!I(w?xv?nbcqtCyXi@ZQv6p=bT_@%MP>AHKxE4D|($zu*Ri`zL;rdK3)76Ul+ z<6fbaVWFBu!*@*deO{5=SsdcfSG+8i)T2}VE8207u}u3JskQzuh2!Z%cW*9 zm?LfSisa71z@b0$3N6=+lixD+1o|-E1a46M3=&t_Ki8NiEn6$Er^j zplrtbT?(UP8KZ5COk{0aIB2}rf~mv^A7kgeUspL-UOyH(pP&{+$6QX)$fjPF>z$LR zw2!J+O#~I|y46;?_G`>gAV9};C=dG-YP<=xC}*by0dGmIYK&ARH|p!QRp1O&6xQ); z41$q4>sjPMqhJw_e1$P7o0G%H$s@#a_N%su%lh5PL6ar@{?0M-U%v7jBgZp-nh88r z)vL?ey@Nc12*+0D8sFe06dTVv#^B6U*|BRpTQ-8Z z-fpjtjS&^6_(2`M0XWi9JQ{;j?sZq4WlG@~zXFX_dWsRP8K$2FT%_ zlMWNv2>M~QCFcAwD&hXv)H7vcSviekHQ3e#MKsQWaz}x$)}s`l0e#tD1} zA%>hrbNQi_<{Qard+%XnHtN4*Y!v*V=DYPv&*uA&FWYRsjNATLp`q~IYV(yvddA&+ zB{VVaOS$>-_87-m=MzP2^d${;HO-L?c3E?j13f)(npAN=OL2d7H3BP7bd%B|g(!>H zI#}~X+jVfGtVN0cw(H=-U$mnR4){VDdfdjq%XUhcT&Kz^zG1#jZaZNdsrkIlFlk;# zhPm)LBg|kVUC5)(LSM(PVO)jc-p?J==dpDjeEACV7kI;bS4EVR&*zp@q{lyZ+;Imp zwjB0x74~|W%#q;v8kd6628(IMv*M)B9hZ@@Tv;c5&bf4yVU9~C8>^CSjRkY-eCt%C z>+y2rl$Q4+rxXRXmdU>*SS{bqr2?${U<*EgWgxM`DLmN1@C7UbzJPU7j65aMDOl_d zP-uchAS_e@!250hIwhVtsRCeKPoNy<*MnwFae@*q9e%2XKB81sn~NrwxmbTvRw*x* z`jd)i&Ee&;M+}`wveF;^AiIG}<45B5le|JWtCiw?Q>8Pg9H0H{8JJ*+JBUNvahHk2dN+S;87{8X&^RJ94M7>%k=#m#PjR*eQP9Yb5Zwcg@)f7-0YzyGOQA8oeyRiA3x z)haD&TP;56Q*Db+(xSGn#fNH8TDJJ_KXEKU8+pQ*9g4M-0&P`paqy&Ub$J@T`7Oh+ zMZn^=PaOBp#_TlOOAUsFak#=V4oA~r4akKCR3mp<|N4aK$-6V=eCjHO$8o@7JAu*O zxVf0cFrP3E4voSQyL=I>x{xtPFTFQN@A+^+S>&js8NH;L+-d6IzFE{!tUkt9yXH?{|pej?dfQ5MZ zsAF~(mO^!GV!n)l6g$Y)OZGRam0+M!)&`Wd)P$u=b*zJV zR+Du2D2JT1x>*uV*3Ola9*~mM#hOyortGZjMS4VSMxbKdY9T|VG1)R!k$A*WCh-qm z9YW``LYd18MH8c#uTT_^Fp3>~y+yH{Nm%$SL3l=%WF9$1QtI$}PO*=7iofd0MtPwa z#CRmkGVxZCz$s4fPVr@(y!N$O1nIn_M^H?G)Ro3Giw%Dnb+zn=Ddot@UMr^qWsx+i zrX@6SZjClHHMgd0DpXqLo}Xf&DQPVdoPhOSq9wg*+P2C{v_#^j?UCx?YSfK3EVNiq z4foN2-p|>KeLaynyR7Rv*aHo0$3dvN3!%_gy!;V&dsbnL=L%YZpcS8czQ0-$xsl1u zqa|$p1$Tnf#RQGKLcl@6rU|yTXA__8;tQ@u{DL)C85Z&RkBTy+l^tD~J7o)Nj*L?e z4wf2PLC&;@b3c-5px&5)ah9}S1M=h$5H7`FdqD9FOEY>!Gc0=JzOWh(j_g*6Q=VvQ zmdMzZRFm04HK(gw#!Sp8vaJZpK92%fLAQPMKT*)%tDIk8Wj^->8>%FdYH-Tk06(sB zRE!0;7{dC$D()dTO9Cs6v-r4SHXAqGYAMcAhN$bSm{mF9 zX$YG2%GiYoG;KF)mY<66l$SW^(fidD--}gl^H~Mkrx<2|Y}j;d;bywnKp3O)a$wJ8 ztc*=YHPuL^E_{|`zNgN6`W7#=h+iLaM8|5@`js9+In1-vsGUL|mP;C|$M`Z6-%Vp@ zh)RBC3oYzJEi6BAeKT73%d}j^*_Il7zQXbJOy(fYM*+{rMxJ{uEA?3UFU~#W7=}gW zMR!`5`5StuN~;eOiDM4&{-$Ulgyr6kiE;zn#brFCgo%0`VjA~uAg}M!efMG8*5gNB znzE7I`5{>HT&~Hz(MAr$Ze_r=9~R96ph2^)lLMOA1Quo^RlvJGlzdw@52alN%Avcf z(B9*_)(_jZSh7!9br7cgd@Ehese^56QWowl4*JKsngs_vyP7!0kM~&+#;w%VNPM^2 z)yN`gx*7>h{I!yIHR6wzo=tmiB@Fm=+Hp-K(?tZ=zUqE7YsXS;Y}Qn({#aAxL0PF; zqwca0h&~_tKx^StKS=;d5AOaYF zZFS-0`(?8u72+b;+e~I}hYE=5`69lSiKrg@k8sS>WLtvZ4CXM)ZDQN}I7%GgR~p%C z%*)-(Ym3}M9^YS--HM%%Q~$ajP5n{~y1tecLIz3RUzF1dfil+9B8o4g7w1`E=6f3R zEX7OR<~dI_&q`t*M0=R=&iaIG3*RvLu%)Kwp5liY0ej%mR^H{c@-D~oT~TK98dkha z;%J$rc!iszWu6=%ahXN&8f1ZQ-&eGv6@lf{QTvLPwUVl+gNd-hlQk~ZvS#mmNn5VB zVwOwtT;yCnt0;Q-`nkxC$&L!C-n%_FwwQ`LGEhgHaS`j{KDZ|P9FNG*s?XuHelOlp z;kXssfK@MJXhjva1 z^6F%_va7cpoNBtq4o*+(vRJjZDw9%Vjpgqx%V(D2s_N^iGtbytm9f{cDiiKi@?OaW zOW5mar@QX0a_%H?z+O+C>GxKNU1XHtW+>n9slxP@*to|NuQwOZPbLftw>P+T#eG(dtfB?AA=* z69FE-$MIe=uEY089_Kjsrd5y8;f;IRt}1e^x?0Xa|5%s3qujI0 zUR~a1m(BL{N?kU)OE$FHWlKqAnl4*H6XVOZqr>>}vVX9e<6e>4?$M#Ky!~B^#7)~> z%Z}ac=vo%+R@!45qr=a4xf`Z?beOVR64`BI{?O=f#jZawI*i|?csTzrjSkB{xc=yH zz^?y^g64eS9vzh~1Do?4 z@PX+60X&D?>y5$&D8NSJSFR%B5a)-J;eB}8wkM_89x#N0A5qb$edLRK}H zhITQuqBZE$pRlZW+l9<(iXOq!YRifzSm&L^cFH|m2G-o;2-)7QEn{lo%N5<52U{IM zXh!`WLakt{eb|8#>(r=#hji(>-z(jQ_r$#SFp1Df$Nj>#T{Lx=F}D3-2Y7MnK<1(M z_&^4^@mDyW*^wIItwAtM1mWrlJELI zB424-hw7p&Y_yu9rlNI-tf38@(ea@X&z8-ZC6l=6T}dz-XAy-IrALAkK;iO$Z!Qny zf;`d;vvZI~)CU8-nGzW;CKq=wo9N+6T8KB)}xwOsB zkdG@6t0|smDV->(ANxTm*N4Z4$~;0Ln@go)Yc+7uA|A4=w4L#gbdZG_ppHKg4+$)V zqS_e#$?=e~|H^|v7Kl3dUwQQFZt18Bc~`}^{;Q2wJ@(&b*2p7VH>b7eS-XctXe@EY z6_y;R97c#gEmNMfakLc<)dDrV)0zb`|F>-m^!sCxhyRptY8(242BptCj*43~!=9#{ z%_5hc2IBHgPw);Z8^WR6Q7ttGe9fm%~BJAd}L>p=-BDD0@dL9Z5dmcRJf*;4+OH7}Z4&mttvFF>O@HRRTbtU^^#z$G2XK1n6%%*cYn^GFs zD#4>W#O*t@1bc9TcY7x|j}aW(8GnYgr0Vutb9aat9>n+WVBG%QJ8?ZZ-_^Brt$1BP zZ|IIpqTaJgZ^DOMwTqPDf@PHMDj(S8Z+38;Hc{K$XooJ^WycLT6 zJNTj-XACQhG$!gqZ=$Z*F5b6YtH)E@nW$^Mi^}ylqfO!iwu}BA#Fum8ZR_!Gt(e#U zg&sMLO1Kt?Dtxm|QrPF)xWYUK3xU_f|7^qXzK##uJ@-kJZetqq?taLI=W!1Df~3sf zxldyJHqUTF7sikG83M+w6mF3CZZ+H>i=>HCNoeBHx1kS1W@HlvGmQNXOY@` zPE1an^=8qgR&eDIFEIa5u=~Yk5#Zkw?B3K0?z4!iA_%CQGKdM)70n~rPrlJ=B->l8 zx+7^7-y$wO=8bm5rMtc%RZMrxNQz58i$N<&)c8D$OLtf1!hhToeiyA{ufzii=No%r#VD)HMbj+zXO3t5JDN49u2{MYdAgDt$_i#xaQ(5>^H zkL}hUTQQ2oTiR_DmvYcQW)x$#cp62+mNtzd<5n_?65p*FMOh?`QIycc4>oIKupexe zLip~z{q2sy{$q3d?VQ9-+jcHyb35$ZSO0+%x7NzQ!;mc-Pu9eTK6xRlxkPhaf&$Qb&p}HXFSitIwZQorkXYm zTgyk$(%iL1I&Op!7}AWJJx0nq)RA({Ys$KjA75k5w!*7PQwqg{x0n71Z|z;PBMX5b zSu|+^X{v24C$aZylJ|DQYmN?Bg)5o8px0WMJsA6GF7eW<+VSkiuU4_}wWazN>&q5# z-m7@XvQ!Tl{j&Tfg}wO~g2Tr9J68`0#Ooo(MOfJOh;Q|X53%6vRf`z?YSF7u^ehW_ zOefqI&r(9!&%Mf2>cjkfmo=zE*=Jn2AoeN@kxe?B@C*KqHSp^#s}TFWs+7@0PSCr* zDPH+^E3I5pYgo@~lora#cvqUt zsQ3y~f*vK~Z5KaZI`;uUy`QXDX?)$XnUrHKG8APz!t)5_d6b3mOVR5V^^9vC1Yu`f zzRFIbK1w$EYBrKZ zX|XMX*HE?z&;ag6yA%Q{pJP-4+RZrXag}Tlws`Snr~v0$lk>Q$f+U55rk6E>Ha`{H z-mz!k=2rHv$@HD$6)L5Fgo@{8soa;PqI;7S-M-G)p3i!?t#A#uT9}o7(~|24CF!AN z_DUT3GT*`AV#j;4W4j4EMr{{WSHNI6h$;I3YpI7Dq((V+74MWsM^&!R(W zaM(K-JeA=29m~GJ_buX?mlmH83twU!tVR&XT5b`$zT{lNa$GAvn_qH1$e!29&y6oS zv)J>$YV-f&12+@Z5xc1du5=1UXNEZa#VRbVQxJ66in$j2^p{H1r1&= zZ1Yy|x&n{w3QaZ?*>GX=wdjeYeWK3Id<%k=P4YhT0+h%5jJIECt0%@E$ESK67%1j2jnKa-;O=Fna<*>7m*FbSN3t2q%ykiJlNHkYj=f!8CbNPh* zj*_W~Gag{uYgwH;XmR210oGcqs=66`@j*-JN|?BVmgR^F9ki?j6<*r>3EiZ8)|KiM z{Pp>ksyO&ZodVb?zEi5}^Sq3;+vRT-qkG5A^rYryZru~m-iK4cN6Zj^O* zbfZ*PY8Vo$D}X(Oy1`&iis>80!5bHwWI7+oSG{wXDy4c1Sm8z{Wf!mRmGj({7TTG@ z@jNR^%^%fHX+D;R9<;oROJEH;dARMZuzK3TSncbb)!|o)4#Jq!uw9!*!hLZK`s{aC z%9K${_V6W*HLSucm!m+%2LRJb{eq)2iU9uj zc9bWx&7x5)kgh(*B=qhUi*G$w1%VV*L5fFo3L*7up|_uNSF@rT$@r{_i54WD{wD#t@ z^;wNYWtLcK38-H8xX@L}ygjOgVxGFHCl4#lN1g80*ux_3+u%ZVt#Llz+B*z}y~7Te;v2yx{KMG@ss4K5ig?n*bj~Ak1h==ly89 z0G#y2+8p1m_QCqr4*gLYs&urBLPFb+f7!S{0uyyb=aZ2 zRgbB-b@*xj;ge9-%<22{jAEv)WNev^sw2e!-Q27Q_Sq+QVuH?^IVCV+*LIzKj}P_? ziL-QKoNk8wv$Yj7vm!3O^2Fy)mIj!&C={xQ!-_pUDV6lAj@-8*@X0OvR+!fu=ywiR z50&?fS~}#Odsy;tQQBjlXtcPJCS_m#d=E zcmWT^zv68jZYnsK^wI;)HN=4rW4WF<^;Cs=yI#HByP<;d?B^O%iS5u1*eF+pH8ahD zQ%7A{5ru{dZDHYFDH3y_@9yov=xRmLFEFB181>%v;OfZ5rc#pbB&I_vjrHISim5cX zTu}X%T61xIC;m*HO5dLssFHlfZ-1WI?jIOYGLn;RomfaqVoI3+T`UTSE*E_R#lHqJ zV%8I(jhGoS~Sa8Nr84ZaKxCe!CV1i;ttoLZa+9pyou`14_p5io^(?5QpO% z?5M8Vyni&tjM>49JBZbO*#@V3kD*V+V8|u=7Q082Mfq|nw0NP$oF~s3BC2+;1?j9l+`^_{z`j*EcWhR^^lzJ!FpFXb#7;gA(TH%my5im?4>4elFZBX z^u+Y=rCBb@Z9=Vao32*qS1vW7G^UJeX4KKU{AMuacETsEd3Gh^l$sh=+}Now>?&Hg zrWG}>u!r2)2Z~$G;#X#TtNtjbRH_51>;ZuhdgH9%(6HGM$6SbyZVO!ER*83%l3H)0 zyOW?j=-QgOdm`=v#f42=I>o|)yx5P4w9YJ^>%f!TEeVP&NmL|jZWzoh+pvhF_N z6Cc>_c#WiO&`@eg$xYRf#&qCzeeY3pConv!%&UA@m1ccHiiYk$j}is&E5ZHB-wmJ( zZ=sgfl4Du1bGr+Dr8hr5;Z9&gMF4d79hPFlaOrl4FOL5Yc;8T*SD5M>kZZwF0 zYa>%dW~l(AzVvzElnmF%*G|1@Y0O|WM*I;Pfoos@OD61MJvlc6*)1g9&eWUF)Voqv z?{>ZTn4WoC&D6^k>#lO{x={+~lDOZ`Ur86%=bGU%ao#)%zL}{pujy10SREM{(eGSw zQzuE3c5AXLkYi;9jKcYLJv?&SpBGl>4_9CdvmUHdEbOGMRGg7;)q8;3LvTeajZ4vG z@6LhEL>FnCzB`{=&mHvzqw|B={(uX#JC7%tk@zs~WC(nzOorGgq3>SG693_b$h^cM zau)Ae8Z0*HzKP<5BrqwLISmrT6bA8yZq;RUw{LS^b}wUeR=9~BY?MG{BF&S3kdu97 ze-5P%k}v7Ff?cuoous^_Y;)`X551N_@kq<8sdY#$)^@WzzqBcZ*=VCqr zD-DmTQc5$>LEgNfR5t_5G;!MpKo!K?23b)9+{ zaLZF$TJ`Tmr)x%5gomSVbqz_gW{N+!vLeKtt{JzZbRP*W>@J!JSMgm}M1|EjJx%;S z*NnNoaR>3y=7UqB_gsAC$%~t3MlgQZhygeYg9{B1`u%nq(JE<)|Eh_X*J zL`6@7{|mRoZoM@arCc2uRhfuIulS3isjyqKgQKmBf}`w{jZx8)4RKZ3g1zdSp8I2y zgQN7h2K(u)BfI7pM+Tg|lp7crkrI7TAG;{HFg825A}|6ONLV>HyWwM)yQ|CT#PB+C zys#MNM(gOCfUP6VIl2`7D4>x>U)06k8yuy}HB=a8o48)Z*-e2F`(v|$#s0W~qW1way8JQ27K{ZO*jP~Y+IX_lrzxsn zxq)&*O2#r)pdW*V7q{Bcz9@+4+b#7p!@kkU!TQGiu}oYj`8wiCOa~V?#o%XRlE@xQG9Fgk+bZ7aYiu8;KR7U8NoSb0EvUH=|^V-7Y1eq zS41P63Vds3@M3+G-KRqQ$%Tb`d@M8@e@Ef7=NOw|comJ|6|^@y7>%dHDD2|#Wv`28 z1*2-o1R~NzE6s?C^TAmIVh-*KeY6FGyegnIfpS8P(~S|2=L)FI$-&~AR|6yF`btT; z-FZSO1&QzDwOHel3RR-x&MJ(9i7No(0RRyg%RXZ5)mjtd5~H!Es7fES0OZbx2QXG_ zAX;dU0wF|$L$L5g{?}|s-trOOLiO^`d#V@2|38VxKQgD6Hr!Gj`S{9)T?aekV9blJ z<>E*@vY^gk_J=T8G&gHb6^apnkAy|Lo~SIlk*aUPchW0!ZYdmnxbs@$(aspQzxN5I zV-9!Dj^yMDt>*BxM*nbYX+!V#UJ4J4sE&l+z^O)f1@M+#KQ%jn%3QAZzLjzeWtr>` zGl#qL2yXUDLv4elM`!XTQKBQDPxhx7GEp#D; zQ(8lK=yxIrzc&Z{??o`Qi2!jsMSre{>7fsnRQ9l{f@W!3C52%hRCPm6%Npa>k}*mF z_4lB~M+}M@vAe3ep_C{`HxUuTEt1k%j-F6Yv;~ETO(#w(cUf`w@WMcAI4kd)_1`>D z7#J2_93Ea6))lYJqD^0L*(Y~;u?=r}gzp>OJ$%A8Ve__N!59|4*$Q{KRHqjV5nHVL zV{PH@`q0H!A_^*fp4?)!gUK< zC-y?L?%@Ro%#ef$wQqEIIDeH{Z~&v9to&ZrlqTyo1a5hZZkzD6mxUp%?fMnoE~u{Ug6i%K3bO>PfE-j97!+O{f=bvaJU-s)yDKnU ze2c_?V0TqexKu_Vys8C-Z%Iwvuy#+`ogn+X1b834&|1qgP-^=4_^Gx@saMj{r%bh$ zBI16cq{Dl)ovR~Z;HPXi9IIGU(W|3j-Hn~b-uP6BP#rn*YbOAFVL_wIBWBIKea0by zjG0lg+nvQc1%%aurB^Jfp5+_Gh94DE#B;8h#>^>Fgxxo)S%_T<4o)l4_j6ST&5165 z^uXA0e3S`~pwQqkcws}8PPgK{-7s<5nz|B!qsSmiU){BtJ<`*_fdf0!#D{Vg+;uMm zwmtaQ9NT>lF3!2*{`(iq??U76c<{y?+dT`|%e=qdbw|#9e|^yQ;2jSv(9!HLnm98f zar{Kvr1UgfQtDJ<b8gaLgbg9ocjggMH%TO*AOcHvDGWz@Y-g^wZHGJq?QKXP}sg zi8FjDId#H>!~~m>Y~w&F-Io$)Ov;#)G9iG*r%oPZOHWKr9G{Vxz#j*zkDhV?v z4Waam_>4)ZDYp28gsF+?=_72n3pB?jP}D>d$?t3(NafT*X{pJ{5Xd$;H6c-b?Wev@ zO-eGmA5wxSBXR2FNhuI+YJ5f_$ai+X@gULP0G*|!M^H-QbX(fg)Cp7LCj$`~C1y-a zO;EFnpw#39ZvZAj=_SNWN|_V^My6(ru(kdV1!5&BDLy%4z#tpSo81hyWu)51PmE8Q zka!C*7OzJ@m5igMxzW10MU;frGSHD&CK+yM@0lp-w((3n(3B)rgw2^miOT<2ZW`Wh zQ46P4w4|iA&{*9c zS5j6NrY6QG*piat(NdyG$m%(5)v~fjZeIZ=QM%81#gLo;9#;u9)B4|GOjShOq`@i z$%z9v!VJ8WSo6eS2mPfUTJ0PjHK<5R{bCc^~7+$wKvDe;q;`GTPzKRE#>>nEmU zgi+$usi{*(*v6+$L%F4-X4q2G5>sqJtQ+98G+1~Q-V%O1^b2kIlUBlR3S4|9x*#qz zC!Ul#EhRzfe+JqH4uVCO(k7+b;xmR1Odm9O;6N#PP;1G9Zyt2Blswor@a7iSLx$We zC!=#~nLO;4n{NsB$nk*%_uMfo5ZX$fG!AwSy~qe#FB7_7WNsTcxQ_;STFPxHsnb(z z15hsGZ?lb?l##AfoXJehZb4+oAYy$SD-K14A=Ipb4D1cH$pw%QpAnBIs6pw-Y$1f+ zJ29OrPR8t`qrM@~v`38w86Ay4v7%apP_xR5#7@e)Y3Yf!iIXNw58Tewl6 zvye&WCp&Bcu4ct~YuELke-i((KZ#%XC-LnZpAg4m|Cs!)-xZrR9G_*3 ze>{Jkbl<+ee#Sq8UyfQpdv(0bncOZpZ+7v;kMWb=n~0qZLAT&%!!H!SF8D>_*8{%@ z{7{p~ieFFsnEseP=W_WuUwM|V9f7|IzjFMTitumDX7;z# zG?7YIPr!A;o$R^%R1%((sC*WFrxMqq5hg(qILw2lg5Spgl7L?i{FrK2;#d9AN26F< zWjav?khrDsBWA0w`T_|kj6bjp_+eW|O7 zMwn=pi5@ml4emS8)DE92G9!uv@L)-2hz|$x;u~_4W#XX^mQQJ(2+7alA|Mi(UE@cNLfL& zK8W@OF&hvYOv{7mtzbGEOu->EE`%0`(7F(MBZLlx(DxzKGn6ty>7SwWPAGjJN`_7p z*@=dCqE(&f!%pODp+pN6SZIrd4qE72d;%nl`i9ZCFv<_3U14-Jj7D^(J3G_L&h&g| zD(OrYJ5!%m3EN8-96}N4;tT-9_&d6ds44nl-`R9d(rk@^nNe;t{45% zi^6(SWN*5qH%;tK_w}Zn-t=;BdZRbh^rn-&F|k3*qiA&$y@8l48upFkcO%8!NJ%$R z-i_qAk^X%n9lDV&+(@QA6x4?X^`Vh{Xigtm+=m|RLnr&twLWC(OR;?^zAxR`mmcU# zFZQMX^rd5c>2zPx_oKjm^in_C-H$Hxqig+WKr{`DrhB7lZ8U9&rkZFn_oo;8)As)K zMSto)fU*bBKL^mU0rdF*IzNEw2T+F?3XY-qG4xIhnQo$4H_^v8QR7Y2bs$X{NIM47 znStaQNH+|knS*HKAbN8UMGU5qgDHD3)eNSaZl<&$^x_bDYY6>!2vrTCV?)Sv3q5}e ziMNn3mLg(lOe{SdOWR`UOe~p(QtVL5A4>a%l5rSy8AfY{(Nn|d@Gu%VoE8qJ(&2Pu zI9(l1w~U}CN04tE^^2p4aWs4+O&>`gj3jJZ3K>N=jH2XGGv9MmVO*d zljG^ZarFK;8b6-y8c%uS$&f(35@=`wg(Q+s63tJd(@E5O0^Ku#UYI~XPoVILlr)jn zO{8}w(#I3&Uy~^FR{H0y^y01b-&^V2t<>)}diFM|xs8NmicY4P$yAJ+$+T=Tot#Vy zQz$!y_N7o{Ds4=q;#B%BmHMPnTpDdnqmnc_m_`@VsQ(mNJ%yU4Q1_`cVk+s=X<9n1 zN~g`~bS9l{%b+D0^mqn6mqBl2(4GwXFoUjS(5PvYHjVa7qtnxap1qTPxsxW}MT_pD=kB6c?xGpgQ=__3D6>c>N zyG=sB4#I;Sg#UC90?k6AS;#R9o6W+fenOp}Fxy{PnI%VD7+djoC_B&g$w>&{vV$R&6EHD literal 0 HcmV?d00001 diff --git a/src/avrsample/libc/calloc.c b/src/avrsample/libc/calloc.c new file mode 100644 index 00000000..93f72462 --- /dev/null +++ b/src/avrsample/libc/calloc.c @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2002 Joerg Wunsch + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: calloc.c,v 1.1 2002/10/12 19:37:29 joerg_wunsch Exp $ + */ + +#include +#include + +void * +calloc(size_t nele, size_t size) +{ + void *p; + + if ((p = malloc(nele * size)) == 0) + return 0; + memset(p, 0, nele * size); + return p; +} diff --git a/src/avrsample/libc/calloc.s b/src/avrsample/libc/calloc.s new file mode 100644 index 00000000..0e174d41 --- /dev/null +++ b/src/avrsample/libc/calloc.s @@ -0,0 +1,82 @@ + .file "calloc.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .text +.global calloc + .type calloc, @function +calloc: +/* prologue: frame size=8 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,8 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + std Y+3,r22 + std Y+4,r23 + ldd r24,Y+1 + ldd r25,Y+2 + ldd r18,Y+3 + ldd r19,Y+4 + mov r23,r19 + mov r22,r18 + rcall __mulhi3 + rcall malloc + std Y+5,r24 + std Y+6,r25 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + brne .L7 + std Y+7,__zero_reg__ + std Y+8,__zero_reg__ + rjmp .L6 +.L7: + ldd r24,Y+1 + ldd r25,Y+2 + ldd r18,Y+3 + ldd r19,Y+4 + mov r23,r19 + mov r22,r18 + rcall __mulhi3 + mov r20,r24 + mov r21,r25 + ldi r22,lo8(0) + ldi r23,hi8(0) + ldd r24,Y+5 + ldd r25,Y+6 + rcall memset + ldd r24,Y+5 + ldd r25,Y+6 + std Y+7,r24 + std Y+8,r25 +.L6: + ldd r24,Y+7 + ldd r25,Y+8 +/* epilogue: frame size=8 */ + adiw r28,8 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function calloc size 60 (41) */ + .size calloc, .-calloc +/* File "calloc.c": code 60 = 0x003c ( 41), prologues 10, epilogues 9 */ diff --git a/src/avrsample/libc/fdevopen.c b/src/avrsample/libc/fdevopen.c new file mode 100644 index 00000000..f52c4583 --- /dev/null +++ b/src/avrsample/libc/fdevopen.c @@ -0,0 +1,102 @@ +/* Copyright (c) 2002, Joerg Wunsch + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/* $Id: fdevopen.c,v 1.3 2003/03/17 17:49:46 troth Exp $ */ + +#include +#include +#include + +#include "stdio_private.h" + +FILE *__iob[3]; /* stdin, stdout, stderr */ + +/** \ingroup avr_stdio + This function is a replacement for \c fopen(). + + It opens a stream for a device where the actual device + implementation needs to be provided by the application. If + successful, a pointer to the structure for the opened stream is + returned. Reasons for a possible failure currently include that + neither the \c put nor the \c get argument have been provided, thus + attempting to open a stream with no IO intent at all, or that + insufficient dynamic memory is available to establish a new stream. + + If the \c put function pointer is provided, the stream is opened + with write intent. The function passed as \c put shall take one + character to write to the device as argument , and shall return 0 + if the output was successful, and a nonzero value if the character + could not be sent to the device. + + If the \c get function pointer is provided, the stream is opened + with read intent. The function passed as \c get shall take no + arguments, and return one character from the device, passed as an + \c int type. If an error occurs when trying to read from the + device, it shall return \c -1. + + If both functions are provided, the stream is opened with read + and write intent. + + The first stream opened with read intent is assigned to \c stdin, + and the first one opened with write intent is assigned to both, + \c stdout and \c stderr. + + The third parameter \c opts is currently unused, but reserved for + future extensions. */ + +FILE * +fdevopen(int (*put)(char), int (*get)(void), int opts __attribute__((unused))) +{ + FILE *s; + + if (put == 0 && get == 0) + return 0; + + if ((s = calloc(1, sizeof(FILE))) == 0) + return 0; + + if (get != 0) { + s->get = get; + s->flags = __SRD; + if (stdin == 0) + stdin = s; + } + + if (put != 0) { + s->put = put; + s->flags |= __SWR; + if (stdout == 0) { + stdout = s; + if (stderr == 0) + stderr = s; + } + } + + return s; +} diff --git a/src/avrsample/libc/fdevopen.s b/src/avrsample/libc/fdevopen.s new file mode 100644 index 00000000..1a8df297 --- /dev/null +++ b/src/avrsample/libc/fdevopen.s @@ -0,0 +1,139 @@ + .file "fdevopen.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .text +.global fdevopen + .type fdevopen, @function +fdevopen: +/* prologue: frame size=10 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,10 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + std Y+3,r22 + std Y+4,r23 + std Y+5,r20 + std Y+6,r21 + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + brne .L7 + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L7 + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + rjmp .L6 +.L7: + ldi r22,lo8(12) + ldi r23,hi8(12) + ldi r24,lo8(1) + ldi r25,hi8(1) + rcall calloc + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + sbiw r24,0 + brne .L8 + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + rjmp .L6 +.L8: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + breq .L9 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+3 + ldd r25,Y+4 + std Z+10,r24 + std Z+11,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldi r24,lo8(1) + std Z+3,r24 + lds r24,__iob + lds r25,(__iob)+1 + sbiw r24,0 + brne .L9 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob)+1,r25 + sts __iob,r24 +.L9: + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + breq .L11 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+1 + ldd r25,Y+2 + std Z+8,r24 + std Z+9,r25 + ldd r26,Y+7 + ldd r27,Y+8 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Z+3 + ori r24,lo8(2) + mov r31,r27 + mov r30,r26 + std Z+3,r24 + lds r24,__iob+2 + lds r25,(__iob+2)+1 + sbiw r24,0 + brne .L11 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob+2)+1,r25 + sts __iob+2,r24 + lds r24,__iob+4 + lds r25,(__iob+4)+1 + sbiw r24,0 + brne .L11 + ldd r24,Y+7 + ldd r25,Y+8 + sts (__iob+4)+1,r25 + sts __iob+4,r24 +.L11: + ldd r24,Y+7 + ldd r25,Y+8 + std Y+9,r24 + std Y+10,r25 +.L6: + ldd r24,Y+9 + ldd r25,Y+10 +/* epilogue: frame size=10 */ + adiw r28,10 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function fdevopen size 125 (106) */ + .size fdevopen, .-fdevopen + .comm __iob,6,1 +/* File "fdevopen.c": code 125 = 0x007d ( 106), prologues 10, epilogues 9 */ diff --git a/src/avrsample/libc/gcrt1.S b/src/avrsample/libc/gcrt1.S new file mode 100644 index 00000000..dfe4d2c5 --- /dev/null +++ b/src/avrsample/libc/gcrt1.S @@ -0,0 +1,177 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +#if (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3) +#error "GCC version >= 3.3 required" +#endif + +#include "macros.inc" + + .macro vector name + .if (. - __vectors < _VECTORS_SIZE) + .weak \name + .set \name, __bad_interrupt + XJMP \name + .endif + .endm + + .section .vectors,"ax",@progbits + .global __vectors + .func __vectors +__vectors: + XJMP __init + vector __vector_1 + vector __vector_2 + vector __vector_3 + vector __vector_4 + vector __vector_5 + vector __vector_6 + vector __vector_7 + vector __vector_8 + vector __vector_9 + vector __vector_10 + vector __vector_11 + vector __vector_12 + vector __vector_13 + vector __vector_14 + vector __vector_15 + vector __vector_16 + vector __vector_17 + vector __vector_18 + vector __vector_19 + vector __vector_20 + vector __vector_21 + vector __vector_22 + vector __vector_23 + vector __vector_24 + vector __vector_25 + vector __vector_26 + vector __vector_27 + vector __vector_28 + vector __vector_29 + vector __vector_30 + vector __vector_31 + vector __vector_32 + vector __vector_33 + vector __vector_34 + vector __vector_35 + vector __vector_36 + vector __vector_37 + vector __vector_38 + vector __vector_39 + .endfunc + + /* Handle unexpected interrupts (enabled and no handler), which + usually indicate a bug. Jump to the __vector_default function + if defined by the user, otherwise jump to the reset address. + + This must be in a different section, otherwise the assembler + will resolve "rjmp" offsets and there will be no relocs. */ + + .text + .global __bad_interrupt + .func __bad_interrupt +__bad_interrupt: + .weak __vector_default + .set __vector_default, __vectors + XJMP __vector_default + .endfunc + + .section .init0,"ax",@progbits + .weak __init +; .func __init +__init: + +#ifndef __AVR_ASM_ONLY__ + .weak __stack + .set __stack, RAMEND + + /* By default, malloc() uses the current value of the stack pointer + minus __malloc_margin as the highest available address. + + In some applications with external SRAM, the stack can be below + the data section (in the internal SRAM - faster), and __heap_end + should be set to the highest address available for malloc(). */ + .weak __heap_end + .set __heap_end, 0 + + .section .init2,"ax",@progbits + clr __zero_reg__ + out _SFR_IO_ADDR(SREG), __zero_reg__ + ldi r28,lo8(__stack) +#ifdef SPH + ldi r29,hi8(__stack) + out _SFR_IO_ADDR(SPH), r29 +#endif + out _SFR_IO_ADDR(SPL), r28 + +#if BIG_CODE + /* Only for >64K devices with RAMPZ, replaces the default code + provided by libgcc.S which is only linked in if necessary. */ + + .section .init4,"ax",@progbits + .global __do_copy_data +__do_copy_data: + ldi r17, hi8(__data_end) + ldi r26, lo8(__data_start) + ldi r27, hi8(__data_start) + ldi r30, lo8(__data_load_start) + ldi r31, hi8(__data_load_start) + + /* On the enhanced core, "elpm" with post-increment updates RAMPZ + automatically. Otherwise we have to handle it ourselves. */ + +#ifdef __AVR_ENHANCED__ + ldi r16, hh8(__data_load_start) +#else + ldi r16, hh8(__data_load_start - 0x10000) +.__do_copy_data_carry: + inc r16 +#endif + out _SFR_IO_ADDR(RAMPZ), r16 + rjmp .__do_copy_data_start +.__do_copy_data_loop: +#ifdef __AVR_ENHANCED__ + elpm r0, Z+ +#else + lpm +#endif + st X+, r0 +#ifndef __AVR_ENHANCED__ + adiw r30, 1 + brcs .__do_copy_data_carry +#endif +.__do_copy_data_start: + cpi r26, lo8(__data_end) + cpc r27, r17 + brne .__do_copy_data_loop +#endif /* BIG_CODE */ + +#endif /* !__AVR_ASM_ONLY__ */ + + .section .init9,"ax",@progbits + XJMP main +; .endfunc + diff --git a/src/avrsample/libc/gcrt1.i b/src/avrsample/libc/gcrt1.i new file mode 100644 index 00000000..bf13aa37 --- /dev/null +++ b/src/avrsample/libc/gcrt1.i @@ -0,0 +1,157 @@ +# 1 "gcrt1.S" +# 1 "" +# 1 "" +# 1 "gcrt1.S" +# 30 "gcrt1.S" +# 1 "macros.inc" 1 +# 33 "macros.inc" +# 1 "c:/WinAVR/avr/include/avr/io.h" 1 3 +# 81 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/sfr_defs.h" 1 3 +# 82 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 197 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/io4433.h" 1 3 +# 198 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 34 "macros.inc" 2 +# 124 "macros.inc" + .macro X_movw dest src + .if ((\src) - (\dest)) + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else + + + + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + + .endif + .endif + .endm +# 176 "macros.inc" + .macro LPM_R0_ZPLUS_INIT hhi + + + + + + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +# 202 "macros.inc" + lpm + adiw r30,1 + + + .endm + + .macro LPM_R0_ZP + + + + lpm + adiw r30,1 + + .endm +# 31 "gcrt1.S" 2 + + .macro vector name + .if (. - __vectors < 28) + .weak \name + .set \name, __bad_interrupt + rjmp \name + .endif + .endm + + .section .vectors,"ax",@progbits + .global __vectors + .func __vectors +__vectors: + rjmp __init + vector __vector_1 + vector __vector_2 + vector __vector_3 + vector __vector_4 + vector __vector_5 + vector __vector_6 + vector __vector_7 + vector __vector_8 + vector __vector_9 + vector __vector_10 + vector __vector_11 + vector __vector_12 + vector __vector_13 + vector __vector_14 + vector __vector_15 + vector __vector_16 + vector __vector_17 + vector __vector_18 + vector __vector_19 + vector __vector_20 + vector __vector_21 + vector __vector_22 + vector __vector_23 + vector __vector_24 + vector __vector_25 + vector __vector_26 + vector __vector_27 + vector __vector_28 + vector __vector_29 + vector __vector_30 + vector __vector_31 + vector __vector_32 + vector __vector_33 + vector __vector_34 + vector __vector_35 + vector __vector_36 + vector __vector_37 + vector __vector_38 + vector __vector_39 + .endfunc +# 93 "gcrt1.S" + .text + .global __bad_interrupt + .func __bad_interrupt +__bad_interrupt: + .weak __vector_default + .set __vector_default, __vectors + rjmp __vector_default + .endfunc + + .section .init0,"ax",@progbits + .weak __init +; .func __init +__init: + + + .weak __stack + .set __stack, 0xDF + + + + + + + + .weak __heap_end + .set __heap_end, 0 + + .section .init2,"ax",@progbits + clr r1 + out ((((0x3F) + 0x20)) - 0x20), r1 + ldi r28,lo8(__stack) + + + + + out ((((0x3D) + 0x20)) - 0x20), r28 +# 174 "gcrt1.S" + .section .init9,"ax",@progbits + rjmp main +; .endfunc diff --git a/src/avrsample/libc/macros.inc b/src/avrsample/libc/macros.inc new file mode 100644 index 00000000..29a8978a --- /dev/null +++ b/src/avrsample/libc/macros.inc @@ -0,0 +1,216 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +/* + macros.inc - macros for use in assembler sources + + Contributors: + Created by Marek Michalkiewicz + */ + +#include + +/* if not defined, assume old version with underscores */ +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +/* the assembler line separator (just in case it ever changes) */ +#define _L $ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +#define _U(x) CONCAT1(__USER_LABEL_PREFIX__, x) + +#define _R(x) CONCAT1(__REGISTER_PREFIX__, x) + +/* these should help to fix the "can't have function named r1()" bug + which may require adding '%' in front of register names. */ + +#define r0 _R(r0) +#define r1 _R(r1) +#define r2 _R(r2) +#define r3 _R(r3) +#define r4 _R(r4) +#define r5 _R(r5) +#define r6 _R(r6) +#define r7 _R(r7) +#define r8 _R(r8) +#define r9 _R(r9) +#define r10 _R(r10) +#define r11 _R(r11) +#define r12 _R(r12) +#define r13 _R(r13) +#define r14 _R(r14) +#define r15 _R(r15) +#define r16 _R(r16) +#define r17 _R(r17) +#define r18 _R(r18) +#define r19 _R(r19) +#define r20 _R(r20) +#define r21 _R(r21) +#define r22 _R(r22) +#define r23 _R(r23) +#define r24 _R(r24) +#define r25 _R(r25) +#define r26 _R(r26) +#define r27 _R(r27) +#define r28 _R(r28) +#define r29 _R(r29) +#define r30 _R(r30) +#define r31 _R(r31) + +#ifndef __tmp_reg__ +#define __tmp_reg__ r0 +#endif + +#ifndef __zero_reg__ +#define __zero_reg__ r1 +#endif + +#if __AVR_MEGA__ + #define XJMP jmp + #define XCALL call +#else + #define XJMP rjmp + #define XCALL rcall +#endif + +/* used only by fplib/strtod.S - libgcc internal function calls */ +#define PROLOGUE_SAVES(offset) XJMP (__prologue_saves__ + 2 * (offset)) +#define EPILOGUE_RESTORES(offset) XJMP (__epilogue_restores__ + 2 * (offset)) + +#if FLASHEND > 0x10000 /* ATmega103 */ + #define BIG_CODE 1 +#else + #define BIG_CODE 0 +#endif + +/* + Smart version of movw (use register numbers as arguments): + - uses "movw" if possible (supported by MCU, and both registers even) + - handles overlapping register pairs correctly + - no instruction generated if source and destination are the same + (may expand to 0, 1 or 2 instructions). + */ + + .macro X_movw dest src + .if ((\src) - (\dest)) /* different registers */ + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) /* src < dest */ + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else /* src > dest */ + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else /* both even -> overlap not possible */ +#if __AVR_ENHANCED__ + movw (\dest), (\src) +#else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 +#endif + .endif + .endif + .endm + +#if __AVR_ENHANCED__ + #define LOAD_X(lo, hi) movw r26, lo + #define LOAD_Z(lo, hi) movw r30, lo +#else + #define LOAD_X(lo, hi) \ + mov r26, lo _L\ + mov r27, hi + + #define LOAD_Z(lo, hi) \ + mov r30, lo _L\ + mov r31, hi +#endif + +/* LOAD_X_CONST(p) loads constant P into pointer register X. */ +#define LOAD_X_CONST(p) \ + ldi r26, lo8(p) _L\ + ldi r27, hi8(p) + +/* + LPM_R0_ZPLUS_INIT is used before the loop to initialize RAMPZ + for future devices with RAMPZ:Z auto-increment - [e]lpm r0, Z+. + + LPM_R0_ZPLUS_NEXT is used inside the loop to load a byte from + the program memory at [RAMPZ:]Z to R0, and increment [RAMPZ:]Z. + + The argument in both macros is a register that contains the + high byte (bits 23-16) of the address, bits 15-0 should be in + the Z (r31:r30) register. It can be any register except for: + r0, r1 (__zero_reg__ - assumed to always contain 0), r30, r31. + */ + + .macro LPM_R0_ZPLUS_INIT hhi +#if __AVR_ENHANCED__ + #if BIG_CODE + out _SFR_IO_ADDR(RAMPZ), \hhi + #endif +#endif + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +#if __AVR_ENHANCED__ + #if BIG_CODE + /* ELPM with RAMPZ:Z post-increment, load RAMPZ only once */ + elpm r0, Z+ + #else + /* LPM with Z post-increment, max 64K, no RAMPZ (ATmega83/161/163/32) */ + lpm r0, Z+ + #endif +#else + #if BIG_CODE + /* ELPM without post-increment, load RAMPZ each time (ATmega103) */ + out _SFR_IO_ADDR(RAMPZ), \hhi + elpm + adiw r30,1 + adc \hhi, __zero_reg__ + #else + /* LPM without post-increment, max 64K, no RAMPZ (AT90S*) */ + lpm + adiw r30,1 + #endif +#endif + .endm + + .macro LPM_R0_ZP +#if __AVR_ENHANCED__ + lpm r0, Z+ +#else + lpm + adiw r30,1 +#endif + .endm + diff --git a/src/avrsample/libc/malloc.c b/src/avrsample/libc/malloc.c new file mode 100644 index 00000000..6912b1e5 --- /dev/null +++ b/src/avrsample/libc/malloc.c @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2002 Joerg Wunsch + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id: malloc.c,v 1.6 2003/01/08 11:14:10 joerg_wunsch Exp $ + */ + +#include + +#include + +#ifndef __AVR__ + +/* + * When compiling this file natively on a host machine, it will + * include a main() that performs a regression test. This is meant as + * a debugging aid, where a normal source-level debugger will help to + * verify that the various allocator structures have the desired + * appearance at each stage. + * + * When cross-compiling with avr-gcc, it will compile into just the + * library functions malloc() and free(). + */ +#define MALLOC_TEST + +#endif /* !__AVR__ */ + +struct freelist { + size_t sz; + struct freelist *nx; +}; + +static char *brkval; +static struct freelist *flp; + +#ifdef MALLOC_TEST + +#define malloc mymalloc +#define free myfree +#define __heap_start mymem +#define __heap_end ((char *)0) + +char mymem[256]; +#define STACK_POINTER() (mymem + 256) + +#else /* !MALLOC_TEST */ + +extern char __heap_start; +extern char __heap_end; + +#define STACK_POINTER() ((char *)SP) + +#endif /* MALLOC_TEST */ + +/* + * Exported interface: + * + * When extending the data segment, the allocator will not try to go + * beyond the current stack limit, decreased by __malloc_margin bytes. + * Thus, all possible stack frames of interrupt routines that could + * interrupt the current function, plus all further nested function + * calls must not require more stack space, or they'll risk to collide + * with the data segment. + */ + +/* May be changed by the user only before the first malloc() call. */ + +size_t __malloc_margin = 32; +char *__malloc_heap_start = &__heap_start; +char *__malloc_heap_end = &__heap_end; + +void * +malloc(size_t len) +{ + struct freelist *fp1, *fp2; + char *cp; + size_t s; + + /* + * Our minimum chunk size is the size of a pointer (plus the + * size of the "sz" field, but we don't need to account for + * this), otherwise we could not possibly fit a freelist entry + * into the chunk later. + */ + if (len < sizeof(struct freelist) - sizeof(size_t)) + len = sizeof(struct freelist) - sizeof(size_t); + + /* + * First, walk the free list and try finding a chunk that + * would match exactly. If we found one, we are done. While + * walking, note down the size of the largest chunk we found + * that would still fit the request -- we need it for step 2. + * + */ + for (s = 0, fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1->sz == len) { + /* + * Found it. Disconnect the chunk from the + * freelist, and return it. + */ + if (fp2) + fp2->nx = fp1->nx; + else + flp = fp1->nx; + return &(fp1->nx); + } + if (fp1->sz > len) { + if (s == 0 || fp1->sz < s) + s = fp1->sz; + } + } + /* + * Step 2: If we found a chunk on the freelist that would fit + * (but was too large), look it up again and use it, since it + * is our closest match now. Since the freelist entry needs + * to be split into two entries then, watch out that the + * difference between the requested size and the size of the + * chunk found is large enough for another freelist entry; if + * not, just enlarge the request size to what we have found, + * and use the entire chunk. + */ + if (s) { + if (s - len < sizeof(struct freelist)) + len = s; + for (fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1->sz == s) { + if (len == s) { + /* + * Use entire chunk; same as + * above. + */ + if (fp2) + fp2->nx = fp1->nx; + else + flp = fp1->nx; + return &(fp1->nx); + } + /* + * Split them up. Note that we leave + * the first part as the new (smaller) + * freelist entry, and return the + * upper portion to the caller. This + * saves us the work to fix up the + * freelist chain; we just need to + * fixup the size of the current + * entry, and note down the size of + * the new chunk before returning it + * to the caller. + */ + cp = (char *)fp1; + s -= len; + cp += s; + fp2 = (struct freelist *)cp; + fp2->sz = len; + fp1->sz = s - sizeof(size_t); + return &(fp2->nx); + } + } + } + /* + * Step 3: If the request could not be satisfied from a + * freelist entry, just prepare a new chunk. This means we + * need to obtain more memory first. The largest address just + * not allocated so far is remembered in the brkval variable. + * Under Unix, the "break value" was the end of the data + * segment as dynamically requested from the operating system. + * Since we don't have an operating system, just make sure + * that we don't collide with the stack. + */ + if (brkval == 0) + brkval = __malloc_heap_start; + cp = __malloc_heap_end; + if (cp == 0) + cp = STACK_POINTER() - __malloc_margin; + if (brkval + len + sizeof(size_t) < cp) { + fp1 = (struct freelist *)brkval; + brkval += len + sizeof(size_t); + fp1->sz = len; + return &(fp1->nx); + } + /* + * Step 4: There's no help, just fail. :-/ + */ + return 0; +} + +void +free(void *p) +{ + struct freelist *fp1, *fp2, *fpnew; + char *cp1, *cp2, *cpnew; + + /* ISO C says free(NULL) must be a no-op */ + if (p == 0) + return; + + cpnew = p; + cpnew -= sizeof(size_t); + fpnew = (struct freelist *)cpnew; + fpnew->nx = 0; + + /* + * Trivial case first: if there's no freelist yet, our entry + * will be the only one on it. + */ + if (flp == 0) { + flp = fpnew; + return; + } + + /* + * Now, find the position where our new entry belongs onto the + * freelist. Try to aggregate the chunk with adjacent chunks + * if possible. + */ + for (fp1 = flp, fp2 = 0; + fp1; + fp2 = fp1, fp1 = fp1->nx) { + if (fp1 < fpnew) + continue; + cp1 = (char *)fp1; + fpnew->nx = fp1; + if ((char *)&(fpnew->nx) + fpnew->sz == cp1) { + /* upper chunk adjacent, assimilate it */ + fpnew->sz += fp1->sz + sizeof(size_t); + fpnew->nx = fp1->nx; + } + if (fp2 == 0) { + /* new head of freelist */ + flp = fpnew; + return; + } + break; + } + /* + * Note that we get here either if we hit the "break" above, + * or if we fell off the end of the loop. The latter means + * we've got a new topmost chunk. Either way, try aggregating + * with the lower chunk if possible. + */ + fp2->nx = fpnew; + cp2 = (char *)&(fp2->nx); + if (cp2 + fp2->sz == cpnew) { + /* lower junk adjacent, merge */ + fp2->sz += fpnew->sz + sizeof(size_t); + fp2->nx = fpnew->nx; + } +} + +#ifdef MALLOC_TEST + +#include +#include +#include + +void *handles[32]; +size_t sizes[32]; + + +void * +alloc(size_t s) +{ + void *p; + + if ((p = malloc(s)) == 0) + return 0; + memset(p, 0xd0, s); + return p; +} + +void +printfreelist(void) +{ + struct freelist *fp1; + int i; + + if (!flp) { + printf("no free list\n"); + return; + } + + for (i = 0, fp1 = flp; fp1; i++, fp1 = fp1->nx) { + printf("entry %d @ %u: size %u, next ", + i, (char *)fp1 - mymem, fp1->sz); + if (fp1->nx) + printf("%u\n", (char *)fp1->nx - mymem); + else + printf("NULL\n"); + } +} + +int +compare(const void *p1, const void *p2) +{ + return *((size_t *)p1) - *((size_t *)p2); +} + +void +printalloc(void) +{ + int i, j, k; + size_t sum, sum2; + void *sortedhandles[32]; + struct freelist *fp; + char *cp; + + for (i = j = k = sum = sum2 = 0; + i < sizeof handles / sizeof (void *); + i++) + if (sizes[i]) { + j++; + sum += sizes[i]; + if (handles[i]) { + k++; + sum2 += sizes[i]; + } + } + printf("brkval: %d, %d request%s => sum %u bytes " + "(actually %d reqs => %u bytes)\n", + (char *)brkval - mymem, j, j == 1? "": "s", sum, k, sum2); + memcpy(sortedhandles, handles, sizeof sortedhandles); + qsort(sortedhandles, 32, sizeof(void *), compare); + for (i = j = 0; i < sizeof sortedhandles / sizeof (void *); i++) + if ((cp = sortedhandles[i])) { + cp -= sizeof(size_t); + fp = (struct freelist *)cp; + printf("block %d @ %u: %u bytes\n", + j, (char *)&fp->nx - mymem, fp->sz); + j++; + } + +} + + +int +main(void) +{ + int i, j, k, l, m, om, p, f; + size_t s; + + srand(time(0) ^ getpid()); + + for (k = 0; k < 100; k++) { + memset(handles, 0, sizeof handles); + memset(sizes, 0, sizeof sizes); + + j = rand() % 16 + 15; + l = rand() % 80 + 7; + + for (i = s = 0; i < j && s < 256; i++) { + sizes[i] = rand() % l + 1; + s += sizes[i]; + } + j = i; + for (m = om = 1, p = 1, f = 0; m < 1000; m++) { + for (i = s = 0; i < j; i++) + if (handles[i]) + s++; + if (s == j) + break; + + if (m / om > 10) { + p <<= 1; + p |= 1; + } + + for (i = 0; i < j; i++) + if (rand() & p) { + if (!handles[i] && + (handles[i] = alloc(sizes[i])) == 0) + f++; + } + for (i = 0; i < j; i++) + if (rand() & 1) { + free(handles[i]); + handles[i] = 0; + } + } + if (f) + printf("%d alloc failure%s total\n", + f, f == 1? "": "s"); + printf("After alloc:\n"); + printalloc(); + printfreelist(); + for (i = 0; i < j; i++) + free(handles[i]); + printf("After cleanup:\n"); + printfreelist(); + } + + return 0; +} + +#endif /* MALLOC_TEST */ + diff --git a/src/avrsample/libc/malloc.s b/src/avrsample/libc/malloc.s new file mode 100644 index 00000000..610f133a --- /dev/null +++ b/src/avrsample/libc/malloc.s @@ -0,0 +1,600 @@ + .file "malloc.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss +.global __malloc_margin + .data + .type __malloc_margin, @object + .size __malloc_margin, 2 +__malloc_margin: + .word 32 +.global __malloc_heap_start + .type __malloc_heap_start, @object + .size __malloc_heap_start, 2 +__malloc_heap_start: + .word __heap_start +.global __malloc_heap_end + .type __malloc_heap_end, @object + .size __malloc_heap_end, 2 +__malloc_heap_end: + .word __heap_end + .text +.global malloc + .type malloc, @function +malloc: +/* prologue: frame size=14 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + ldd r24,Y+1 + ldd r25,Y+2 + cpi r24,2 + cpc r25,__zero_reg__ + brsh .L7 + ldi r24,lo8(2) + ldi r25,hi8(2) + std Y+1,r24 + std Y+2,r25 +.L7: + std Y+9,__zero_reg__ + std Y+10,__zero_reg__ + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L8: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L11 + rjmp .L9 +.L11: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+1 + ldd r25,Y+2 + cp r18,r24 + cpc r19,r25 + brne .L12 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + breq .L13 + ldd r24,Y+5 + ldd r25,Y+6 + std Y+13,r24 + std Y+14,r25 + ldd r26,Y+3 + ldd r27,Y+4 + mov r31,r27 + mov r30,r26 + ldd r24,Z+2 + ldd r25,Z+3 + ldd r30,Y+13 + ldd r31,Y+14 + std Z+2,r24 + std Z+3,r25 + rjmp .L14 +.L13: + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + sts (flp)+1,r25 + sts flp,r24 +.L14: + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L12: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+1 + ldd r25,Y+2 + cp r24,r18 + cpc r25,r19 + brsh .L10 + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,0 + breq .L17 + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brlo .L17 + rjmp .L10 +.L17: + ldd r30,Y+3 + ldd r31,Y+4 + ld r24,Z + ldd r25,Z+1 + std Y+9,r24 + std Y+10,r25 +.L10: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L8 +.L9: + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,0 + brne .+2 + rjmp .L18 + ldd r24,Y+9 + ldd r25,Y+10 + ldd r18,Y+1 + ldd r19,Y+2 + sub r24,r18 + sbc r25,r19 + cpi r24,4 + cpc r25,__zero_reg__ + brsh .L19 + ldd r24,Y+9 + ldd r25,Y+10 + std Y+1,r24 + std Y+2,r25 +.L19: + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L20: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L23 + rjmp .L18 +.L23: + ldd r30,Y+3 + ldd r31,Y+4 + ld r18,Z + ldd r19,Z+1 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + breq .+2 + rjmp .L22 + ldd r18,Y+1 + ldd r19,Y+2 + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brne .L25 + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + breq .L26 + ldd r24,Y+5 + ldd r25,Y+6 + std Y+13,r24 + std Y+14,r25 + ldd r26,Y+3 + ldd r27,Y+4 + mov r31,r27 + mov r30,r26 + ldd r24,Z+2 + ldd r25,Z+3 + ldd r30,Y+13 + ldd r31,Y+14 + std Z+2,r24 + std Z+3,r25 + rjmp .L27 +.L26: + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + sts (flp)+1,r25 + sts flp,r24 +.L27: + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L25: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+7,r24 + std Y+8,r25 + ldd r18,Y+9 + ldd r19,Y+10 + ldd r24,Y+1 + ldd r25,Y+2 + sub r18,r24 + sbc r19,r25 + mov r25,r19 + mov r24,r18 + std Y+9,r24 + std Y+10,r25 + ldd r18,Y+7 + ldd r19,Y+8 + ldd r24,Y+9 + ldd r25,Y+10 + add r24,r18 + adc r25,r19 + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r24,Y+1 + ldd r25,Y+2 + st Z,r24 + std Z+1,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Y+9 + ldd r25,Y+10 + sbiw r24,2 + st Z,r24 + std Z+1,r25 + ldd r24,Y+5 + ldd r25,Y+6 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L22: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L20 +.L18: + lds r24,brkval + lds r25,(brkval)+1 + sbiw r24,0 + brne .L28 + lds r24,__malloc_heap_start + lds r25,(__malloc_heap_start)+1 + sts (brkval)+1,r25 + sts brkval,r24 +.L28: + lds r24,__malloc_heap_end + lds r25,(__malloc_heap_end)+1 + std Y+7,r24 + std Y+8,r25 + ldd r24,Y+7 + ldd r25,Y+8 + sbiw r24,0 + brne .L29 + lds r24,93 + mov r18,r24 + clr r19 + lds r24,__malloc_margin + lds r25,(__malloc_margin)+1 + sub r18,r24 + sbc r19,r25 + mov r25,r19 + mov r24,r18 + std Y+7,r24 + std Y+8,r25 +.L29: + lds r18,brkval + lds r19,(brkval)+1 + ldd r24,Y+1 + ldd r25,Y+2 + add r24,r18 + adc r25,r19 + mov r18,r24 + mov r19,r25 + subi r18,lo8(-(2)) + sbci r19,hi8(-(2)) + ldd r24,Y+7 + ldd r25,Y+8 + cp r18,r24 + cpc r19,r25 + brsh .L30 + lds r24,brkval + lds r25,(brkval)+1 + std Y+3,r24 + std Y+4,r25 + lds r18,brkval + lds r19,(brkval)+1 + ldd r24,Y+1 + ldd r25,Y+2 + add r24,r18 + adc r25,r19 + adiw r24,2 + sts (brkval)+1,r25 + sts brkval,r24 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Y+1 + ldd r25,Y+2 + st Z,r24 + std Z+1,r25 + ldd r24,Y+3 + ldd r25,Y+4 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + rjmp .L6 +.L30: + std Y+11,__zero_reg__ + std Y+12,__zero_reg__ +.L6: + ldd r24,Y+11 + ldd r25,Y+12 +/* epilogue: frame size=14 */ + adiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function malloc size 354 (335) */ + .size malloc, .-malloc +.global free + .type free, @function +free: +/* prologue: frame size=14 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + std Y+2,r25 + ldd r24,Y+1 + ldd r25,Y+2 + sbiw r24,0 + brne .L32 + rjmp .L31 +.L32: + ldd r24,Y+1 + ldd r25,Y+2 + std Y+13,r24 + std Y+14,r25 + ldd r24,Y+13 + ldd r25,Y+14 + sbiw r24,2 + std Y+13,r24 + std Y+14,r25 + ldd r24,Y+13 + ldd r25,Y+14 + std Y+7,r24 + std Y+8,r25 + ldd r30,Y+7 + ldd r31,Y+8 + std Z+2,__zero_reg__ + std Z+3,__zero_reg__ + lds r24,flp + lds r25,(flp)+1 + sbiw r24,0 + brne .L33 + ldd r24,Y+7 + ldd r25,Y+8 + sts (flp)+1,r25 + sts flp,r24 + rjmp .L31 +.L33: + lds r24,flp + lds r25,(flp)+1 + std Y+3,r24 + std Y+4,r25 + std Y+5,__zero_reg__ + std Y+6,__zero_reg__ +.L34: + ldd r24,Y+3 + ldd r25,Y+4 + sbiw r24,0 + brne .L37 + rjmp .L35 +.L37: + ldd r18,Y+3 + ldd r19,Y+4 + ldd r24,Y+7 + ldd r25,Y+8 + cp r18,r24 + cpc r19,r25 + brsh .L38 + rjmp .L36 +.L38: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+9,r24 + std Y+10,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Y+3 + ldd r25,Y+4 + std Z+2,r24 + std Z+3,r25 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r18,Y+7 + ldd r19,Y+8 + ld r24,Z + ldd r25,Z+1 + add r24,r18 + adc r25,r19 + mov r18,r24 + mov r19,r25 + subi r18,lo8(-(2)) + sbci r19,hi8(-(2)) + ldd r24,Y+9 + ldd r25,Y+10 + cp r18,r24 + cpc r19,r25 + brne .L39 + ldd r20,Y+7 + ldd r21,Y+8 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r26,Y+3 + ldd r27,Y+4 + ld r18,Z + ldd r19,Z+1 + ld r24,X+ + ld r25,X + add r24,r18 + adc r25,r19 + adiw r24,2 + mov r31,r21 + mov r30,r20 + st Z,r24 + std Z+1,r25 + ldd r26,Y+7 + ldd r27,Y+8 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + mov r31,r27 + mov r30,r26 + std Z+2,r24 + std Z+3,r25 +.L39: + ldd r24,Y+5 + ldd r25,Y+6 + sbiw r24,0 + brne .L35 + ldd r24,Y+7 + ldd r25,Y+8 + sts (flp)+1,r25 + sts flp,r24 + rjmp .L31 +.L36: + ldd r24,Y+3 + ldd r25,Y+4 + std Y+5,r24 + std Y+6,r25 + ldd r30,Y+3 + ldd r31,Y+4 + ldd r24,Z+2 + ldd r25,Z+3 + std Y+3,r24 + std Y+4,r25 + rjmp .L34 +.L35: + ldd r30,Y+5 + ldd r31,Y+6 + ldd r24,Y+7 + ldd r25,Y+8 + std Z+2,r24 + std Z+3,r25 + ldd r24,Y+5 + ldd r25,Y+6 + adiw r24,2 + std Y+11,r24 + std Y+12,r25 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r18,Y+11 + ldd r19,Y+12 + ld r24,Z + ldd r25,Z+1 + add r18,r24 + adc r19,r25 + ldd r24,Y+13 + ldd r25,Y+14 + cp r18,r24 + cpc r19,r25 + brne .L31 + ldd r20,Y+5 + ldd r21,Y+6 + ldd r30,Y+5 + ldd r31,Y+6 + ldd r26,Y+7 + ldd r27,Y+8 + ld r18,Z + ldd r19,Z+1 + ld r24,X+ + ld r25,X + add r24,r18 + adc r25,r19 + adiw r24,2 + mov r31,r21 + mov r30,r20 + st Z,r24 + std Z+1,r25 + ldd r26,Y+5 + ldd r27,Y+6 + ldd r30,Y+7 + ldd r31,Y+8 + ldd r24,Z+2 + ldd r25,Z+3 + mov r31,r27 + mov r30,r26 + std Z+2,r24 + std Z+3,r25 +.L31: +/* epilogue: frame size=14 */ + adiw r28,14 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function free size 204 (185) */ + .size free, .-free + .lcomm brkval,2 + .lcomm flp,2 +/* File "malloc.c": code 558 = 0x022e ( 520), prologues 20, epilogues 18 */ diff --git a/src/avrsample/libc/memset.S b/src/avrsample/libc/memset.S new file mode 100644 index 00000000..cc049cfb --- /dev/null +++ b/src/avrsample/libc/memset.S @@ -0,0 +1,78 @@ +/* Copyright (c) 2002, Marek Michalkiewicz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +#include "macros.inc" + +#define dest_hi r25 +#define dest_lo r24 +; #define val_hi r23 +#define val_lo r22 +#define len_hi r21 +#define len_lo r20 + +/** \ingroup avr_string + \fn void *memset(void *dest, int val, size_t len) + \brief Fill memory with a constant byte. + + The memset() function fills the first len bytes of the memory area pointed + to by dest with the constant byte val. + + \returns The memset() function returns a pointer to the memory area dest. */ + + .text + .global _U(memset) + .type _U(memset), @function +_U(memset): + LOAD_X(dest_lo, dest_hi) +#if OPTIMIZE_SPEED +; 11 words, (12 + len * 4 - (len & 1)) cycles + sbrs len_lo, 0 + rjmp .memset_start + rjmp .memset_odd +.memset_loop: + st X+, val_lo +.memset_odd: + st X+, val_lo +.memset_start: + subi len_lo, lo8(2) + sbci len_hi, hi8(2) +#else +; 8 words, (11 + len * 6) cycles + rjmp .memset_start +.memset_loop: + st X+, val_lo +.memset_start: + subi len_lo, lo8(1) + sbci len_hi, hi8(1) +#endif + brcc .memset_loop +; return dest (unchanged) + ret +.memset_end: + .size _U(memset), .memset_end - _U(memset) + diff --git a/src/avrsample/libc/memset.i b/src/avrsample/libc/memset.i new file mode 100644 index 00000000..f05cb503 --- /dev/null +++ b/src/avrsample/libc/memset.i @@ -0,0 +1,86 @@ +# 1 "memset.S" +# 1 "" +# 1 "" +# 1 "memset.S" +# 29 "memset.S" +# 1 "macros.inc" 1 +# 33 "macros.inc" +# 1 "c:/WinAVR/avr/include/avr/io.h" 1 3 +# 81 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/sfr_defs.h" 1 3 +# 82 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 197 "c:/WinAVR/avr/include/avr/io.h" 3 +# 1 "c:/WinAVR/avr/include/avr/io4433.h" 1 3 +# 198 "c:/WinAVR/avr/include/avr/io.h" 2 3 +# 34 "macros.inc" 2 +# 124 "macros.inc" + .macro X_movw dest src + .if ((\src) - (\dest)) + .if (((\src) | (\dest)) & 0x01) + .if (((\src)-(\dest)) & 0x80) + mov (\dest)+1, (\src)+1 + mov (\dest), (\src) + .else + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + .endif + .else + + + + mov (\dest), (\src) + mov (\dest)+1, (\src)+1 + + .endif + .endif + .endm +# 176 "macros.inc" + .macro LPM_R0_ZPLUS_INIT hhi + + + + + + .endm + + .macro LPM_R0_ZPLUS_NEXT hhi +# 202 "macros.inc" + lpm + adiw r30,1 + + + .endm + + .macro LPM_R0_ZP + + + + lpm + adiw r30,1 + + .endm +# 30 "memset.S" 2 + + + +; #define val_hi r23 +# 47 "memset.S" + .text + .global memset + .type memset, @function +memset: + mov r26, r24 $ mov r27, r25 +# 65 "memset.S" +; 8 words, (11 + len * 6) cycles + rjmp .memset_start +.memset_loop: + st X+, r22 +.memset_start: + subi r20, lo8(1) + sbci r21, hi8(1) + + brcc .memset_loop +; return dest (unchanged) + ret +.memset_end: + .size memset, .memset_end - memset diff --git a/src/avrsample/libc/stdio_private.h b/src/avrsample/libc/stdio_private.h new file mode 100644 index 00000000..16a8fbef --- /dev/null +++ b/src/avrsample/libc/stdio_private.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2002, Joerg Wunsch + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/* $Id: stdio_private.h,v 1.6 2003/01/07 22:17:24 joerg_wunsch Exp $ */ + +#include +#include + +struct __file { + char *buf; /* buffer pointer */ + unsigned char unget; /* ungetc() buffer */ + uint8_t flags; /* flags, see below */ +#define __SRD 0x0001 /* OK to read */ +#define __SWR 0x0002 /* OK to write */ +#define __SSTR 0x0004 /* this is an sprintf/snprintf string */ +#define __SPGM 0x0008 /* fmt string is in progmem */ +#define __SERR 0x0010 /* found error */ +#define __SEOF 0x0020 /* found EOF */ +#define __SUNGET 0x040 /* ungetc() happened */ +#if 0 +/* possible future extensions, will require uint16_t flags */ +#define __SRW 0x0080 /* open for reading & writing */ +#define __SLBF 0x0100 /* line buffered */ +#define __SNBF 0x0200 /* unbuffered */ +#define __SMBF 0x0400 /* buf is from malloc */ +#endif + int size; /* size of buffer */ + int len; /* characters read or written so far */ + int (*put)(char); /* function to write one char to device */ + int (*get)(void); /* function to read one char from device */ +}; + +/* values for PRINTF_LEVEL */ +#define PRINTF_MIN 1 +#define PRINTF_STD 2 +#define PRINTF_FLT 3 + +/* values for SCANF_LEVEL */ +#define SCANF_MIN 1 +#define SCANF_STD 2 +#define SCANF_FLT 3 diff --git a/src/avrsample/makefile b/src/avrsample/makefile new file mode 100644 index 00000000..eda5bc89 --- /dev/null +++ b/src/avrsample/makefile @@ -0,0 +1,39 @@ +# Simple Makefile +# Volker Oth (c) 1999 + + +########### change this lines according to your project ################## + +#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) + MCU = at90s4433 + +#put the name of the target file here (without extension) + TRG = hello + +#put your C sourcefiles here +# SRC = uart.c $(TRG).c + SRC = $(TRG).c + +#put additional assembler source file here + ASRC = + +#additional libraries and object files to link + LIB = + +#additional includes to compile + INC = + +#compiler flags +# CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + CPFLAGS = -g -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + +#linker flags + LDFLAGS = -Wl,-Map=$(TRG).map,--cref + +########### you should not need to change the following line ############# +include avr_make + +###### dependecies, add any dependencies you need here ################### + +#uart.o : uart.c uart.h +$(TRG).o : $(TRG).c diff --git a/src/avrsample/makefile% b/src/avrsample/makefile% new file mode 100644 index 00000000..911d00aa --- /dev/null +++ b/src/avrsample/makefile% @@ -0,0 +1,39 @@ +# Simple Makefile +# Volker Oth (c) 1999 + + +########### change this lines according to your project ################## + +#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) + MCU = at90s4433 + +#put the name of the target file here (without extension) + TRG = hello + +#put your C sourcefiles here +# SRC = uart.c $(TRG).c + SRC = $(TRG).c + +#put additional assembler source file here + ASRC = + +#additional libraries and object files to link + LIB = + +#additional includes to compile + INC = + +#compiler flags +# CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + +#linker flags + LDFLAGS = -Wl,-Map=$(TRG).map,--cref + +########### you should not need to change the following line ############# +include avr_make + +###### dependecies, add any dependencies you need here ################### + +#uart.o : uart.c uart.h +$(TRG).o : $(TRG).c diff --git a/src/avrsample/n.bat b/src/avrsample/n.bat new file mode 100644 index 00000000..2ecd204f --- /dev/null +++ b/src/avrsample/n.bat @@ -0,0 +1,2 @@ +avr-gcc -mmcu=at90s4433 -Wa,-a=nick -Wl,--oformat,ihex,-M hello.c -o hello.hex > hello.map +copy hello.hex a:\ diff --git a/src/avrsample/n.sh b/src/avrsample/n.sh new file mode 100644 index 00000000..556d7779 --- /dev/null +++ b/src/avrsample/n.sh @@ -0,0 +1,2 @@ +#!/bin/sh +avr-gcc -mmcu=at90s4433 -Wl,--oformat,ihex hello.c -o hello.hex diff --git a/src/avrsample/nick b/src/avrsample/nick new file mode 100644 index 00000000..2ab5e80c --- /dev/null +++ b/src/avrsample/nick @@ -0,0 +1,123 @@ +GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 1 + + + 1 .file "gcctest7.c" + 2 .arch at90s4433 + 3 __SREG__ = 0x3f + 4 __SP_H__ = 0x3e + 5 __SP_L__ = 0x3d + 6 __tmp_reg__ = 0 + 7 __zero_reg__ = 1 + 8 .global __do_copy_data + 9 .global __do_clear_bss + 10 .section .progmem.data,"a",@progbits + 11 .type __c.0, @object + 12 .size __c.0, 14 + 13 __c.0: + 14 0000 4865 6C6C .string "Hello World !" + 14 6F20 576F + 14 726C 6420 + 14 2100 + 15 .type __c.1, @object + 16 .size __c.1, 17 + 17 __c.1: + 18 000e 5072 6573 .string "Press any key..." + 18 7320 616E + 18 7920 6B65 + 18 792E 2E2E + 18 00 + 19 .type __c.2, @object + 20 .size __c.2, 14 + 21 __c.2: + 22 001f 596F 7520 .string "You pressed '" + 22 7072 6573 + 22 7365 6420 + 22 2700 + 23 .type __c.3, @object + 24 .size __c.3, 14 + 25 __c.3: + 26 002d 2720 7768 .string "' which is 0x" + 26 6963 6820 + 26 6973 2030 + 26 7800 + 27 .type __c.4, @object + 28 .size __c.4, 17 + 29 __c.4: + 30 003b 2069 6E20 .string " in hexadecimal." + 30 6865 7861 + 30 6465 6369 + 30 6D61 6C2E + 30 00 + 31 .text + 32 .global main + 33 .type main, @function + 34 main: + 35 /* prologue: frame size=1 */ + 36 0000 C0E0 ldi r28,lo8(__stack - 1) + 37 0002 D0E0 ldi r29,hi8(__stack - 1) + 38 0004 DEBF out __SP_H__,r29 + 39 0006 CDBF out __SP_L__,r28 + 40 /* prologue end (size=4) */ + GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 2 + + + 41 0008 00D0 rcall UART_Init + 42 000a 80E0 ldi r24,lo8(__c.0) + 43 000c 90E0 ldi r25,hi8(__c.0) + 44 000e 00D0 rcall UART_PrintfProgStr + 45 0010 00D0 rcall UART_PrintfEndOfLine + 46 .L3: + 47 0012 80E0 ldi r24,lo8(__c.1) + 48 0014 90E0 ldi r25,hi8(__c.1) + 49 0016 00D0 rcall UART_PrintfProgStr + 50 0018 00D0 rcall UART_PrintfEndOfLine + 51 001a 00D0 rcall UART_ReceiveByte + 52 001c 8983 std Y+1,r24 + 53 001e 80E0 ldi r24,lo8(__c.2) + 54 0020 90E0 ldi r25,hi8(__c.2) + 55 0022 00D0 rcall UART_PrintfProgStr + 56 0024 8981 ldd r24,Y+1 + 57 0026 00D0 rcall UART_SendByte + 58 0028 80E0 ldi r24,lo8(__c.3) + 59 002a 90E0 ldi r25,hi8(__c.3) + 60 002c 00D0 rcall UART_PrintfProgStr + 61 002e 8981 ldd r24,Y+1 + 62 0030 00D0 rcall UART_Printfu08 + 63 0032 80E0 ldi r24,lo8(__c.4) + 64 0034 90E0 ldi r25,hi8(__c.4) + 65 0036 00D0 rcall UART_PrintfProgStr + 66 0038 00D0 rcall UART_PrintfEndOfLine + 67 003a EBCF rjmp .L3 + 68 /* epilogue: frame size=1 */ + 69 /* epilogue: noreturn */ + 70 /* epilogue end (size=0) */ + 71 /* function main size 30 (26) */ + 72 .size main, .-main + 73 /* File "gcctest7.c": code 30 = 0x001e ( 26), prologues 4, epilogues 0 */ + GAS LISTING C:\cygwin\tmp/ccmeaaaa.s page 3 + + +DEFINED SYMBOLS + *ABS*:00000000 gcctest7.c + *ABS*:0000003f __SREG__ + *ABS*:0000003e __SP_H__ + *ABS*:0000003d __SP_L__ + *ABS*:00000000 __tmp_reg__ + *ABS*:00000001 __zero_reg__ +C:\cygwin\tmp/ccmeaaaa.s:13 .progmem.data:00000000 __c.0 +C:\cygwin\tmp/ccmeaaaa.s:17 .progmem.data:0000000e __c.1 +C:\cygwin\tmp/ccmeaaaa.s:21 .progmem.data:0000001f __c.2 +C:\cygwin\tmp/ccmeaaaa.s:25 .progmem.data:0000002d __c.3 +C:\cygwin\tmp/ccmeaaaa.s:29 .progmem.data:0000003b __c.4 +C:\cygwin\tmp/ccmeaaaa.s:34 .text:00000000 main + +UNDEFINED SYMBOLS +__do_copy_data +__do_clear_bss +__stack +UART_Init +UART_PrintfProgStr +UART_PrintfEndOfLine +UART_ReceiveByte +UART_SendByte +UART_Printfu08 diff --git a/src/avrsample/out.s b/src/avrsample/out.s new file mode 100644 index 00000000..b4b3ac85 --- /dev/null +++ b/src/avrsample/out.s @@ -0,0 +1,187 @@ +#arch AT90S8515 +#include "avr.inc" + + seg abs=0x0 flash.code0 + + add r12, r16 ; 0000 + eor r12, r16 ; 0002 + eor r28, r0 ; 0004 + eor r12, r0 ; 0006 + and r28, r16 ; 0008 + and r12, r16 ; 000A + and r28, r0 ; 000C + and r12, r0 ; 000E + adc r28, r16 ; 0010 + adc r12, r16 ; 0012 + adc r28, r0 ; 0014 + adc r12, r0 ; 0016 + sub r28, r16 ; 0018 + sub r12, r16 ; 001A + cpse r18, r4 ; 001C + adc r27, r30 ; 001E + rjmp -38 ; 0020, Dest: FFFFFFFC + rjmp -1154 ; 0022, Dest: FFFFFBA2 + cpse r6, r0 ; 0024 + dc.W 0x00E1 ; 0026 + in r6, 0x0 ; 0028 + or r14, r2 ; 002A + + brbs 0, 120 ; 002C, Dest: 00A6 + ;brcs 120 ; 002C, Dest: 00A6 + ;brlo 120 ; 002C, Dest: 00A6 + + dc.W 0x03C0 ; 002E + rjmp -3798 ; 0030, Dest: FFFFF15C + cpi r25, 0x16 ; 0032 + add r25, r2 ; 0034 + dc.W 0x0231 ; 0036 + in r16, 0x7 ; 0038 + rcall 1006 ; 003A, Dest: 042A + cpse r6, r0 ; 003C + dc.W 0x02E1 ; 003E + in r6, 0x0 ; 0040 + dc.W 0x01C0 ; 0042 + adc r25, r2 ; 0044 + dc.W 0x0231 ; 0046 + in r16, 0x7 ; 0048 + ldi r31, 0x17 ; 004A + + ori r28, 0xB0 ; 004C + ;sbr r28, 0xB0 ; 004C + + rcall -3170 ; 004E, Dest: FFFFF3EE + rjmp -218 ; 0050, Dest: FFFFFF78 + rcall -218 ; 0052, Dest: FFFFFF7A + rjmp -1170 ; 0054, Dest: FFFFFBC4 + rcall -658 ; 0056, Dest: FFFFFDC6 + and r25, r23 ; 0058 + add r27, r22 ; 005A + bld r9, 4 ; 005C + rcall -642 ; 005E, Dest: FFFFFDDE + add r27, r30 ; 0060 + rjmp -1154 ; 0062, Dest: FFFFFBE2 + ldd r24, Z+19 ; 0064 + sbi 0x10, 3 ; 0066 + ldd r24, Z+17 ; 0068 + sbi 0x10, 1 ; 006A + dc.W 0xF92F ; 006C + ldi r18, 0x8F ; 006E + and r8, r1 ; 0070 + or r24, r19 ; 0072 + dc.W 0x0196 ; 0074 + ldd r24, Z+19 ; 0076 + sbi 0x10, 3 ; 0078 + and r2, r19 ; 007A + sbc r31, r4 ; 007C + dc.W 0x03C0 ; 007E + std Z+17, r24 ; 0080 + add r13, r0 ; 0082 + + brbs 7, 114 ; 0084, Dest: 00F8 + ;brie 114 ; 0084, Dest: 00F8 + + ld r14, Z ; 0086 + ;ldd r14, Z+0 ; 0086 + + lds r14, 0x2396 ; 0088 + add r27, r22 ; 008C + bld r9, 4 ; 008E + rcall -642 ; 0090, Dest: FFFFFE10 + add r27, r30 ; 0092 + rjmp -1154 ; 0094, Dest: FFFFFC14 + rcall -222 ; 0096, Dest: FFFFFFBA + rjmp -222 ; 0098, Dest: FFFFFFBC + sbc r9, r5 ; 009A + rjmp -218 ; 009C, Dest: FFFFFFC4 + rcall -218 ; 009E, Dest: FFFFFFC6 + rjmp -1170 ; 00A0, Dest: FFFFFC10 + rcall -658 ; 00A2, Dest: FFFFFE12 + and r25, r7 ; 00A4 + add r27, r22 ; 00A6 + bld r9, 4 ; 00A8 + rcall -642 ; 00AA, Dest: FFFFFE2A + add r27, r30 ; 00AC + rjmp -1154 ; 00AE, Dest: FFFFFC2E + ldd r24, Z+19 ; 00B0 + ldd r9, Z+1 ; 00B2 + or r16, r16 ; 00B4 + sbic 0x4, 7 ; 00B6 + ldd r7, Z+2 ; 00B8 + lds r7, 0x0097 ; 00BA + rjmp -3098 ; 00BE, Dest: FFFFF4A6 + ldd r24, Z+17 ; 00C0 + ldd r9, Z+3 ; 00C2 + mov r0, r0 ; 00C4 + + ld r14, Z ; 00C6 + ;ldd r14, Z+0 ; 00C6 + + lds r14, 0x2196 ; 00C8 + add r27, r22 ; 00CC + bld r9, 4 ; 00CE + rcall -642 ; 00D0, Dest: FFFFFE50 + add r27, r30 ; 00D2 + rjmp -1154 ; 00D4, Dest: FFFFFC54 + rcall -222 ; 00D6, Dest: FFFFFFFA + rjmp -222 ; 00D8, Dest: FFFFFFFC + sbc r9, r5 ; 00DA + rjmp -218 ; 00DC, Dest: 0004 + rcall -218 ; 00DE, Dest: 0006 + rjmp -1170 ; 00E0, Dest: FFFFFC50 + rcall -658 ; 00E2, Dest: FFFFFE52 + and r9, r23 ; 00E4 + add r27, r22 ; 00E6 + bld r9, 4 ; 00E8 + rcall -642 ; 00EA, Dest: FFFFFE6A + add r27, r30 ; 00EC + rjmp -1154 ; 00EE, Dest: FFFFFC6E + ldd r9, Z+1 ; 00F0 + or r16, r16 ; 00F2 + ldd r2, Z+19 ; 00F4 + mov r15, r0 ; 00F6 + std Y+31, r30 ; 00F8 + dc.W 0x9FEF ; 00FA + ldd r24, Z+19 ; 00FC + sbi 0x10, 3 ; 00FE + cpc r28, r0 ; 0100 + ldd r9, Z+1 ; 0102 + mov r0, r0 ; 0104 + sbic 0x4, 7 ; 0106 + ldd r24, Z+19 ; 0108 + sbi 0x10, 3 ; 010A + ldd r24, Z+17 ; 010C + sbi 0x10, 1 ; 010E + and r9, r22 ; 0110 + add r27, r22 ; 0112 + bld r9, 4 ; 0114 + rcall -642 ; 0116, Dest: FFFFFE96 + add r27, r30 ; 0118 + rjmp -1154 ; 011A, Dest: FFFFFC9A + rcall -222 ; 011C, Dest: 0040 + rjmp -222 ; 011E, Dest: 0042 + sbc r9, r5 ; 0120 + dc.W 0x9FE1 ; 0122 + rcall 448 ; 0124, Dest: 02E6 + rcall -642 ; 0126, Dest: FFFFFEA6 + rjmp -1154 ; 0128, Dest: FFFFFCA8 + + andi r29, 0xDF ; 012A + ;cbr r29, 0xDF ; 012A + + ldd r13, Y+23 ; 012C + ldd r14, Z+4 ; 012E + ldd r9, Z+3 ; 0130 + or r16, r16 ; 0132 + ldd r14, Z+17 ; 0134 + ldd r9, Z+3 ; 0136 + or r0, r16 ; 0138 + std Z+12, r30 ; 013A + ldd r9, Z+3 ; 013C + or r16, r0 ; 013E + ldi r30, 0x0 ; 0140 + lds r6, 0x85DF ; 0142 + dc.W 0xFFCF ; 0146 + + ori r16, 0x10 ; 0148 + ;sbr r16, 0x10 ; 0148 + diff --git a/src/avrsample/r.bat b/src/avrsample/r.bat new file mode 100644 index 00000000..43c4d94d --- /dev/null +++ b/src/avrsample/r.bat @@ -0,0 +1 @@ +revava -e hello.hex -o hello.s diff --git a/src/avrsample/r.sh b/src/avrsample/r.sh new file mode 100644 index 00000000..43c4d94d --- /dev/null +++ b/src/avrsample/r.sh @@ -0,0 +1 @@ +revava -e hello.hex -o hello.s diff --git a/src/avrsample/x.bat b/src/avrsample/x.bat new file mode 100644 index 00000000..fbce676a --- /dev/null +++ b/src/avrsample/x.bat @@ -0,0 +1 @@ +avr-gcc -mmcu=at90s4433 -S hello.c diff --git a/src/bin/avr_make b/src/bin/avr_make new file mode 100644 index 00000000..d4049a00 --- /dev/null +++ b/src/bin/avr_make @@ -0,0 +1,63 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/bin/avr_make2 b/src/bin/avr_make2 new file mode 100644 index 00000000..3f64dada --- /dev/null +++ b/src/bin/avr_make2 @@ -0,0 +1,64 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment +# Modified for compilation under another drive different than $(AVR) + +# Variables definitions + CC = $(AVR)/bin/avr-gcc + AS = $(AVR)/bin/avr-gcc -x assembler-with-cpp + RM = $(AVR)/bin/rm -f + RN = $(AVR)/bin/mv + BIN = $(AVR)/bin/avr-objcopy + SIZE = $(AVR)/bin/avr-size + INCDIR = . + LIBDIR = $(AVR)/avr/lib + SHELL = $(AVR)/bin/sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/bin/revava.exe b/src/bin/revava.exe new file mode 100644 index 0000000000000000000000000000000000000000..0dce65199f93d00d06e8d1bfb6bd45c01bd12f1e GIT binary patch literal 122955 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 II=!m@4=1rs-2eap literal 0 HcmV?d00001 diff --git a/src/gui/grlogin.i86 b/src/gui/grlogin.i86 index 751a22e3..48cdda01 100644 --- a/src/gui/grlogin.i86 +++ b/src/gui/grlogin.i86 @@ -1,11 +1,11 @@ :020000040000FA :20000000C9A6020078563412140000810081B586688A689AD1ED53B586C1ED43B786E12299 -:13002000B98621CF6A3E00CD5E81EB2101473E01C35E8115 +:13002000B98621D86A3E00CD5E81EB2104453E01C35E810B :2005C900CD8881F8FF21060039EB218184010200EDB02AC0862323E50303C501B584C53E91 -:2005E9000121AA44CD5E81F1F14D44E171237021000039E5210000E52AC08623234E23462C -:20060900C53E00215F73CD5E81F1F1F1DD36FC60DD36FD0021000039E5210100E52AC08627 -:2006290023234E2346C53E00215F73CD5E81F1F1F1210200E52E08394D442AC08623235E23 -:2006490023563E0021C86DCD5E81F1C31F81D52AC08623235E23563E00212272CD5E81D1B2 +:2005E9000121AD42CD5E81F1F14D44E171237021000039E5210000E52AC08623234E23462B +:20060900C53E00216873CD5E81F1F1F1DD36FC60DD36FD0021000039E5210100E52AC0861E +:2006290023234E2346C53E00216873CD5E81F1F1F1210200E52E08394D442AC08623235E1A +:2006490023563E0021D16DCD5E81F1C31F81D52AC08623235E23563E00212B72CD5E81D1A0 :20066900C32581CD8881FCFF21000039EB218384010400EDB0DD4602DD70FEDD4604DD7044 :20068900FF210400E52B2BC340464DC342462AC08623235E23563E00C34D46CD5E81F1C390 :2006A9001F81CD8881FCFF21000039EB218784010400EDB0DD4602DD70FEDD4604DD70FFCA @@ -19,7 +19,7 @@ :2007A90023C3204723C369473E00C34D46CD5E81F1C31F81CD8881FCFF21000039EB2197EB :2007C90084010400EDB0DD4602DD70FEDD4604DD70FF210400E52B2BC340464DC394462A4A :2007E900C086C3D94623C3204723C369473E00C3B347CD5E81F1C31F81C5FDE5DDE5D5DDCF -:20080900E13E00213772CD5E81E5DDE5C12AC08623235E23563E0021C86DCD5E81F1DDE156 +:20080900E13E00214072CD5E81E5DDE5C12AC08623235E23563E0021D16DCD5E81F1DDE144 :20082900FDE1C1C32581CD8881F8FF21000039EB219B84010700EDB0DD4602DD70FADD4621 :2008490004DD70FBDD460ADD70FCDD460CDD70FDDD460EDD70FE210700E52E02C340464D05 :20086900C394462AC086C3D94623C3204723C369473E00C3B347CD5E81F1C31F81C5D5CD3B @@ -34,12 +34,12 @@ :20098900210A00ED4BC08609E5DD5E02DD56033E00213E49CDF649E1712370C31F81ED4BD2 :2009A900C086094623666823234E2346237E6960CD5E814D44FD6E06FD6607A7ED42EB0167 :2009C9000200CDC181DD6E04DD660519EB3E00216C46C9CD5E814D44FD6E08FD6609A7EDD8 -:2009E90042C9CD5E817DB4C93E0121D544CD5E814D44C9CD8881FCFFFDE5110E00CD974A3E +:2009E90042C9CD5E817DB4C93E0121D842CD5E814D44C9CD8881FCFFFDE5110E00CD974A3D :200A0900DD4E0271DD46032370DD460CDD6E0AFD7502DD660BFD7403FD7004DD4610DD6ECD :200A29000EFD7505DD660FFD7406FD7007AFFD7708FD7709DD6E12FD750ADD6613FD740B98 :200A4900DD6E14FD750CDD6615FD740D210C00ED4BC086097E23B6210C00ED4BC0860920FB :200A690010FDE5C1712370210A00ED4BC08609181246236668EB210800197E23B6210800F6 -:200A89001920EEFDE5C1712370FDE1C31F813E0121D544CD5E81E5FDE1C9FDE5DDE5C5D54F +:200A89001920EEFDE5C1712370FDE1C31F813E0121D842CD5E81E5FDE1C9FDE5DDE5C5D54E :200AA900DD210000FD210000FDE5210200394E2346E1097EB72850FDE5E1095ECD40810AC3 :200AC90000212C2E3149696A6B6C72FE4AF94AEF4AF94AF94AEA4AEA4AF44AF44AF44AEAA6 :200AE9004A0102001812010300180D01040018080105001803010600DD09210200394E234D @@ -77,11 +77,11 @@ :200EE900FEDD66FF5E2356E1732372210800ED4BC08609E5DD4EFEDD46FF030369604E23C9 :200F090046E1712370FD4E24FD4625210000CDA6813009FD5E26FD5627CD504FFDCB0B76C8 :200F29002011FD7E20FDB6212809FD5E20FD5621CD504FFDE5D1CD504FDD6EF8DD66F9FDE1 -:200F4900E1C31F815E23563E0021DC73C35E813E00218F4DC35E81C5FDE5DDE52115001988 +:200F4900E1C31F815E23563E0021E573C35E813E00218F4DC35E81C5FDE5DDE5211500197F :200F690046236668E5DDE17DB42808DDE5D1CD584F18F1C32748CD88810000FDE5211500FD :200F8900DD5E02DD5603195623666AE5FDE17DB4283D210A00FDE5C109DD7E04DD56052F7D :200FA9005F7A2F577EA377237EA277210A00097EDDB60A77237EDDB60B77210A00097EDD6C -:200FC900AE0C77237EDDAE0D772113000918B81177853E0021A06BCD5E81FDE1C31F81C5F1 +:200FC900AE0C77237EDDAE0D772113000918B81177853E0021A96BCD5E81FDE1C31F81C5E8 :200FE900FDE5DDE5D5DDE12115001946236668E5FDE121200019462366680100903E80ACDC :2010090067ED42302EDD4E20DD4621210000CDA6813020DD6E20DD662129E5210800ED4BA1 :20102900C086094E2346E1092B2B46DD70202366DD7421DD6E22DD66230100903E80AC677E @@ -179,8 +179,8 @@ :201BA9003E0021FE57C35E81DD5EFEDD56FF3E0021224CCD5E81DD4EFEDD46FFFDE5D1FDE7 :201BC9007E1FFD6E1DFD661EC9CD5281FDE5D5FDE1DD6E0ADD660BE53E00218C55CD5E81E4 :201BE900E1210302DD4E04DD4605A7ED422040FDCB0A5E283A3E08DDAE0ADDB60BFD5E20C2 -:201C0900FD56213E00213772200DCDEB492815CD3D5C2B3600180DCD485C233600CD3D5CB8 -:201C2900DD460A70210000E5010301CD3F53E1FDE1C31F81FD5E20FD56213E00213772CDAE +:201C0900FD56213E00214072200DCDEB492815CD3D5C2B3600180DCD485C233600CD3D5CAF +:201C2900DD460A70210000E5010301CD3F53E1FDE1C31F81FD5E20FD56213E00214072CDA5 :201C49005E81FD4E20FD462109C9C5FDE5DDE521B8FF39F9D5DDE1AF7723772377237721E0 :201C69000A00ED4BC086097E23666F46236668E5210E00194E2346E1A7ED422803CDE7544F :201C8900DDCB0A46CA975D21020039E52B2BCD5053E1210200394E23462B2B2BCDDB57CD3D @@ -189,7 +189,7 @@ :201CE90006DD560720073E0021784718053E0021EE46CD5E81DD5E20DD5621210A00ED4BE8 :201D0900C0860946236668010500094E2346237E6960CDF649DD6E08DD6609A7ED42EB0197 :201D29000200CDC1816960394623666819010700094D44210000395E235613133E00216C73 -:201D490046CD5E81DDCB0B462836FD210000DD5E20DD56213E00213772CDF649FDE5E1A7E6 +:201D490046CD5E81DDCB0B462836FD210000DD5E20DD56213E00214072CDF649FDE5E1A7DD :201D6900ED42210600300B39FDE5C109362AFD2318DC39FDE5C109360021060039EB1806EC :201D8900DD5E20DD56213E00210248CD5E8121480039F9C32748CD88810000FDE5DD6E0E58 :201DA900DD660FE5DD6E0CDD660DE5DD6E0ADD660BE5DD5E02DD5603CDA95BF1F1F1E5FDD6 @@ -202,7 +202,7 @@ :201E890070FD360A01FD360B00FD3617F9FD36185DFD361900FD361AFFFD361B5DFD361CD0 :201EA90000FD361DF8FD361E57FD361F00C31A4CCD88810000DD6E0ADD660BE5DD5E02DD36 :201EC90056033E00219B50CD5E81E1C31F81CD8881CEFFFDE5DD36D800210000E5C53E01EC -:201EE90021AA44CD5E81F1F1DD75D4DD74D5DD36F02BDD36F100DD36F21ADD36F300DD3686 +:201EE90021AD42CD5E81F1F1DD75D4DD74D5DD36F02BDD36F100DD36F21ADD36F300DD3685 :201F0900F400DD7ED8FE732018DD6ED9DD66DADD75F0DD74F1DD6EDBDD66DCDD75F2DD7449 :201F2900F3DD7ED8FE422807DD7ED8FE4D204FDD4EDD0600C5CD9762D5DD4EDBDD5EF0DD9A :201F490056F1CDA062D5DD4EDADD5EF2DD56F3CD2A81D5DD5ED950DD4EF0DD46F1CD2A81DD @@ -229,9 +229,9 @@ :2021E900111400CD8F62FD7520FD7421FD6E20FD662136001804FDCB0BF6DD7EEB2E004DE4 :20220900E6F0472610ED423010DD6EEADD7EEBE60F6723FD7522FD7423FDE5DD5E024BDD8A :20222900560342211D00094E2346237E6960C1CD5E81211400E52E0E394D44DD5ED4DD56C3 -:20224900D5CD8762F13E14ADB4CA075FDD5ED4DD56D53E00212272CD5E81DD5E02DD5603ED +:20224900D5CD8762F13E14ADB4CA075FDD5ED4DD56D53E00212B72CD5E81DD5E02DD5603E4 :202269003E0021E84FCD5E81DD5E024BDD560342211A00094E2346237E6960C3E8563E016E -:20228900213147C35E813E0121D544C35E81DD4EDCDD5EF2DD56F3CD2A811B1B1BC9CD889E +:20228900213445C35E813E0121D842C35E81DD4EDCDD5EF2DD56F3CD2A811B1B1BC9CD889C :2022A90081EAFFFDE5DD6E02DD6603E5FDE121060039EB21A784010E00EDB0FD6E26DD754D :2022C900EAFD6627DD74EB2323233E01AE23B62008C5010104CD3F53E1DD6EEADD66EB235D :2022E900232346236668CB853E02ADB4C212646F67E5E5010100FD5E11FD56123E00217FDE @@ -277,7 +277,7 @@ :2027E90086095E2356CD584F3E00218648CD5E813E00215746CD5E81D1C1C32581CD8881A4 :20280900FEFFDD4E02DD4603210E00ED5BC086195E23563E0021D75ECD5E81210400ED4B15 :20282900C086097E23B6C2C468210100E523394D442AC08623235E2356CD8762F13E01ADE7 -:20284900B420D8DD4EFE47C521D684E53E0021016ECD5E81F1F1AFDDB6FE28294FC5210EFE +:20284900B420D8DD4EFE47C521D684E53E00210A6ECD5E81F1F1AFDDB6FE28294FC5210EF5 :2028690000ED5BC086195E2356210E00ED4BC0860946236668011700094E2346237E6960A2 :202889000101001829DD4EFFC5210E00ED5BC086195E2356210E00ED4BC086094623666863 :1E28A900011700094E2346237E6960010200CD5E81E1DD46FEDD70FFC32468C31F8120 @@ -286,351 +286,371 @@ :200395001B4B1B5300001B4300001B4E00001B5200001B4600001B6800001B5A00000000E7 :1403B500001B45001B002F776E642F303030302E73637200DC :2028C700FDE5DDE5C521C0FF39F9D5DDE1210C00197E23666FAFB62008DD360CDEDD360D7D -:2028E7008421000039362D012F00DD5E0CDD560D3E0021386BCD5E81E5FDE17DB42804FD0E -:20290700231809DD6E0CDD660DE5FDE1FDE5C12100003911010019EB3E0021A075CD5E81CF +:2028E7008421000039362D012F00DD5E0CDD560D3E0021416BCD5E81E5FDE17DB42804FD05 +:20290700231809DD6E0CDD660DE5FDE1FDE5C12100003911010019EB3E0021C574CD5E81AB :2029270021000039E5214200397E23666FC171237021400039472366682323AF772377DDC5 -:202947005E06DD56073E0021046BCD5E81DD5E04DD56053E0021E76DCD5E81DD5E0ADD560A -:202967000B3E0021B36DCD5E81210100E5DD4E0ADD460B11E6843E0021066FCD5E81F121A3 -:202987000100E5DD4E00DD460111EB843E0021066FCD5E81F1214000394E2346DD5E0CDD95 -:2029A700560D3E00214C73CD5E81DD5E0CDD560D3E00210F73CD5E811101003E0121014715 +:202947005E06DD56073E00210D6BCD5E81DD5E04DD56053E0021F06DCD5E81DD5E0ADD56F8 +:202967000B3E0021BC6DCD5E81210100E5DD4E0ADD460B11E6843E00210F6FCD5E81F12191 +:202987000100E5DD4E00DD460111EB843E00210F6FCD5E81F1214000394E2346DD5E0CDD8C +:2029A700560D3E00215573CD5E81DD5E0CDD560D3E00211873CD5E811101003E0121044502 :2029C700CD5E8121420039F9DDE1FDE1C32581CD8881E0FFFDE5DD6E02DD6603E5FDE1219C -:2029E7002600DD4E02DD4603094623666823232346236668010101A7ED42C2CA6AFD6E201D +:2029E7002600DD4E02DD4603094623666823232346236668010101A7ED42C2D36AFD6E2014 :202A0700FD662146DD70ECFD6E20FD66212346DD70EDDD36EE00FD6E20FD66213600210E85 -:202A27000039EB3E0021BC74CD5E81DD75E0DD74E1FD4E20FD46210303DD71EADD70EB7D0A -:202A4700B4287123237E23666F46DD70E2DD6EE0DD66E12323462366682346DD70E3DD3679 -:202A6700E400210400394D44DD5EEADD56EB3E0121FD41CD5E81DD75E8DD74E9DD4EE0DD93 -:202A870046E1030369604E2346DD5EE8DD56E93E00216E72CD5E817DB420193E00218648C1 -:202AA700CD5E81010000DD5EE0DD56E13E0021C768CD5E81FDE5D1FD7E1CFD6E1AFD661BAC -:202AC700CD5E81FDE1C31F81CD52813E0021BA66CD5E813E0021B466CD5E810110000936C2 -:1D2AE700D623366923360011F0843E00210668CD5E813E0021E167CD5E81C31F812D +:202A27000039EB3E00213975CD5E81EB3E0021EC74CD5E81DD75E0DD74E1FD4E20FD462129 +:202A47000303DD71EADD70EB7DB4287123237E23666F46DD70E2DD6EE0DD66E12323462300 +:202A670066682346DD70E3DD36E400210400394D44DD5EEADD56EB3E01210040CD5E81DD96 +:202A870075E8DD74E9DD4EE0DD46E1030369604E2346DD5EE8DD56E93E00217772CD5E81D0 +:202AA7007DB420193E00218648CD5E81010000DD5EE0DD56E13E0021C768CD5E81FDE5D1AF +:202AC700FD7E1CFD6E1AFD661BCD5E81FDE1C31F81CD52813E0021BA66CD5E813E0021B48A +:202AE70066CD5E810110000936D623366923360011F0843E00210668CD5E813E0021E167D7 +:062B0700CD5E81C31F81B9 :2003F2002F62696E2F736800484F4D450055534552002F776E642F6C6F676E2E7363720044 -:202B0400CD5281D5210600E5210700E53E00211E6BCD5E81F1F1F1C31F8121040039C5D561 -:142B24005E2356234D44F7300622BB8621FFFFD1C1C3258168 +:202B0D00CD5281D5210600E5210700E53E0021276BCD5E81F1F1F1C31F8121040039C5D54F +:142B2D005E2356234D44F7300622BB8621FFFFD1C1C325815F :0B003300DDF9DDE1D1C1F1ED3939C983 -:202B3800CD8881FEFFDD5E02DD56033E00213772CD5E81DD5E02DD560319DD75FEDD74FF57 -:202B580079B02008DD6EFEDD66FF1839DD6E02DD6603DD4EFEDD46FFA7ED422825DD6EFEE6 -:202B7800DD66FF2BDD75FEDD74FF4E0600DD6E04DD6605A7ED422008DD6EFEDD66FF18059F -:202B980018CA210000C31F81CD8881F8FFAFDD77FEDD77FFDD7E02DDB6032078115F853ED8 -:202BB8000021A06BCD5E817DB4201E1177853E0021A06BCD5E817DB4200F118F853E0021AF -:202BD800A06BCD5E817DB4280621FFFFC3B06D2A5D85DD7502DD7403DD7E02DDB603282ECB -:202BF800DD5E02DD56033E0021A06BCD5E817DB4280621FFFFC3B06D211600DD4E02DD464F -:202C180003095623666ADD7502DD740318CA210000C3B06D210C00DD4E02DD4603097EE6CF -:202C380080CA066D210600DD4E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7D7D -:202C5800B4CA046D210600DD4E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DDDA -:202C78004EF8DD46F9210A00DD5E02DD5603195E23563E0021C86DCD5E81F1DD75FCDD747C -:202C9800FD4D44210000CDA681301E210000397EDD86FC77237EDD8EFD77210200397EDD46 -:202CB80096FC77237EDD9EFD77DD4EFCDD46FD210000CDA68138A1DD7EFCDDA6FD3C2009F2 -:202CD8002ABB863E04ADB4288FDD7EFADDB6FB281B210C00DD4E02DD4603097EF60077235A -:202CF8007EF60277DD36FEFFDD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E022F -:202D1800DD66034E2346DD6E02DD660323235623666AA7ED42DD75FADD74FB4D442100005C -:202D3800CDA6813033210100E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD7F -:202D58004E02DD4603095E23563E0021306ECD5E81F1F1F1CB782800210C00DD4E02DD46A1 -:202D780003097EE63F77237EE6FA7769602323E5210400DD4E02DD460309E521060009563D -:202D980023666AE56960C1712370E1712370E1712370DD6EFEDD66FFC31F81CD5281D52167 -:202DB8000300E53E00211E6BCD5E81F1F1C31F81CD5281DD6E0ADD660BE5C5D5212400E54E -:0F2DD8003E00211E6BCD5E81F1F1F1F1C31F8131 +:202B4100CD8881FEFFDD5E02DD56033E00214072CD5E81DD5E02DD560319DD75FEDD74FF45 +:202B610079B02008DD6EFEDD66FF1839DD6E02DD6603DD4EFEDD46FFA7ED422825DD6EFEDD +:202B8100DD66FF2BDD75FEDD74FF4E0600DD6E04DD6605A7ED422008DD6EFEDD66FF180596 +:202BA10018CA210000C31F81CD8881F8FFAFDD77FEDD77FFDD7E02DDB6032078115F853ECF +:202BC1000021A96BCD5E817DB4201E1177853E0021A96BCD5E817DB4200F118F853E002194 +:202BE100A96BCD5E817DB4280621FFFFC3B96D2A5D85DD7502DD7403DD7E02DDB603282EB0 +:202C0100DD5E02DD56033E0021A96BCD5E817DB4280621FFFFC3B96D211600DD4E02DD4633 +:202C210003095623666ADD7502DD740318CA210000C3B96D210C00DD4E02DD4603097EE6BD +:202C410080CA0F6D210600DD4E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7D6B +:202C6100B4CA0D6D210600DD4E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DDC8 +:202C81004EF8DD46F9210A00DD5E02DD5603195E23563E0021D16DCD5E81F1DD75FCDD746A +:202CA100FD4D44210000CDA681301E210000397EDD86FC77237EDD8EFD77210200397EDD3D +:202CC10096FC77237EDD9EFD77DD4EFCDD46FD210000CDA68138A1DD7EFCDDA6FD3C2009E9 +:202CE1002ABB863E04ADB4288FDD7EFADDB6FB281B210C00DD4E02DD4603097EF600772351 +:202D01007EF60277DD36FEFFDD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E0225 +:202D2100DD66034E2346DD6E02DD660323235623666AA7ED42DD75FADD74FB4D4421000053 +:202D4100CDA6813033210100E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD76 +:202D61004E02DD4603095E23563E0021396ECD5E81F1F1F1CB782800210C00DD4E02DD468F +:202D810003097EE63F77237EE6FA7769602323E5210400DD4E02DD460309E5210600095634 +:202DA10023666AE56960C1712370E1712370E1712370DD6EFEDD66FFC31F81CD5281D5215E +:202DC1000300E53E0021276BCD5E81F1F1C31F81CD5281DD6E0ADD660BE5C5D5212400E53C +:0F2DE1003E0021276BCD5E81F1F1F1F1C31F811F :16003E00F5C5E5784251676BED4CED6CED5C79858257E1C1F1C922 -:202DE700CD5281D5210300E5210700E53E00211E6BCD5E81F1F1F1C31F81CD8881FCFF2185 -:202E07000E003901020009DD75FCDD74FDE5DD4E0ADD460B1177853E0021CF79CD5E81F123 -:202E2700DD75FEDD74FFC31F81CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660B29 -:202E4700E5D5211900E53E0121534BCD5E81F1F1F1F1F1C32282CD8881FEFF2A5D85DD759B -:202E6700FEDD74FF1177853E0021A06BCD5E81118F853E0021A06BCD5E81DD7EFEDDB6FFB4 -:202E8700283CDD5EFEDD56FF3E0021A06BCD5E81210A00DD4EFEDD46FF095E23563E002191 -:202EA7002272CD5E81210A000936FF2336FF211600095623666ADD75FEDD74FF18BCC31F2B -:202EC70081C5D52AA7857DB42002182E21000022A7851101003E00218A73CD5E817DB428FF -:1F2EE7000C2183857EF60177237EF600770E00115D6E3E0121204BCD5E81D1C1C3258141 +:202DF000CD5281D5210300E5210700E53E0021276BCD5E81F1F1F1C31F81CD8881FCFF2173 +:202E10000E003901020009DD75FCDD74FDE5DD4E0ADD460B1177853E00215177CD5E81F19A +:202E3000DD75FEDD74FFC31F81CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660B20 +:202E5000E5D5211900E53E01215649CD5E81F1F1F1F1F1C32282CD8881FEFF2A5D85DD7591 +:202E7000FEDD74FF1177853E0021A96BCD5E81118F853E0021A96BCD5E81DD7EFEDDB6FF99 +:202E9000283CDD5EFEDD56FF3E0021A96BCD5E81210A00DD4EFEDD46FF095E23563E00217F +:202EB0002B72CD5E81210A000936FF2336FF211600095623666ADD75FEDD74FF18BCC31F19 +:202ED00081C5D52AA7857DB42002182E21000022A7851101003E00219373CD5E817DB428ED +:1F2EF0000C2183857EF60177237EF600770E0011666E3E01212349CD5E81D1C1C325812E :200471000000C286C286C286C286C2870000100000000000000000000000C287C287C28717 :20049100C287C28801002000000000000000000000009D859D859D859D859F8502002200C7 :0C04B1000000000000000000000001003E -:202F0600CD8881F2FFAFDD77F4DD77F5DD5E02DD56033E00213772CD5E81DD75F6DD74F7ED -:202F260059503E00213772CD5E81DD75F8DD74F92AB986DD75F2DD74F3DD6EF2DD66F34DE9 -:202F4600440303DD71F2DD70F346236668DD75FADD74FB7DB4283EDD6EF6DD66F7E5DD4EB0 -:202F660002DD4603DD5EFADD56FB3E01215047CD5E81F17DB42014DD6EF6DD66F7DD4EFA27 -:202F8600DD46FB097EFE3D2002180ADD34F42003DD34F518A4DD7EFADDB6FBC2B770DD6E06 -:202FA600F4DD66F5232329EB3E0121D544CD5E81DD75FCDD74FD7DB4200C210C0022BB86D7 -:202FC60021FFFFC37F71DD6EF4DD66F529E5ED4BB986DD5EFCDD56FD3E0121D949CD5E8188 -:202FE600F1DD6EF8DD66F9DD4EF6DD46F709EB13133E0121D544CD5E81DD75FADD74FB7DCC -:20300600B42010DD5EFCDD56FD3E0021DC73CD5E8118A7DD6EF6DD66F7E5DD4E02DD460393 -:20302600DD5EFADD56FB3E0121D949CD5E81F1DD6EF6DD66F7DD4EFADD46FB09363DDD6E83 -:20304600F8DD66F923E5DD4E04DD4605DD6EF6DD66F7DD5EFADD56FB19EB133E0121D94960 -:20306600CD5E81F1DD6EF4DD66F529DD4EFCDD46FD09DD5EFADD56FB732372DD6EF4DD66D0 -:20308600F529092323AF7723772AA9857DB4280CED5BA9853E0021DC73CD5E81DD6EFCDD4C -:2030A60066FD22A985DD6EFCDD66FD22B986C37C71DD7E0ADDB60BCA7C71DD5EFADD56FBA2 -:2030C6003E00213772CD5E81DD75FCDD74FDDD6EF8DD66F9DD4EF6DD46F7094D4403DD6EF8 -:2030E600FCDD66FDA7ED423067DD6EF8DD66F9DD4EF6DD46F709EB13133E0121D544CD5EA9 -:2031060081DD75FEDD74FF7DB42003C3C06FDD6EF6DD66F7E5DD4E02DD4603DD5EFEDD5623 -:20312600FF3E0121D949CD5E81F1DD6EF6DD66F7DD4EFEDD46FF09363DDD6EF2DD66F32B8B -:203146002BDD75F2DD74F3DD71FADD70FB712370DD6EF8DD66F923E5DD4E04DD4605DD6EF9 -:20316600F6DD66F7DD5EFADD56FB19EB133E0121D949CD5E81F1210000C31F81CD8881F82E -:20318600FFDD5E02DD56033E00213772CD5E81DD75FEDD74FF2AB986DD75F8DD74F9DD7514 -:2031A600FADD74FBDD6EF8DD66F94D440303DD71F8DD70F946236668DD75FCDD74FD7DB41D -:2031C600284DDD6EFEDD66FFE5DD4E02DD4603DD5EFCDD56FD3E01215047CD5E81F17DB485 -:2031E6002012DD6EFEDD66FFDD4EFCDD46FD097EFE3D2819DD6EFADD66FB4D440303DD715A -:1C320600FADD70FBDD4EFCDD46FD7123701895DD6EFADD66FBAF772377C31F81CC +:202F0F00CD8881F2FFAFDD77F4DD77F5DD5E02DD56033E00214072CD5E81DD75F6DD74F7DB +:202F2F0059503E00214072CD5E81DD75F8DD74F92AB986DD75F2DD74F3DD6EF2DD66F34DD7 +:202F4F00440303DD71F2DD70F346236668DD75FADD74FB7DB4283EDD6EF6DD66F7E5DD4EA7 +:202F6F0002DD4603DD5EFADD56FB3E01215345CD5E81F17DB42014DD6EF6DD66F7DD4EFA1D +:202F8F00DD46FB097EFE3D2002180ADD34F42003DD34F518A4DD7EFADDB6FBC2C070DD6EF4 +:202FAF00F4DD66F5232329EB3E0121D842CD5E81DD75FCDD74FD7DB4200C210C0022BB86CD +:202FCF0021FFFFC38871DD6EF4DD66F529E5ED4BB986DD5EFCDD56FD3E0121DC47CD5E8175 +:202FEF00F1DD6EF8DD66F9DD4EF6DD46F709EB13133E0121D842CD5E81DD75FADD74FB7DC2 +:20300F00B42010DD5EFCDD56FD3E0021E573CD5E8118A7DD6EF6DD66F7E5DD4E02DD460381 +:20302F00DD5EFADD56FB3E0121DC47CD5E81F1DD6EF6DD66F7DD4EFADD46FB09363DDD6E79 +:20304F00F8DD66F923E5DD4E04DD4605DD6EF6DD66F7DD5EFADD56FB19EB133E0121DC4756 +:20306F00CD5E81F1DD6EF4DD66F529DD4EFCDD46FD09DD5EFADD56FB732372DD6EF4DD66C7 +:20308F00F529092323AF7723772AA9857DB4280CED5BA9853E0021E573CD5E81DD6EFCDD3A +:2030AF0066FD22A985DD6EFCDD66FD22B986C38571DD7E0ADDB60BCA8571DD5EFADD56FB87 +:2030CF003E00214072CD5E81DD75FCDD74FDDD6EF8DD66F9DD4EF6DD46F7094D4403DD6EE6 +:2030EF00FCDD66FDA7ED423067DD6EF8DD66F9DD4EF6DD46F709EB13133E0121D842CD5E9F +:20310F0081DD75FEDD74FF7DB42003C3C96FDD6EF6DD66F7E5DD4E02DD4603DD5EFEDD5611 +:20312F00FF3E0121DC47CD5E81F1DD6EF6DD66F7DD4EFEDD46FF09363DDD6EF2DD66F32B81 +:20314F002BDD75F2DD74F3DD71FADD70FB712370DD6EF8DD66F923E5DD4E04DD4605DD6EF0 +:20316F00F6DD66F7DD5EFADD56FB19EB133E0121DC47CD5E81F1210000C31F81CD8881F824 +:20318F00FFDD5E02DD56033E00214072CD5E81DD75FEDD74FF2AB986DD75F8DD74F9DD7502 +:2031AF00FADD74FBDD6EF8DD66F94D440303DD71F8DD70F946236668DD75FCDD74FD7DB414 +:2031CF00284DDD6EFEDD66FFE5DD4E02DD4603DD5EFCDD56FD3E01215345CD5E81F17DB47B +:2031EF002012DD6EFEDD66FFDD4EFCDD46FD097EFE3D2819DD6EFADD66FB4D440303DD7151 +:1C320F00FADD70FBDD4EFCDD46FD7123701895DD6EFADD66FBAF772377C31F81C3 :0204BD0000003D -:20322200CD5281D5210600E53E00211E6BCD5E81F1F1C31F81CD8881FEFFDD6E02DD6603CC -:20324200DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD460311 -:20326200DD6EFEDD66FFA7ED42C31F81CD8881FAFFDD6E02DD6603DD75FADD74FBDD71FC44 -:20328200DD70FDDD6EFCDD66FD23DD75FCDD74FD2B46DD70FFDD6EFADD66FB23DD75FADD10 -:2032A20074FB2B4EDD71FE79B82008AFDDB6FE280218D0DD4EFF0600DD6EFE2600A7ED42B8 -:0332C200C31F81A6 +:20322B00CD5281D5210600E53E0021276BCD5E81F1F1C31F81CD8881FEFFDD6E02DD6603BA +:20324B00DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD460308 +:20326B00DD6EFEDD66FFA7ED42C31F81CD8881FAFFDD6E02DD6603DD75FADD74FBDD71FC3B +:20328B00DD70FDDD6EFCDD66FD23DD75FCDD74FD2B46DD70FFDD6EFADD66FB23DD75FADD07 +:2032AB0074FB2B4EDD71FE79B82008AFDDB6FE280218D0DD4EFF0600DD6EFE2600A7ED42AF +:0332CB00C31F819D :12005400E3F5C54E2346237BEDB12002232309C39C81B9 -:2032C500CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE20038F -:2032E500DD34FF18ECDD4E02DD4603DD6EFEDD66FFA7ED42E5DD4E02DD46031102003E0078 -:2033050021C86DCD5E81F1C3B082CD52817BB22008DD3602FEDD360384DD5E02DD5603CDDE -:20332500C572110485CDC572ED5BBB863E0121DC47CD5E81DD7502DD7403EBCDC57211074C -:0733450085CDC572C31F8195 +:2032CE00CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE200386 +:2032EE00DD34FF18ECDD4E02DD4603DD6EFEDD66FFA7ED42E5DD4E02DD46031102003E006F +:20330E0021D16DCD5E81F1C3B082CD52817BB22008DD3602FEDD360384DD5E02DD5603CDCC +:20332E00CE72110485CDCE72ED5BBB863E0121DF45CD5E81DD7502DD7403EBCDCE72110727 +:07334E0085CDCE72C31F8183 :0B0412006572726F72003A20000A0051 -:20334C00CD52812AB986E53E0121BD47CD5E81F1C31F81CD5281DD6E0EDD660FE5DD6E0C88 -:20336C00DD660DE5DD6E0ADD660BE5210F00E53E00211E6BCD5E81F1F1F1F1C31F81CD885F -:20338C0081E2FF210000394D44DD5E02DD56033E0021C573CD5E817DA43C2812DD7EE6E660 -:2033AC00006FDD7EE7E6F0673E20ACB528052100001803210100C31F81CD5281C5D5210DFE -:2033CC0000E53E00211E6BCD5E81F1F1F1C31F81CD8881FCFF21FCFFDD4E02DD460309DD0C -:2033EC0075FEDD74FF23237E23B6280621FFFFC3B9742AE489DD75FCDD74FDDD4EFCDD46A7 -:20340C00FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFA7ED10 -:20342C00423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD46FFDD51 -:20344C006EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED4230027B -:20346C001814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF2323E5DD44 -:20348C004EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FF71239F -:2034AC0070DD6EFCDD66FD22E489210000C31F81CD8881FEFFDD7E02DDB603200B211600CE -:2034CC0022BB8621000018473E00211E75CD5E813E00218275CD5E81DD75FEDD74FF7DB48C -:2034EC00281FDD4E02DD4603DD6EFEDD66FF5E23563E00216E72CD5E817DB4200218021854 -:12350C00CF3E00216375CD5E81DD6EFEDD66FFC31F810D +:20335500CD52812AB986E53E0121C045CD5E81F1C31F81CD5281DD6E0EDD660FE5DD6E0C7E +:20337500DD660DE5DD6E0ADD660BE5210F00E53E0021276BCD5E81F1F1F1F1C31F81CD884D +:2033950081E2FF210000394D44DD5E02DD56033E0021CE73CD5E817DA43C2812DD7EE6E64E +:2033B500006FDD7EE7E6F0673E20ACB528052100001803210100C31F81CD5281C5D5210DF5 +:2033D50000E53E0021276BCD5E81F1F1F1C31F81CD8881FCFF21FCFFDD4E02DD460309DDFA +:2033F50075FEDD74FF23237E23B6280621FFFFC3C2742AD688DD75FCDD74FDDD4EFCDD46A4 +:20341500FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFA7ED07 +:20343500423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD46FFDD48 +:203455006EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED42300272 +:203475001814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF2323E5DD3B +:203495004EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FF712396 +:1034B50070DD6EFCDD66FD22D688210000C31F810C :19006600E1C5D5DDE5DD210000DD39E9E526806F7EED2039ED3939E3E95E -:20351E00D52AAB857DA43C280CED5BAB853E00212272CD5E81210080E52AAD85E53E01218F -:20353E00AA44CD5E81F1F122AB857DA43C20122ABB86E5211585E53E0021016ECD5E81F1B5 -:20355E00F1D1C32581D52AAB857DA43C280CED5BAB853E00212272CD5E8121FFFF22AB85DA -:20357E00D1C32581D52AAB857DA43C280EED5BAB853E0021C775CD5E811803210000D1C3A2 -:02359E00258185 +:2034C500CD528159503E00214072CD5E8123E5DD4E04DD4605DD5E02DD56033E0121DC478C +:2034E500CD5E81F1C31F81CD8881FEFF3E00214F75CD5E813E0021B375CD5E81DD75FEDDC5 +:2035050074FF7DB4281D210400DD4EFEDD46FF0946236668DD4E02DD4603A7ED42200218AA +:143525000218D13E00219475CD5E81DD6EFEDD66FFC31F81A5 +:20007F00E3F5C54E23462378B1280D0B7B962320F57A9620F12323230909C39C81E1C5D541 +:1B009F00DDE5DD210000DD395E235623EB39F9EBE909097E23666FC1F1E3C99F +:20353900CD5281210A00E50100003E0121274BCD5E81F1C31F81D52AAB857DA43C280CED42 +:203559005BAB853E00212B72CD5E81210080E52AAD85E53E0121AD42CD5E81F1F122AB8529 +:203579007DA43C20122ABB86E5211585E53E00210A6ECD5E81F1F1D1C32581D52AAB857D68 +:20359900A43C280CED5BAB853E00212B72CD5E8121FFFF22AB85D1C32581D52AAB857DA4E3 +:1835B9003C280EED5BAB853E0121CF4BCD5E811803210000D1C3258174 :20041D002F6574632F706173737764004552524E4F202564206F70656E696E6720706173F0 :07043D0073776F72640A007F :0404BF00FFFF0985AD -:2035A000CD528159503E00213772CD5E8123E5DD4E04DD4605DD5E02DD56033E0121D949BA -:0735C000CD5E81F1C31F8104 -:1D007F00E3F5C54E23462378B1280D0B7B962320F57A9620F12323230909C39C81BF -:2035C700CD8881F4FF210001E501C288DD5E02DD56033E01213147CD5E81F1DD75FEDD7440 -:2035E700FF4D44210000CDA6813806210000C34C78010A0011C2883E01216D4BCD5E81DD32 -:2036070075F4DD74F57DB4285BDD6EF4DD66F523DD75F4DD74F52B3600210100E501C28867 -:20362700DD6EF4DD66F5A7ED42DD4EFEDD46FFA7ED427C079F4F41C5E5DD5E02DD56033E08 -:203647000021306ECD5E81F1F1F1DD6EF4DD66F52B2B7EFE0D200ADD6EF4DD66F52B2B36A2 -:2036670000C3FD76210001E501C288DD5E02DD56033E01213147CD5E81F1DD75FEDD74FF33 -:203687004D44210000CDA6813806210000C34C78010A0011C2883E01216D4BCD5E81DD751B -:2036A700F4DD74F57DB428BC210100E5DD6EFEDD66FF7C079F5F53D5E501C288DD6EF4DD2D -:2036C70066F5A7ED427C079F5F53A7C1ED42EBC1ED42E5D5210100C109EB210000C1ED4AC2 -:2036E700E5D5DD5E02DD56033E0021306ECD5E81F1F1F1C3CC753AC288FE2328153AC288B0 -:20370700FE20280E3AC288FE0A28073AC288FE092003C3CC75DD36F4C2DD36F588AFDD7785 -:20372700FCDD77FD010780DD6EFCDD66FD3E80AC67ED42D2F777DD5EFCDD56FDCDD0820060 -:20374700000700AD775A77657770777E778C779777A277DD6EF4DD66F522C2891848DD6EF5 -:20376700F4DD66F522C489183DDD6EF4DD66F5DD75FADD74FB182FDD6EF4DD66F5DD75F83B -:20378700DD74F91821DD6EF4DD66F522CA891816DD6EF4DD66F522CC89180BDD6EF4DD66F2 -:2037A700F522CE891800010680DD6EFCDD66FD3E80AC67ED42302E013A00DD5EF4DD56F57E -:2037C7003E01216D4BCD5E81DD75F4DD74F57DB42003C3CC75DD6EF4DD66F523DD75F4DD7D -:2037E70074F52B3600DD34FC2003DD34FDC32B77210A00E5210400394D44DD5EF8DD56F9F7 -:203807003E0121434CCD5E81F122C889DD6EF6DD66F7AFB62803C3CC75210A00E52104005E -:20382700394D44DD5EFADD56FB3E0121434CCD5E81F122C689DD6EF6DD66F7AFB62803C389 -:08384700CC7521C289C31F8169 -:1E009C00E1C5D5DDE5DD210000DD395E235623EB39F9EBE909097E23666FC1F1E3C924 -:20384F00CD8881FAFFAFDD77FBDD77FC59503E00213772CD5E81DD75FDDD74FEDD6E04DD15 -:20386F0066057EFE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A2829 -:20388F0008DD34FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDA6E6 -:2038AF0081300CDD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDA681300CCB -:2038CF00DD6EFDDD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FDEF -:2038EF0077237EDD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECAC679DD7E08DDB609203438 -:20390F00DD7E0EDDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DDCD -:20392F00460CDD70FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A53 -:20394F00280CDD460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FA4B -:20396F00DD6EFDDD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDD32 -:20398F00740FDD4E02DD4603DD5EFA16003E01219A4DCD5E81DD7EFAFE0A20183E01DDAEA5 -:2039AF0012DDB613200EDD5E02DD56033E0021A06BCD5E81C3F678DD6EFBDD66FCC3B082DE -:2039CF00CD8881A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD8F -:2039EF0071FDDD70FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CAD47EDD6E047E -:203A0F00DD66057EFE25C2877E3E02DDAEFDDDB6FE200EDD5E02DD56033E0021A06BCD5E58 -:203A2F0081AFDD77A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDDA5 -:203A4F0036A8FFDD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD77E5 -:203A6F00A6DD77A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6EDB -:203A8F0004DD66053E39BE3002186521000039010A00CD6682DD6E04DD66054E060021D0F1 -:203AAF00FF094D44210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A8A8 -:203ACF00DD74A91821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A389 -:203AEF00DD75ACDD74ADDD34042003DD34051883DD6E04DD66055ECD4081140000202123D7 -:203B0F002A2B2D2E5862636468696C6F70737578837E8B7C937C167E667C5C7CE27BF77BB5 -:203B2F00ED7BF77BD37D527C817CD77B597B647B787B717BB57D647B497BDD6E04DD660531 -:203B4F002BDD7504DD7405C3877EDD36A401DD36A500C3737ADD6E04DD660546DD70B3C3F7 -:203B6F00737ADD36B401C3737A216800397EC60277237ECE00772B6E672B2B46236668DD02 -:203B8F0075A2DD74A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD6659 -:203BAF00A3DD75ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DDF7 -:203BCF0075ACDD74ADC3737ADD36AA01DD36AB00C3737ADD36A601DD36A700C3737AAFDD2B -:203BEF0077A6DD77A7C3737A210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC604F4 -:203C0F0077237ECE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237E2C -:203C2F00CE00772B6E672B2B5E23567A079F4F413E00212A7FCD5E81F1F1DD75B5DD74B6AF -:203C4F00C33A7EDD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD367F -:203C6F00B230DD36AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0EC -:203C8F00DD36AFFFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF0967 -:203CAF005E2356234E2346EB1819216800397EC60277237ECE00772B6E672B2B4623666836 -:203CCF00010000DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DDC5 -:203CEF004EBBDD46BCDD5EB9DD56BA3E0121F64ECD5E81F1F1DD75B5DD74B6DD36B730DDD5 -:203D0F0036B885AFDDB6B4CAB27D3E02DDAEAEDDB6AF200ADD36B731DD36B88518493E085B -:203D2F00DDAEAEDDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B734DD36B885182706 -:203D4F003E10DDAEAEDDB6AF200ADD36B736DD36B88518133E0FDDAEAEDDA6AF3C2008DDED -:203D6F0036B739DD36B885DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395DAE -:203D8F00543E0021A075CD5E81DD4EB5DD46B6211B00395D543E0121334BCD5E81DD75B530 -:203DAF00DD74B6C33A7EDD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD16 -:203DCF003405181C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A38D -:203DEF00DD46A2DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B646CB -:203E0F00DD70B21822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B52D -:203E2F00DD74B6DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE5C3 -:203E4F00DD6EB2E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CD4F78EB2106 -:203E6F000C0039F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6ECF -:203E8F0004DD66055E16003E01219A4DCD5E81DD34B02003DD34B1DD6E04DD66057EFE0A9D -:203EAF0020183E01DDAEFDDDB6FE200EDD5E02DD56033E0021A06BCD5E81DD34042003DD97 -:203ECF003405C3017A210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDD00 -:203EEF00B6FE200EDD5E02DD56033E0021A06BCD5E813E01DDAEFDDDB6FE2016210400DDB8 -:1B3F0F004E02DD460309E5210600094E2346E1712370DD6EB0DD66B1C31F8115 +:2035D100CD8881FAFFAFDD77FBDD77FC59503E00214072CD5E81DD75FDDD74FEDD6E04DD8D +:2035F10066057EFE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A28AA +:2036110008DD34FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDA666 +:2036310081300CDD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDA681300C4B +:20365100DD6EFDDD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FD6F +:2036710077237EDD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECA4877DD7E08DDB609203438 +:20369100DD7E0EDDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DD4E +:2036B100460CDD70FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60AD4 +:2036D100280CDD460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FACC +:2036F100DD6EFDDD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDDB3 +:20371100740FDD4E02DD4603DD5EFA16003E0121C049CD5E81DD7EFAFE0A20183E01DDAE03 +:2037310012DDB613200EDD5E02DD56033E0021A96BCD5E81C37876DD6EFBDD66FCC3B082D5 +:20375100CD8881A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD0F +:2037710071FDDD70FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CA567CDD6E047E +:20379100DD66057EFE25C2097C3E02DDAEFDDDB6FE200EDD5E02DD56033E0021A96BCD5E50 +:2037B10081AFDD77A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDD26 +:2037D10036A8FFDD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD7766 +:2037F100A6DD77A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6E5C +:2038110004DD66053E39BE3002186521000039010A00CD6682DD6E04DD66054E060021D071 +:20383100FF094D44210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A828 +:20385100DD74A91821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A309 +:20387100DD75ACDD74ADDD34042003DD34051883DD6E04DD66055ECD408114000020212357 +:203891002A2B2D2E5862636468696C6F70737578057C0D7A157A987BE879DE796479797939 +:2038B1006F797979557BD479037A5979DB78E678FA78F378377BE678CB78DD6E04DD660539 +:2038D1002BDD7504DD7405C3097CDD36A401DD36A500C3F577DD6E04DD660546DD70B3C379 +:2038F100F577DD36B401C3F577216800397EC60277237ECE00772B6E672B2B46236668DD85 +:2039110075A2DD74A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD66D9 +:20393100A3DD75ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DD77 +:2039510075ACDD74ADC3F577DD36AA01DD36AB00C3F577DD36A601DD36A700C3F577AFDD2E +:2039710077A6DD77A7C3F577210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC604F5 +:2039910077237ECE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237EAD +:2039B100CE00772B6E672B2B5E23567A079F4F413E0021AC7CCD5E81F1F1DD75B5DD74B6B1 +:2039D100C3BC7BDD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD3681 +:2039F100B230DD36AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF06D +:203A1100DD36AFFFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF09E7 +:203A31005E2356234E2346EB1819216800397EC60277237ECE00772B6E672B2B46236668B6 +:203A5100010000DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DD45 +:203A71004EBBDD46BCDD5EB9DD56BA3E0121D24ACD5E81F1F1DD75B5DD74B6DD36B730DD7D +:203A910036B885AFDDB6B4CA347B3E02DDAEAEDDB6AF200ADD36B731DD36B88518493E085C +:203AB100DDAEAEDDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B734DD36B885182787 +:203AD1003E10DDAEAEDDB6AF200ADD36B736DD36B88518133E0FDDAEAEDDA6AF3C2008DD6E +:203AF10036B739DD36B885DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395D2F +:203B1100543E0021C574CD5E81DD4EB5DD46B6211B00395D543E01213649CD5E81DD75B58B +:203B3100DD74B6C3BC7BDD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD17 +:203B51003405181C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A30D +:203B7100DD46A2DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B6464B +:203B9100DD70B21822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B5AE +:203BB100DD74B6DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE544 +:203BD100DD6EB2E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CDD175EB2108 +:203BF1000C0039F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6E50 +:203C110004DD66055E16003E0121C049CD5E81DD34B02003DD34B1DD6E04DD66057EFE0AFB +:203C310020183E01DDAEFDDDB6FE200EDD5E02DD56033E0021A96BCD5E81DD34042003DD0E +:203C51003405C38377210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDD01 +:203C7100B6FE200EDD5E02DD56033E0021A96BCD5E813E01DDAEFDDDB6FE2016210400DD2F +:1B3C91004E02DD460309E5210600094E2346E1712370DD6EB0DD66B1C31F8196 :0C044400003062003000307800305800BA -:203F2A00CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DD34 -:203F4A00750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660DE5 -:203F6A00E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E01210040CD5E81F1F1F1F1F0 -:033F8A00C31F81D1 +:203CAC00CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DDB5 +:203CCC00750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660D66 +:203CEC00E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E00210F7DCD5E81F1F1F1F126 +:033D0C00C31F8151 :1200BA00C5E5F57CEE806778EE8047F1A7ED42E1C1C9E5 -:20400000CD8881D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DD69 -:2040200075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDA6813811010280DD6EA1 -:204040000CDD660D3E80AC67ED423003C38341DD6EFCDD66FD23237EE60047237EE680B01B -:204060002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6EDE -:2040800002DD6603CD6B83DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B620028B -:2040A000184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CD0283E5DD99 -:2040C0006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CDF2A6 -:2040E00082DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDB881DD41 -:204100006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CDEB81DD6EFCDD66FD73237265 -:20412000DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB6E5 -:20414000FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77C4 -:20416000FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD35FE -:20418000FF18BADD6EF8DD66F93600DD6E0ADD660BC31F81CD8881FEFFDD36FE41DDCB0BBB -:2041A0007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5BD -:2041C000DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A073F -:2041E0009F4F411809DD5E02DD56030100003E01210040CD5E81F1F1F1F1C31F81CD8881B2 -:20420000DCFFDD36F8B9DD36F979DD36FA37DD36FB9E211000E501000011D0893E01219910 -:2042200049CD5E81F1210200E5DD4E04DD460511D0893E0121D949CD5E81F1DD36FE00DDC2 -:204240007EFEFE0E302EDD4EFE0600DD6E02DD6603097EB7281E21D289DD4EFE060009E599 -:20426000DD4EFE0600DD6E02DD66030946E170DD34FE18CBDD4EFE0600DD6E02DD6603091F -:204280007EB72818DD4EFE0600DD6E02DD6603093AD2898632D289DD34FE18D8211000E521 -:2042A00001D089210A00395D543E0121D949CD5E81F1AFDD77F4DD77F5DD77F6DD77F7AFEC -:2042C000DD77E0DD77E1DD77E2DD77E3AFDD77DCDD77DDDD77DEDD77DFDD36FE40AFDDB600 -:2042E000FECAFF4321180039DD4EFADD46FBDD5EF8DD56F9CDB78221000039E521060039FB -:204300005E2356234E2346EB3E05CD0782C5E5DD6EE8DD66E9C109EBDD6EEADD66EBC1ED99 -:204320004AE5D5DD6EE2DD66E3E5DD6EE0DD66E1E5DD6EF4DD66F5C109EBDD6EF6DD66F766 -:20434000C1ED4AE5D5210E00395E2356234E2346EB3E04CD3882C5E5DD6EE4DD66E5C10913 -:20436000EBDD6EE6DD66E7C1ED4A4D44EBCD7982CD7982EBE1CDB78221040039E5210200BB -:20438000395E2356234E2346EB3E05CD0782C5E5DD6EF0DD66F1C109EBDD6EF2DD66F3C1AD -:2043A000ED4AE5D5DD6EDEDD66DFE5DD6EDCDD66DDE5DD6EF4DD66F5C109EBDD6EF6DD6600 -:2043C000F7C1ED4AE5D5210A00395E2356234E2346EB3E04CD3882C5E5DD6EECDD66EDC199 -:2043E00009EBDD6EEEDD66EFC1ED4A4D44EBCD7982CD7982EBE1CDB782DD35FEC3DD422175 -:20440000000039DD75FCDD74FDDD36FE02DD7EFEFE0DD2A044DD7EFEFE0820282100003999 -:20442000E5210600395E2356234E2346EB3E1CCD0782EBE1CD9782DD7EFCC604DD77FC3098 -:2044400003DD34FDDD6EFCDD66FD5E2356234E2346EB7DE63FDD77FF3E06DD6EFCDD66FD68 -:20446000CDDD81DD7EFFFE0C300ADD7EFFC62EDD77FF1819DD7EFFFE26300ADD7EFFC63594 -:20448000DD77FF1808DD7EFFC63BDD77FFDD4EFE060021D08909DD46FF70DD34FEC30D4494 -:0A44A000AF32DD8921D089C31F81EE -:2044AA00CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E00211E17 -:0B44CA006BCD5E81F1F1F1F1C31F81A9 -:2000CC00F5E5CD5082EBE1F1C9F5C5E5AFCD2783F5CD5082F1B728031318067B2F5F7A2F06 +:203D0F00CD8881D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DD5D +:203D2F0075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDA6813811010280DD6E95 +:203D4F000CDD660D3E80AC67ED423003C3927EDD6EFCDD66FD23237EE60047237EE680B0C3 +:203D6F002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6ED2 +:203D8F0002DD6603CD4983DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B62002A1 +:203DAF00184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CDE082E5DDB0 +:203DCF006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CDD0BC +:203DEF0082DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDB881DD35 +:203E0F006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CDEB81DD6EFCDD66FD73237259 +:203E2F00DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB6D9 +:203E4F00FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77B8 +:203E6F00FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD35F2 +:203E8F00FF18BADD6EF8DD66F93600DD6E0ADD660BC31F81CD8881FEFFDD36FE41DDCB0BAF +:203EAF007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5B1 +:203ECF00DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A0733 +:1D3EEF009F4F411809DD5E02DD56030100003E00210F7DCD5E81F1F1F1F1C31F8134 +:20400000CD8881DCFFDD36F8B9DD36F979DD36FA37DD36FB9E211000E501000011C2883E06 +:2040200001219C47CD5E81F1210200E5DD4E04DD460511C2883E0121DC47CD5E81F1DD36F1 +:20404000FE00DD7EFEFE0E302EDD4EFE0600DD6E02DD6603097EB7281E21C488DD4EFE06BD +:204060000009E5DD4EFE0600DD6E02DD66030946E170DD34FE18CBDD4EFE0600DD6E02DDA5 +:204080006603097EB72818DD4EFE0600DD6E02DD6603093AC4888632C488DD34FE18D821C4 +:2040A0001000E501C288210A00395D543E0121DC47CD5E81F1AFDD77F4DD77F5DD77F6DD24 +:2040C00077F7AFDD77E0DD77E1DD77E2DD77E3AFDD77DCDD77DDDD77DEDD77DFDD36FE4027 +:2040E000AFDDB6FECA024221180039DD4EFADD46FBDD5EF8DD56F9CDB78221000039E521F8 +:204100000600395E2356234E2346EB3E05CD0782C5E5DD6EE8DD66E9C109EBDD6EEADD66F5 +:20412000EBC1ED4AE5D5DD6EE2DD66E3E5DD6EE0DD66E1E5DD6EF4DD66F5C109EBDD6EF609 +:20414000DD66F7C1ED4AE5D5210E00395E2356234E2346EB3E04CD3882C5E5DD6EE4DD668A +:20416000E5C109EBDD6EE6DD66E7C1ED4A4D44EBCD7982CD7982EBE1CDB78221040039E531 +:20418000210200395E2356234E2346EB3E05CD0782C5E5DD6EF0DD66F1C109EBDD6EF2DDA6 +:2041A00066F3C1ED4AE5D5DD6EDEDD66DFE5DD6EDCDD66DDE5DD6EF4DD66F5C109EBDD6E21 +:2041C000F6DD66F7C1ED4AE5D5210A00395E2356234E2346EB3E04CD3882C5E5DD6EECDD76 +:2041E00066EDC109EBDD6EEEDD66EFC1ED4A4D44EBCD7982CD7982EBE1CDB782DD35FEC3A3 +:20420000E04021000039DD75FCDD74FDDD36FE02DD7EFEFE0DD2A342DD7EFEFE0820282192 +:20422000000039E5210600395E2356234E2346EB3E1CCD0782EBE1CD9782DD7EFCC604DD04 +:2042400077FC3003DD34FDDD6EFCDD66FD5E2356234E2346EB7DE63FDD77FF3E06DD6EFC07 +:20426000DD66FDCDDD81DD7EFFFE0C300ADD7EFFC62EDD77FF1819DD7EFFFE26300ADD7E50 +:20428000FFC635DD77FF1808DD7EFFC63BDD77FFDD4EFE060021C28809DD46FF70DD34FEBF +:0D42A000C31042AF32CF8821C288C31F81F6 +:2042AD00CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E0021270D +:0B42CD006BCD5E81F1F1F1F1C31F81A8 +:2000CC00F5E5CD5082EBE1F1C9F5C5E5AFCD0583F5CD5082F1B728031318067B2F5F7A2F28 :2000EC0057E1C1F1C95E2356234E2346EBCD0782C37082F5E5CD50827B2F5F7A2F57E1F146 :01010C00C929 -:2044D500CD8881FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2AE489C4 -:2044F500DD75FCDD74FD7DB42011DD36FCE0DD36FD8921E08922E28922E489DD6EFCDD66F1 -:20451500FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA78A -:20453500ED42CAC545DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E2346A0 -:20455500E1A7ED42206ADD6EFADD66FB232346236668ED4BE489A7ED422015DD6EFADD66CD -:20457500FB23234623666823234623666822E489DD6EFADD66FB23237E23666F4E2346DDCF -:204595006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E3C -:2045B5002346030369604E2346E1712370C32245DD6EFADD66FB46236668DD4EFEDD46FFE3 -:2045D500A7ED42DA8346DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD66AC -:2045F500FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DDA8 -:204615004EFADD46FB0922E489DD6EFCDD66FD2323ED5BE4897323722AE4892323E5030335 -:2046350069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52AE489A9 -:20465500D1732372DD6EFADD66FB712370DD6EFCDD66FD22E489DD6EFADD66FB2323AF77E0 -:204675002377210400DD4EFADD46FB0918272AE489DD4EFADD46FBA7ED42204F1100043E69 -:204695000121614FCD5E81DD75FADD74FB7DA43C2006210000C31F81DD6EFADD66FB36002F -:2046B500233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E0021DC73CD2B -:2046D5005E812AE489DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234689 -:0C46F500236668DD75FADD74FBC3224506 +:2042D800CD8881FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2AD688D2 +:2042F800DD75FCDD74FD7DB42011DD36FCD2DD36FD8821D28822D48822D688DD6EFCDD662C +:20431800FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA789 +:20433800ED42CAC843DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E23469E +:20435800E1A7ED42206ADD6EFADD66FB232346236668ED4BD688A7ED422015DD6EFADD66DB +:20437800FB23234623666823234623666822D688DD6EFADD66FB23237E23666F4E2346DDDD +:204398006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E3B +:2043B8002346030369604E2346E1712370C32543DD6EFADD66FB46236668DD4EFEDD46FFE1 +:2043D800A7ED42DA8644DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD66AA +:2043F800FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DDA7 +:204418004EFADD46FB0922D688DD6EFCDD66FD2323ED5BD6887323722AD6882323E5030361 +:2044380069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52AD688B7 +:20445800D1732372DD6EFADD66FB712370DD6EFCDD66FD22D688DD6EFADD66FB2323AF77EE +:204478002377210400DD4EFADD46FB0918272AD688DD4EFADD46FBA7ED42204F1100043E77 +:204498000121574ECD5E81DD75FADD74FB7DA43C2006210000C31F81DD6EFADD66FB360039 +:2044B800233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E0021E573CD21 +:2044D8005E812AD688DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234697 +:0C44F800236668DD75FADD74FBC3254304 :20010D00B7C8CB28CB19CB1CCB1D3D20F5C9B7C8FE0838096C61480600D60818F2CB38CBFB :09012D0019CB1CCB1D3D20F5C9C6 -:20470100CD52812ABD863ABF86B5B42812010000DD5E02DD56033ABF862ABD86CD5E81DD80 -:204721005E02DD56033E0121A84BCD5E81C31F81CD5281DD6E0ADD660BE5C5D5211700E5A1 -:0F4741003E00211E6BCD5E81F1F1F1F1C31F81AE +:20450400CD52812ABD863ABF86B5B42812010000DD5E02DD56033ABF862ABD86CD5E81DD7F +:204524005E02DD56033E0121AB49CD5E81C31F81CD5281DD6E0ADD660BE5C5D5211700E59F +:0F4544003E0021276BCD5E81F1F1F1F1C31F81A4 :20013600DDF9DDE1D13333F1ED3939C90405C8CB2ACB1B10FAC9B7C8FE083809414C652E60 :0E01560000D60818F229CB11CB103D20F8C9B5 -:20475000CD8881FAFFDD71FADD70FBDD6E02DD6603DD75FCDD74FDDD36FE00DD36FF00DDBB -:204770006E0ADD660B2BDD750ADD740B237DB4282CDD6EFCDD66FD23DD75FCDD74FD2B4621 -:20479000DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82802180218C2DD4EFF41 -:2047B0000600DD6EFE2600A7ED42C31F81CD5281DD6E0ADD660BE5C5D5210A00E53E00210A -:0C47D0001E6BCD5E81F1F1F1F1C31F8181 +:20455300CD8881FAFFDD71FADD70FBDD6E02DD6603DD75FCDD74FDDD36FE00DD36FF00DDBA +:204573006E0ADD660B2BDD750ADD740B237DB4282CDD6EFCDD66FD23DD75FCDD74FD2B4620 +:20459300DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82802180218C2DD4EFF40 +:2045B3000600DD6EFE2600A7ED42C31F81CD5281DD6E0ADD660BE5C5D5210A00E53E002109 +:0C45D300276BCD5E81F1F1F1F1C31F8177 :160164002100003E11CB13CB123DC8CB15CB14ED4230F20918EF35 -:2047DC00CD888176FFAFDD77FEDD77FF2AB1857DB4282BDDCB037E200FED4BB185DD6E0227 -:2047FC00DD6603CDA6813803C36149DD6E02DD660329ED4BAF850946236668C39649DD4E86 -:20481C0002DD4603210000CDA6813803C36149210000E5213C85E53E0121AA44CD5E81F1DF -:20483C00F1DD75FADD74FBCB7C2803C36149218000E5210400394D44DD5EFADD56FB3E01DD -:20485C00213147CD5E81F1DD75F8DD74F94D44210000CDA681D26149AFDD77FCDD77FDDD23 -:20487C004EF8DD46F9DD6EFCDD66FDA7ED42D25E4921020039DD4EFCDD46FD097EFE0AC2F0 -:20489C00264921E689DD4EFEDD46FF09360011E6893E01214B4FCD5E81DD4E02DD4603A753 -:2048BC00ED42205D21000039E501200011E6893E01216D4BCD5E814D44E171237079B020CD -:2048DC0010DD5EFADD56FB3E00212272CD5E811874210000397E23666F7EFE20200B210066 -:2048FC000039342320013418E8DD5EFADD56FB3E00212272CD5E812100003946236668180C -:20491C0079AFDD77FEDD77FF182D014F00DD6EFEDD66FFA7ED42301F21020039DD4EFCDD09 -:20493C0046FD0946DD6EFEDD66FF23DD75FEDD74FF2B11E6891970DD34FC2003DD34FDC346 -:20495C007B48C34A48014E8511E6893E0021A075CD5E81210A00E511E6893E00213772CD4A -:1D497C005E8101E689094D44DD5E02DD56033E01219441CD5E81F121E689C31F81FD +:2045DF00CD888176FFAFDD77FEDD77FF2AB1857DB4282BDDCB037E200FED4BB185DD6E0226 +:2045FF00DD6603CDA6813803C36447DD6E02DD660329ED4BAF850946236668C39947DD4E83 +:20461F0002DD4603210000CDA6813803C36447210000E5213C85E53E0121AD42CD5E81F1DC +:20463F00F1DD75FADD74FBCB7C2803C36447218000E5210400394D44DD5EFADD56FB3E01DB +:20465F00213445CD5E81F1DD75F8DD74F94D44210000CDA681D26447AFDD77FCDD77FDDD20 +:20467F004EF8DD46F9DD6EFCDD66FDA7ED42D2614721020039DD4EFCDD46FD097EFE0AC2EE +:20469F00294721D888DD4EFEDD46FF09360011D8883E00213975CD5E81DD4E02DD4603A75C +:2046BF00ED42205D21000039E501200011D8883E01217049CD5E814D44E171237079B020DA +:2046DF0010DD5EFADD56FB3E00212B72CD5E811874210000397E23666F7EFE20200B21005C +:2046FF000039342320013418E8DD5EFADD56FB3E00212B72CD5E8121000039462366681802 +:20471F0079AFDD77FEDD77FF182D014F00DD6EFEDD66FFA7ED42301F21020039DD4EFCDD08 +:20473F0046FD0946DD6EFEDD66FF23DD75FEDD74FF2B11D8881970DD34FC2003DD34FDC354 +:20475F007E46C34D46014E8511D8883E0021C574CD5E81210A00E511D8883E00214072CD38 +:1D477F005E8101D888094D44DD5E02DD56033E0021A37ECD5E81F121D888C31F81CF :200450002F6C69622F6C69626572726F722E74787400556E6B6E6F776E206572726F7220AE :01047000008B :0404C3000000000035 :13017A005E2356CD2A81722B73C9EB702B712B722B73C94F -:20499900CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6E0ADD660B2BDD750ADD740B237DD2 -:2049B900B42814DD4604DD6EFEDD66FF23DD75FEDD74FF2B7018DADD6E02DD6603C31F81F6 -:2049D900CD8881FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD7506 -:2049F9000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD56 -:204A190075FCDD74FD2B7018CEDD6E02DD6603C31F81CD8881FAFF2AB3852BDD75FADD744E -:204A3900FB21FFFF22B3853E0021000032BF8622BD86DDCBFB7E2053010500DD5EFADD56AC -:204A5900FBCD2A8121368A195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FB65 -:204A7900CD2A8121398A194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCD5E81DD6EFADDD0 -:204A990066FB2BDD75FADD74FB18A7C31F81CD52812AB385CB7C200E010A802AB3853E8095 -:204AB900AC67ED42380B210C0022BB8621FFFF18533E01212B4A32BF8622BD86DD7E02DD53 -:204AD900B603DDB604283A010500ED5BB385CD2A8121368A19DD5604DD4E02DD46037123F5 -:204AF900702372010500ED5BB385CD2A8121398A19DD4E0ADD460B7123702AB3852322B3DC -:1A4B190085210000C31F81CD5281210000E53E0121A74ACD5E81F1C31F8182 +:20479C00CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6E0ADD660B2BDD750ADD740B237DD1 +:2047BC00B42814DD4604DD6EFEDD66FF23DD75FEDD74FF2B7018DADD6E02DD6603C31F81F5 +:2047DC00CD8881FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD7505 +:2047FC000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD55 +:20481C0075FCDD74FD2B7018CEDD6E02DD6603C31F81CD8881FAFF2AB3852BDD75FADD744D +:20483C00FB21FFFF22B3853E0021000032BF8622BD86DDCBFB7E2053010500DD5EFADD56AB +:20485C00FBCD2A81212889195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FB73 +:20487C00CD2A81212B89194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCD5E81DD6EFADDDE +:20489C0066FB2BDD75FADD74FB18A7C31F81CD52812AB385CB7C200E010A802AB3853E8094 +:2048BC00AC67ED42380B210C0022BB8621FFFF18533E01212E4832BF8622BD86DD7E02DD51 +:2048DC00B603DDB604283A010500ED5BB385CD2A8121288919DD5604DD4E02DD4603712303 +:2048FC00702372010500ED5BB385CD2A81212B8919DD4E0ADD460B7123702AB3852322B3EA +:1A491C0085210000C31F81CD5281210000E53E0121AA48CD5E81F1C31F8180 :0204C700000033 :1E018D00EBE3F5E5210600397EAB77237EAA77D1237E73A94F237E72A847F1D1E1C99F -:204B3300CD5281D53E00213772CD5E81D119EB3E0021A075CD5E81DD6E02DD6603C31F814E -:1A4B530021040039D55E2356234D44F7300822BB8621FFFF4D44D1C325810E +:20493600CD5281D53E00214072CD5E81D119EB3E0021C574CD5E81DD6E02DD6603C31F8120 +:1A49560021040039D55E2356234D44F7300822BB8621FFFF4D44D1C325810D :1901AB00F57EB3775F237EB27757237EB1774F237EB077472B2B2BF1C9BC -:204B6D00CD8881FEFFDD6E02DD660346DD70FE480600DD6E04DD6605A7ED422008DD6E0201 -:204B8D00DD66031809AFDDB6FE2006210000C31F81DD34022003DD340318CACD5281D521F5 -:104BAD000B00E53E00211E6BCD5E81F1F1C31F812F +:20497000CD8881FEFFDD6E02DD660346DD70FE480600DD6E04DD6605A7ED422008DD6E0200 +:20499000DD66031809AFDDB6FE2006210000C31F81DD34022003DD340318CACD5281D521F4 +:1049B0000B00E53E0021276BCD5E81F1F1C31F8125 :2001C400DDF9DDE1D1C1C9F57E83775F237E8A7757237E89774F237E8877472B2B2BF1C955 -:204BBD00CD8881FEFFDD36FEFFDD36FFFFDD5E02160021B585197EE608280FDD4E02060047 -:204BDD0021D0FF09DD75FEDD74FFDD4E02060021B585097EE604280FDD4E02060021A9FFED -:204BFD0009DD75FEDD74FFDD4E02060021B585097EE602280FDD4E02060021B0FF09DD755D -:204C1D00FEDD74FFDD4E04DD4605DD6EFEDD66FFCDA6813808DD36FEFFDD36FFFFDD6EFEA9 -:204C3D00DD66FFC3B082CD8881FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADDB3 -:204C5D00460B212400CDA6813007AFDD770ADD770BDD6E02DD66034E060021B585097EE65B -:204C7D0010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD3403E1 -:204C9D00186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FEF1 -:204CBD00582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD660318 -:204CDD00237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DD4A -:204CFD00360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AFC8 -:204D1D00DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECDBD4BDD75FEDDE2 -:204D3D0074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CDD58321000039DD5EFEEB -:204D5D00DD56FF7A079F4F41CDB782DD34022003DD340318B7DD7E04DDB6052811DD6E02B8 -:204D7D00DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC32282CD888188 -:204D9D00FEFF3E0021C86ECD5E81210C000946236668DD75FEDD74FF7DE6402818DD5E0489 -:204DBD00DD56053E0021A06BCD5E817DB4280621FFFFC3A94EDD7EFEE6206FDD7EFFE6033F -:204DDD00673E20ADB4280621FFFFC3A94E210800DD4E04DD4605095E23560A6F030A67A795 -:204DFD00ED523818DD5E04DD56053E0021A06BCD5E817DB4280621FFFFC3A94EDD6E04DD16 -:204E1D0066054E234603702B710B6960DD460270210C00DD4E04DD4605097EF68077237E42 -:204E3D00F600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5E04DD56FD -:204E5D00053E0021A06BCD5E817DB4280521FFFF183ADD7EFEE6032818210400DD4E04DD98 -:204E7D00460509E5210600094E2346E17123701816210400DD4E04DD460509E52108000946 -:204E9D004E2346E1712370DD6E022600C31F81CD5281160021B585197EE604280EDD7E025E -:204EBD00EE206FDD7E03EE00671806DD6E02DD6603C31F81CD5281160021B585197EE60201 -:194EDD00280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C31F81E5 +:2049C000CD8881FEFF3E0021D16ECD5E81210C000946236668DD75FEDD74FF7DE6402818CA +:2049E000DD5E04DD56053E0021A96BCD5E817DB4280621FFFFC3CF4ADD7EFEE6206FDD7E9E +:204A0000FFE603673E20ADB4280621FFFFC3CF4A210800DD4E04DD4605095E23560A6F0383 +:204A20000A67A7ED523818DD5E04DD56053E0021A96BCD5E817DB4280621FFFFC3CF4ADD02 +:204A40006E04DD66054E234603702B710B6960DD460270210C00DD4E04DD4605097EF680EC +:204A600077237EF600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5EFD +:204A800004DD56053E0021A96BCD5E817DB4280521FFFF183ADD7EFEE6032818210400DD68 +:204AA0004E04DD460509E5210600094E2346E17123701816210400DD4E04DD460509E52109 +:204AC0000800094E2346E1712370DD6E022600C31F81CD8881FEFFDD36FE41DDCB0D7E28D3 +:204AE00016DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE50E00C5DD6EC8 +:204B00000CDD660DE5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E00210F7DCD5E816B +:204B2000F1F1F1F1C31F81CD8881F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD21 +:204B40006EFEDD66FF4E060021B585097EE610280ADD34FE2003DD34FF18E4DD6EFEDD667F +:204B6000FF7EFE2D2012DD34FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFEA9 +:204B80002B2008DD34FE2003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E01F7 +:204BA00021F24ECD5E81F1DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CD4983180C02 +:0F4BC000DD4EFADD46FBDD6EF8DD66F9C32282BD +:1001E400C5D55E2356234E2346EBCD2183C3C2835C +:204BCF00CD8881F4FF210001E5015A89DD5E02DD56033E01213445CD5E81F1DD75FEDD7488 +:204BEF00FF4D44210000CDA6813806210000C3544E010A00115A893E01217049CD5E81DD9C +:204C0F0075F4DD74F57DB4285BDD6EF4DD66F523DD75F4DD74F52B3600210100E5015A89B0 +:204C2F00DD6EF4DD66F5A7ED42DD4EFEDD46FFA7ED427C079F4F41C5E5DD5E02DD56033EEA +:204C4F000021396ECD5E81F1F1F1DD6EF4DD66F52B2B7EFE0D200ADD6EF4DD66F52B2B367B +:204C6F0000C3054D210001E5015A89DD5E02DD56033E01213445CD5E81F1DD75FEDD74FF9C +:204C8F004D44210000CDA6813806210000C3544E010A00115A893E01217049CD5E81DD7585 +:204CAF00F4DD74F57DB428BC210100E5DD6EFEDD66FF7C079F5F53D5E5015A89DD6EF4DD76 +:204CCF0066F5A7ED427C079F5F53A7C1ED42EBC1ED42E5D5210100C109EB210000C1ED4AA4 +:204CEF00E5D5DD5E02DD56033E0021396ECD5E81F1F1F1C3D44B3A5A89FE2328153A5A8979 +:204D0F00FE20280E3A5A89FE0A28073A5A89FE092003C3D44BDD36F45ADD36F589AFDD77BE +:204D2F00FCDD77FD010780DD6EFCDD66FD3E80AC67ED42D2FF4DDD5EFCDD56FDCDCB830068 +:204D4F00000700B54D624D6D4D784D864D944D9F4DAA4DDD6EF4DD66F5225A8A1848DD6E4E +:204D6F00F4DD66F5225C8A183DDD6EF4DD66F5DD75FADD74FB182FDD6EF4DD66F5DD75F884 +:204D8F00DD74F91821DD6EF4DD66F522628A1816DD6EF4DD66F522648A180BDD6EF4DD66A2 +:204DAF00F522668A1800010680DD6EFCDD66FD3E80AC67ED42302E013A00DD5EF4DD56F5C7 +:204DCF003E01217049CD5E81DD75F4DD74F57DB42003C3D44BDD6EF4DD66F523DD75F4DD80 +:204DEF0074F52B3600DD34FC2003DD34FDC3334D210A00E5210400394D44DD5EF8DD56F9FB +:204E0F003E0121F24ECD5E81F122608ADD6EF6DD66F7AFB62803C3D44B210A00E521040018 +:204E2F00394D44DD5EFADD56FB3E0121F24ECD5E81F1225E8ADD6EF6DD66F7AFB62803C321 +:084E4F00D44B215A8AC31F81D4 +:2001F400EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508CD5B83DDF9DDE146 +:20021400F1D13333C9CB782809AF914F3E0098473E01CB7AC8F5AF935F3E009A57F1EE01C8 +:20023400C9EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508CD5B83E1C1CD61 +:09025400B383DDE1F1D13333C9BC +:154E5700CD5281D5211800E53E0021276BCD5E81F1F1C31F81D1 +:20025D00F5AF956F3E009C673E00994F3E009847F1C9F5210000010000DD36F82118021925 +:20027D0037DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD35F8282ECB11CB10CB15CB14ED5227 +:20029D0038DD201078DD960738D5200879DD960638CD180479DD96064F78DD9E074730C14F +:2002BD002BA718BDF1E56069C1C9F57D2F6F7C2F67792F4F782F47F1C9EB702B712B722BD1 +:0202DD0073C9E3 +:204E6C00CD8881FEFFDD36FEFFDD36FFFFDD5E02160021B585197EE608280FDD4E02060095 +:204E8C0021D0FF09DD75FEDD74FFDD4E02060021B585097EE604280FDD4E02060021A9FF3B +:204EAC0009DD75FEDD74FFDD4E02060021B585097EE602280FDD4E02060021B0FF09DD75AB +:204ECC00FEDD74FFDD4E04DD4605DD6EFEDD66FFCDA6813808DD36FEFFDD36FFFFDD6EFEF8 +:204EEC00DD66FFC3B082CD8881FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADD02 +:204F0C00460B212400CDA6813007AFDD770ADD770BDD6E02DD66034E060021B585097EE6A9 +:204F2C0010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD34032F +:204F4C00186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE3F +:204F6C00582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD660366 +:204F8C00237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DD98 +:204FAC00360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AF16 +:204FCC00DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECD6C4EDD75FEDD7F +:204FEC0074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CDED8321000039DD5EFE22 +:20500C00DD56FF7A079F4F41CDB782DD34022003DD340318B7DD7E04DDB6052811DD6E0206 +:20502C00DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC32282CD52810C +:20504C00160021B585197EE604280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C31B +:20506C001F81CD5281160021B585197EE602280EDD7E02EE206FDD7E03EE00671806DD6EC8 +:07508C0002DD6603C31F8172 :2004C9000101010101010101011111111111010101010101010101010101010101010101A3 :2004E900102020202020202020202020202020204848484848484848484820202020202073 :2005090020424242424242020202020202020202020202020202020202020220202020205E @@ -639,30 +659,10 @@ :20056900000000000000000000000000000000000000000000000000000000000000000072 :20058900000000000000000000000000000000000000000000000000000000000000000052 :2005A900000000000000000000000000000000000000000000000000000000000000000032 -:204EF600CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DD59 -:204F1600750CDD740DDD6EFEE50E00C5DD6E0CDD660DE5DD6E0ADD660BE5DD4E04DD460530 -:154F3600DD5E02DD56033E01210040CD5E81F1F1F1F1C31F8180 -:2001E400E3F5D57B96235F7A9E23577B96237A9E23C3E4823004EB2329195E2356EBD1F189 -:12020400E3C9C5D55E2356234E2346EBCD4383C37884B4 -:164F4B00CD5281210A00E50100003E0121764FCD5E81F1C31F817A -:20021600EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508CD7D83DDF9DDE101 -:20023600F1D13333C9CB782809AF914F3E0098473E01CB7AC8F5AF935F3E009A57F1EE01A6 -:20025600C9EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508CD7D83E1C1CD1D -:090276006984DDE1F1D13333C9E3 -:154F6100CD5281D5211800E53E00211E6BCD5E81F1F1C31F81CF -:20027F00F5AF956F3E009C673E00994F3E009847F1C9F5210000010000DD36F82118021903 -:20029F0037DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD35F8282ECB11CB10CB15CB14ED5205 -:2002BF0038DD201078DD960738D5200879DD960638CD180479DD96064F78DD9E074730C12D -:2002DF002BA718BDF1E56069C1C9C5D55E2356234E2346EBCDE583C37884E3D5DDE5DD218D -:2002FF000000DD39DD5609DD7409DD5E08DD7508D5C5F5DD6E0462ED6CDD5605ED5C19590A -:20031F00DD5607ED5C19DD5E0650ED5C19E5DD5E04DD56FEED5CDD6E05DD6607ED6C19DDA8 -:20033F004606ED4C09E5DD5E04DD5607ED5CDD6E05DD6606ED6CAF1917F5DD5E04DD56062B -:20035F00ED5C4A0600AF091755C14CE10984C1814D47EBF1D1D1DDE1D133333333C9F57D5C -:16037F002F6F7C2F67792F4F782F47F1C9EB702B712B722B73C91E -:204F7600CD8881F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD6EFEDD66FF4E06EC -:204F96000021B585097EE610280ADD34FE2003DD34FF18E4DD6EFEDD66FF7EFE2D2012DD70 -:204FB60034FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFE2B2008DD34FE2084 -:204FD60003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E0121434CCD5E81F1D2 -:204FF600DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CD6B83180CDD4EFADD46FBDD64 -:085016006EF8DD66F9C3228289 +:2002DF00E3F5D57B96235F7A9E23577B96237A9E23C3DF833004EB2329195E2356EBD1F191 +:2002FF00E3C9C5D55E2356234E2346EBCDFD83C3C283E3D5DDE5DD210000DD39DD5609DD01 +:20031F007409DD5E08DD7508D5C5F5DD6E0462ED6CDD5605ED5C1959DD5607ED5C19DD5E41 +:20033F000650ED5C19E5DD5E04DD56FEED5CDD6E05DD6607ED6C19DD4606ED4C09E5DD5EB1 +:20035F0004DD5607ED5CDD6E05DD6606ED6CAF1917F5DD5E04DD5606ED5C4A0600AF091751 +:16037F0055C14CE10984C1814D47EBF1D1D1DDE1D133333333C920 :00000001FF diff --git a/src/gui/grlogin.map b/src/gui/grlogin.map index e915791e..c89a398b 100644 --- a/src/gui/grlogin.map +++ b/src/gui/grlogin.map @@ -17,7 +17,7 @@ Area Addr Size Decimal Bytes (Attributes) 000086B5 s_UDATA0 | 000086B5 e_CCSTR | 000086B5 e_ECSTR 000086B5 s_CCSTR | 000086B5 e_CDATA0 | 000086B5 s_ECSTR 000086B5 e_IDATA0 | 00008A68 e_UDATA0 | 00008A68 s_CSTACK - 00009A68 e_CSTACK | 0000C073 l_CODE | 00010073 e_CODE + 00009A68 e_CSTACK | 0000C0F4 l_CODE | 000100F4 e_CODE Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -43,10 +43,10 @@ RCODE 00008100 00000381 = 897. bytes (REL,CON) 0000822E ?SS_RSH_L | 00008238 ?L_LSH_L0 | 00008250 ?S_DIVMOD 00008266 ?S_MULASG | 00008270 ?L_END_AS | 00008279 ?L_XOR_L0 00008297 ?L_ORASG_ | 000082B0 ?LEAVE_DI | 000082B7 ?L_ADDASG - 000082D0 ?S_S_SWIT | 000082E4 ?S_SWITCH | 000082F2 ?UL_DIVAS - 00008302 ?UL_MOD_L | 00008327 ?S_FIND_S | 00008343 ?UL_DIV_L - 0000836B ?L_NEG_L0 | 0000837D ?L_DIVMOD | 000083D5 ?L_MULASG - 000083E5 ?L_MUL_L0 | 00008469 ?L_NOT_L0 | 00008478 ?L_END_MU + 000082D0 ?UL_DIVAS | 000082E0 ?UL_MOD_L | 00008305 ?S_FIND_S + 00008321 ?UL_DIV_L | 00008349 ?L_NEG_L0 | 0000835B ?L_DIVMOD + 000083B3 ?L_NOT_L0 | 000083C2 ?L_END_MU | 000083CB ?S_S_SWIT + 000083DF ?S_SWITCH | 000083ED ?L_MULASG | 000083FD ?L_MUL_L0 Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -102,7 +102,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CODE 00004000 0000C073 = 49267. bytes (NUL,CON) +CODE 00004000 0000C0F4 = 49396. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -127,26 +127,26 @@ CODE 00004000 0000C073 = 49267. bytes (NUL,CON) 00005EB9 rootWindo | 00005ED7 screenbui | 000062A7 root_acti 000065DF read_stri | 000066B4 gui_globa | 000066BA GUIinit 000067E1 GUIunit | 00006806 GUIgo | 000068C7 login - 000069D6 login_act | 00006ACF main | 00006B04 setgid - 00006B1E unix | 00006B38 strrchr | 00006BA0 fflush - 00006DB3 chdir | 00006DC8 _write | 00006DE7 setuid - 00006E01 printf | 00006E30 lseek | 00006E5D __stdio_c - 00006EC8 __stdio_i | 00006F06 setenv | 00007182 unsetenv - 00007222 close | 00007237 strlen | 0000726E strcmp - 0000730F perror | 0000734C execv | 0000735F ioctl - 0000738A isatty | 000073C5 fstat | 000073DC free - 000074BC getpwnam | 0000751E setpwent | 00007563 endpwent - 00007582 getpwent | 000075A0 strcpy | 000075C7 __getpwen - 000079CF vfprintf | 00007F2A ltoa | 00014000 __longtoa - 00014194 itoa | 000141FD crypt | 000144AA open - 000144D5 malloc | 00014701 exit | 00014731 _read - 00014750 memcmp | 000147BD execve | 000147DC strerror - 00014999 memset | 000149D9 memcpy | 00014AA7 on_exit - 00014B20 atexit | 00014B33 strcat | 00014B53 unix_long - 00014B6D strchr | 00014BA8 _exit | 00014C43 strtoul - 00014D9A fputc | 00014EAC toupper | 00014ED1 tolower - 00014EF6 ultoa | 00014F4B atoi | 00014F61 sbrk - 00014F76 strtol + 000069D6 login_act | 00006AD8 main | 00006B0D setgid + 00006B27 unix | 00006B41 strrchr | 00006BA9 fflush + 00006DBC chdir | 00006DD1 _write | 00006DF0 setuid + 00006E0A printf | 00006E39 lseek | 00006E66 __stdio_c + 00006ED1 __stdio_i | 00006F0F setenv | 0000718B unsetenv + 0000722B close | 00007240 strlen | 00007277 strcmp + 00007318 perror | 00007355 execv | 00007368 ioctl + 00007393 isatty | 000073CE fstat | 000073E5 free + 000074C5 strcpy | 000074EC getpwuid | 00007539 atoi + 0000754F setpwent | 00007594 endpwent | 000075B3 getpwent + 00007751 vfprintf | 00007CAC ltoa | 00007D0F __longtoa + 00007EA3 itoa | 00014000 crypt | 000142AD open + 000142D8 malloc | 00014504 exit | 00014534 _read + 00014553 memcmp | 000145C0 execve | 000145DF strerror + 0001479C memset | 000147DC memcpy | 000148AA on_exit + 00014923 atexit | 00014936 strcat | 00014956 unix_long + 00014970 strchr | 000149AB _exit | 000149C0 fputc + 00014AD2 ultoa | 00014B27 strtol | 00014BCF __getpwen + 00014E57 sbrk | 00014EF2 strtoul | 00015049 toupper + 0001506E tolower Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -157,7 +157,7 @@ UDATA0 000086B5 000003B3 = 947. bytes (REL,CON) ----- ------ ----- ------ ----- ------ 000086B5 _argc | 000086B7 _argv | 000086B9 environ 000086BB errno | 000086BD __cleanup | 000086C0 global - 000089E0 __malloc_ | 000089E4 __malloc_ | 00008A36 __on_exit + 000088D2 __malloc_ | 000088D6 __malloc_ | 00008928 __on_exit Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -199,15 +199,15 @@ Libraries Linked [ object file ] ..\..\lib\libcb.lib [ relcb\isatty.rel ] ..\..\lib\libsysb.lib [ relsysb\fstat.rel ] ..\..\lib\libcb.lib [ relcb\free.rel ] -..\..\lib\libcb.lib [ relcb\getpwnam.rel ] ..\..\lib\libiar.lib [ reliar\ENTPARMDIRECT.rel ] ..\..\lib\libiar.lib [ reliar\BANKCALLDIRECT.rel ] -..\..\lib\libcb.lib [ relcb\setpwent.rel ] ..\..\lib\libcb.lib [ relcb\strcpy.rel ] +..\..\lib\libcb.lib [ relcb\getpwuid.rel ] ..\..\lib\libiar.lib [ reliar\SVSWITCH.rel ] -..\..\lib\libcb.lib [ relcb\getpwent.rel ] ..\..\lib\libiar.lib [ reliar\ENTAUTODIRECT.rel ] ..\..\lib\libiar.lib [ reliar\VSWITCHEND.rel ] +..\..\lib\libcb.lib [ relcb\atoi.rel ] +..\..\lib\libcb.lib [ relcb\setpwent.rel ] ..\..\lib\libcb.lib [ relcb\vfprintf.rel ] ..\..\lib\libcb.lib [ relcb\ltoa.rel ] ..\..\lib\libiar.lib [ reliar\SSCMP.rel ] @@ -244,25 +244,25 @@ Libraries Linked [ object file ] ..\..\lib\libsysb.lib [ relsysb\_exit.rel ] ..\..\lib\libiar.lib [ reliar\LEAVEDIRECT.rel ] ..\..\lib\libiar.lib [ reliar\LADDASG.rel ] -..\..\lib\libcb.lib [ relcb\strtoul.rel ] ..\..\lib\libcb.lib [ relcb\fputc.rel ] -..\..\lib\libcb.lib [ relcb\ctype.rel ] ..\..\lib\libcb.lib [ relcb\ultoa.rel ] -..\..\lib\libiar.lib [ reliar\SSSWITCH.rel ] -..\..\lib\libiar.lib [ reliar\SSWITCHEND.rel ] +..\..\lib\libcb.lib [ relcb\strtol.rel ] ..\..\lib\libiar.lib [ reliar\ULDIVASG.rel ] -..\..\lib\libcb.lib [ relcb\atoi.rel ] +..\..\lib\libcb.lib [ relcb\getpwent.rel ] ..\..\lib\libiar.lib [ reliar\ULMOD.rel ] ..\..\lib\libiar.lib [ reliar\SFINDSIGN.rel ] ..\..\lib\libiar.lib [ reliar\ULDIV.rel ] ..\..\lib\libsysb.lib [ relsysb\sbrk.rel ] ..\..\lib\libiar.lib [ reliar\LNEG.rel ] ..\..\lib\libiar.lib [ reliar\LDIVMOD.rel ] -..\..\lib\libiar.lib [ reliar\LMULASG.rel ] -..\..\lib\libiar.lib [ reliar\LMUL.rel ] ..\..\lib\libiar.lib [ reliar\LNOT.rel ] ..\..\lib\libiar.lib [ reliar\LENDMULDIVASG.rel ] -..\..\lib\libcb.lib [ relcb\strtol.rel ] +..\..\lib\libcb.lib [ relcb\strtoul.rel ] +..\..\lib\libcb.lib [ relcb\ctype.rel ] +..\..\lib\libiar.lib [ reliar\SSSWITCH.rel ] +..\..\lib\libiar.lib [ reliar\SSWITCHEND.rel ] +..\..\lib\libiar.lib [ reliar\LMULASG.rel ] +..\..\lib\libiar.lib [ reliar\LMUL.rel ] User Base Address Definitions diff --git a/src/gui/login.c b/src/gui/login.c index 598cf056..6237188e 100644 --- a/src/gui/login.c +++ b/src/gui/login.c @@ -66,7 +66,7 @@ void login_actionhandler(struct Component* this){ lbuf[1]=disp->label[1]; lbuf[2]=0; disp->label[0]=0; - pwd = getpwnam(lbuf); + pwd = getpwuid(atoi(lbuf)); pbuf=disp->label+2; if (pwd != NULL) { salt[0] = pwd->pw_passwd[0]; diff --git a/src/gui/login.c.org b/src/gui/login.c.org new file mode 100644 index 00000000..598cf056 --- /dev/null +++ b/src/gui/login.c.org @@ -0,0 +1,93 @@ +/* login.c + * descripton: login into a user account + * author: Alistair Riddoch + * modification: David Murn + * Added password entry + * modification: Shane Kerr + * More work on password entry + */ + +/* todo: add a timeout for serial and network logins */ +/* ??? need a signal mechanism (i.e. alarm() and SIGALRM) */ +/* real getpass() ! */ + +#include +#include +#include +#include +#include +#include + +void login(pwd, argv) + struct passwd *pwd; + char **argv; +{ + char pname[64]; + char *bname; + +#if 1 /* addition by Nick, please see linux manpage passwd.5 */ + if (!*pwd->pw_shell) + { + pwd->pw_shell = "/bin/sh"; + } +#endif + +/* chown("/dev/tty",pwd->pw_uid,pwd->pw_gid); */ + pname[0] = '-'; + if ((bname = strrchr(pwd->pw_shell, '/')) != NULL) + bname++; + else bname = pwd->pw_shell; + strcpy(pname+1, bname); + argv[0] = pname; + argv[1] = NULL; + /* we must set first GID, because we're still root + if UID is set first and we aren't logging as root, + we won't have permission to change our GID */ + setgid(pwd->pw_gid); + setuid(pwd->pw_uid); + chdir(pwd->pw_dir); + setenv("HOME", pwd->pw_dir, 1); + setenv("USER", pwd->pw_name, 1); + execv(pwd->pw_shell, argv); + perror(pwd->pw_shell); + exit(1); +} + +void login_actionhandler(struct Component* this){ + char lbuf[20], *pbuf, salt[3], *s; + struct passwd *pwd; + int n; + struct ActionXDS *act; + struct Component* disp=this; + + act=(struct ActionXDS*) (this->xds); + if(act->action==0x0101){ + lbuf[0]=disp->label[0]; + lbuf[1]=disp->label[1]; + lbuf[2]=0; + disp->label[0]=0; + pwd = getpwnam(lbuf); + pbuf=disp->label+2; + if (pwd != NULL) { + salt[0] = pwd->pw_passwd[0]; + salt[1] = pwd->pw_passwd[1]; + salt[2] = 0; + s = crypt(pbuf, salt); + if (!strcmp(s, pwd->pw_passwd)){ + ClearScreen(); + login(pwd, NULL); + } + } + disp->paint(disp); + } +} + +void main(int argc, char** argv) +{ + GUIinit(); + gui_globals()->actionhandler=login_actionhandler; + GUIgo("/wnd/logn.scr"); + GUIunit(); +} + + diff --git a/src/gui/login.lst b/src/gui/login.lst index bd842b16..a7595258 100644 --- a/src/gui/login.lst +++ b/src/gui/login.lst @@ -5,333 +5,338 @@ 5 EXTERN GUIgo 6 EXTERN GUIinit 7 EXTERN GUIunit - 8 EXTERN chdir - 9 EXTERN crypt - 10 EXTERN execv - 11 EXTERN exit - 12 EXTERN getpwnam - 13 EXTERN gui_globals - 14 PUBLIC login - 15 PUBLIC login_actionhandler - 16 PUBLIC main - 17 EXTERN perror - 18 EXTERN setenv - 19 EXTERN setgid - 20 EXTERN setuid - 21 EXTERN strcmp - 22 EXTERN strcpy - 23 EXTERN strrchr - 24 EXTERN ?CL64180B_4_06_L00 - 25 EXTERN ?BANK_CALL_DIRECT_L08 - 26 EXTERN ?BANK_LEAVE_DIRECT_L08 - 27 EXTERN ?BANK_FAST_LEAVE_L08 - 28 EXTERN ?ENT_PARM_DIRECT_L09 - 29 EXTERN ?ENT_AUTO_DIRECT_L09 - 30 RSEG CODE - 00000000 31 login: - 00000000 FD E5 32 PUSH IY - 00000002 DD E5 33 PUSH IX - 00000004 C5 34 PUSH BC - 00000005 21 C0 FF 35 LD HL,65472 - 00000008 39 36 ADD HL,SP - 00000009 F9 37 LD SP,HL - 0000000A D5 38 PUSH DE - 0000000B DD E1 39 POP IX - 0000000D 21 0C 00 40 LD HL,12 - 00000010 19 41 ADD HL,DE - 00000011 7E 42 LD A,(HL) - 00000012 23 43 INC HL - 00000013 66 44 LD H,(HL) - 00000014 6F 45 LD L,A - 00000015 AF 46 XOR A - 00000016 B6 47 OR (HL) - 00000017 20 08 48 JR NZ,?0001 - 00000019 49 ?0000: - 00000019 DD 36 0C 00 50 LD (IX+12),LOW(?0002) - 0000001D DD 36 0D 00 51 LD (IX+13),HIGH(?0002) - 00000021 52 ?0001: - 00000021 21 00 00 53 LD HL,0 - 00000024 39 54 ADD HL,SP - 00000025 36 2D 55 LD (HL),45 - 00000027 01 2F 00 56 LD BC,47 - 0000002A DD 5E 0C 57 LD E,(IX+12) - 0000002D DD 56 0D 58 LD D,(IX+13) - 00000030 3E 00 59 LD A,BYTE3 strrchr - 00000032 21 00 00 60 LD HL,LWRD strrchr - 00000035 CD 00 00 61 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000038 E5 62 PUSH HL - 00000039 FD E1 63 POP IY - 0000003B 7D 64 LD A,L - 0000003C B4 65 OR H - 0000003D 28 04 66 JR Z,?0004 - 0000003F 67 ?0003: - 0000003F FD 23 68 INC IY - 00000041 18 09 69 JR ?0005 - 00000043 70 ?0004: - 00000043 DD 6E 0C 71 LD L,(IX+12) - 00000046 DD 66 0D 72 LD H,(IX+13) - 00000049 E5 73 PUSH HL - 0000004A FD E1 74 POP IY - 0000004C 75 ?0005: - 0000004C FD E5 76 PUSH IY - 0000004E C1 77 POP BC - 0000004F 21 00 00 78 LD HL,0 - 00000052 39 79 ADD HL,SP - 00000053 11 01 00 80 LD DE,1 - 00000056 19 81 ADD HL,DE - 00000057 EB 82 EX DE,HL - 00000058 3E 00 83 LD A,BYTE3 strcpy - 0000005A 21 00 00 84 LD HL,LWRD strcpy - 0000005D CD 00 00 85 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000060 21 00 00 86 LD HL,0 - 00000063 39 87 ADD HL,SP - 00000064 E5 88 PUSH HL - 00000065 21 42 00 89 LD HL,66 - 00000068 39 90 ADD HL,SP - 00000069 7E 91 LD A,(HL) - 0000006A 23 92 INC HL - 0000006B 66 93 LD H,(HL) - 0000006C 6F 94 LD L,A - 0000006D C1 95 POP BC - 0000006E 71 96 LD (HL),C - 0000006F 23 97 INC HL - 00000070 70 98 LD (HL),B - 00000071 21 40 00 99 LD HL,64 - 00000074 39 100 ADD HL,SP - 00000075 47 101 LD B,A - 00000076 23 102 INC HL - 00000077 66 103 LD H,(HL) - 00000078 68 104 LD L,B - 00000079 23 105 INC HL - 0000007A 23 106 INC HL - 0000007B AF 107 XOR A - 0000007C 77 108 LD (HL),A - 0000007D 23 109 INC HL - 0000007E 77 110 LD (HL),A - 0000007F DD 5E 06 111 LD E,(IX+6) - 00000082 DD 56 07 112 LD D,(IX+7) - 00000085 3E 00 113 LD A,BYTE3 setgid - 00000087 21 00 00 114 LD HL,LWRD setgid - 0000008A CD 00 00 115 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000008D DD 5E 04 116 LD E,(IX+4) - 00000090 DD 56 05 117 LD D,(IX+5) - 00000093 3E 00 118 LD A,BYTE3 setuid - 00000095 21 00 00 119 LD HL,LWRD setuid - 00000098 CD 00 00 120 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000009B DD 5E 0A 121 LD E,(IX+10) - 0000009E DD 56 0B 122 LD D,(IX+11) - 000000A1 3E 00 123 LD A,BYTE3 chdir - 000000A3 21 00 00 124 LD HL,LWRD chdir - 000000A6 CD 00 00 125 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000A9 21 01 00 126 LD HL,1 - 000000AC E5 127 PUSH HL - 000000AD DD 4E 0A 128 LD C,(IX+10) - 000000B0 DD 46 0B 129 LD B,(IX+11) - 000000B3 11 08 00 130 LD DE,?0006 - 000000B6 3E 00 131 LD A,BYTE3 setenv - 000000B8 21 00 00 132 LD HL,LWRD setenv - 000000BB CD 00 00 133 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000BE F1 134 POP AF - 000000BF 21 01 00 135 LD HL,1 - 000000C2 E5 136 PUSH HL - 000000C3 DD 4E 00 137 LD C,(IX+0) - 000000C6 DD 46 01 138 LD B,(IX+1) - 000000C9 11 0D 00 139 LD DE,?0007 - 000000CC 3E 00 140 LD A,BYTE3 setenv - 000000CE 21 00 00 141 LD HL,LWRD setenv - 000000D1 CD 00 00 142 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000D4 F1 143 POP AF - 000000D5 21 40 00 144 LD HL,64 - 000000D8 39 145 ADD HL,SP - 000000D9 4E 146 LD C,(HL) - 000000DA 23 147 INC HL - 000000DB 46 148 LD B,(HL) - 000000DC DD 5E 0C 149 LD E,(IX+12) - 000000DF DD 56 0D 150 LD D,(IX+13) - 000000E2 3E 00 151 LD A,BYTE3 execv - 000000E4 21 00 00 152 LD HL,LWRD execv - 000000E7 CD 00 00 153 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000EA DD 5E 0C 154 LD E,(IX+12) - 000000ED DD 56 0D 155 LD D,(IX+13) - 000000F0 3E 00 156 LD A,BYTE3 perror - 000000F2 21 00 00 157 LD HL,LWRD perror - 000000F5 CD 00 00 158 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000F8 11 01 00 159 LD DE,1 - 000000FB 3E 00 160 LD A,BYTE3 exit - 000000FD 21 00 00 161 LD HL,LWRD exit - 00000100 CD 00 00 162 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000103 21 42 00 163 LD HL,66 - 00000106 39 164 ADD HL,SP - 00000107 F9 165 LD SP,HL - 00000108 DD E1 166 POP IX - 0000010A FD E1 167 POP IY - 0000010C C3 00 00 168 JP LWRD ?BANK_FAST_LEAVE_L08 - 0000010F 169 login_actionhandler: - 0000010F CD 00 00 170 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000112 E0 FF 171 DEFW -32 - 00000114 FD E5 172 PUSH IY - 00000116 DD 6E 02 173 LD L,(IX+2) - 00000119 DD 66 03 174 LD H,(IX+3) - 0000011C E5 175 PUSH HL - 0000011D FD E1 176 POP IY - 0000011F 21 26 00 177 LD HL,38 - 00000122 DD 4E 02 178 LD C,(IX+2) - 00000125 DD 46 03 179 LD B,(IX+3) - 00000128 09 180 ADD HL,BC - 00000129 46 181 LD B,(HL) - 0000012A 23 182 INC HL - 0000012B 66 183 LD H,(HL) - 0000012C 68 184 LD L,B - 0000012D 23 185 INC HL - 0000012E 23 186 INC HL - 0000012F 23 187 INC HL - 00000130 46 188 LD B,(HL) - 00000131 23 189 INC HL - 00000132 66 190 LD H,(HL) - 00000133 68 191 LD L,B - 00000134 01 01 01 192 LD BC,257 - 00000137 A7 193 AND A - 00000138 ED 42 194 SBC HL,BC - 0000013A C2 03 02 195 JP NZ,?0009 - 0000013D 196 ?0008: - 0000013D FD 6E 20 197 LD L,(IY+32) - 00000140 FD 66 21 198 LD H,(IY+33) - 00000143 46 199 LD B,(HL) - 00000144 DD 70 EC 200 LD (IX-20),B - 00000147 FD 6E 20 201 LD L,(IY+32) - 0000014A FD 66 21 202 LD H,(IY+33) - 0000014D 23 203 INC HL - 0000014E 46 204 LD B,(HL) - 0000014F DD 70 ED 205 LD (IX-19),B - 00000152 DD 36 EE 00 206 LD (IX-18),0 - 00000156 FD 6E 20 207 LD L,(IY+32) - 00000159 FD 66 21 208 LD H,(IY+33) - 0000015C 36 00 209 LD (HL),0 - 0000015E 21 0E 00 210 LD HL,14 - 00000161 39 211 ADD HL,SP - 00000162 EB 212 EX DE,HL - 00000163 3E 00 213 LD A,BYTE3 getpwnam - 00000165 21 00 00 214 LD HL,LWRD getpwnam - 00000168 CD 00 00 215 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000016B DD 75 E0 216 LD (IX-32),L - 0000016E DD 74 E1 217 LD (IX-31),H - 00000171 FD 4E 20 218 LD C,(IY+32) - 00000174 FD 46 21 219 LD B,(IY+33) - 00000177 03 220 INC BC - 00000178 03 221 INC BC - 00000179 DD 71 EA 222 LD (IX-22),C - 0000017C DD 70 EB 223 LD (IX-21),B - 0000017F 7D 224 LD A,L - 00000180 B4 225 OR H - 00000181 28 71 226 JR Z,?0013 - 00000183 227 ?0010: - 00000183 23 228 INC HL - 00000184 23 229 INC HL - 00000185 7E 230 LD A,(HL) - 00000186 23 231 INC HL - 00000187 66 232 LD H,(HL) - 00000188 6F 233 LD L,A - 00000189 46 234 LD B,(HL) - 0000018A DD 70 E2 235 LD (IX-30),B - 0000018D DD 6E E0 236 LD L,(IX-32) - 00000190 DD 66 E1 237 LD H,(IX-31) - 00000193 23 238 INC HL - 00000194 23 239 INC HL - 00000195 46 240 LD B,(HL) - 00000196 23 241 INC HL - 00000197 66 242 LD H,(HL) - 00000198 68 243 LD L,B - 00000199 23 244 INC HL - 0000019A 46 245 LD B,(HL) - 0000019B DD 70 E3 246 LD (IX-29),B - 0000019E DD 36 E4 00 247 LD (IX-28),0 - 000001A2 21 04 00 248 LD HL,4 - 000001A5 39 249 ADD HL,SP - 000001A6 4D 250 LD C,L - 000001A7 44 251 LD B,H - 000001A8 DD 5E EA 252 LD E,(IX-22) - 000001AB DD 56 EB 253 LD D,(IX-21) - 000001AE 3E 00 254 LD A,BYTE3 crypt - 000001B0 21 00 00 255 LD HL,LWRD crypt - 000001B3 CD 00 00 256 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001B6 DD 75 E8 257 LD (IX-24),L - 000001B9 DD 74 E9 258 LD (IX-23),H - 000001BC DD 4E E0 259 LD C,(IX-32) - 000001BF DD 46 E1 260 LD B,(IX-31) - 000001C2 03 261 INC BC - 000001C3 03 262 INC BC - 000001C4 69 263 LD L,C - 000001C5 60 264 LD H,B - 000001C6 4E 265 LD C,(HL) - 000001C7 23 266 INC HL - 000001C8 46 267 LD B,(HL) - 000001C9 DD 5E E8 268 LD E,(IX-24) - 000001CC DD 56 E9 269 LD D,(IX-23) - 000001CF 3E 00 270 LD A,BYTE3 strcmp - 000001D1 21 00 00 271 LD HL,LWRD strcmp - 000001D4 CD 00 00 272 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001D7 7D 273 LD A,L - 000001D8 B4 274 OR H - 000001D9 20 19 275 JR NZ,?0013 - 000001DB 276 ?0012: - 000001DB 3E 00 277 LD A,BYTE3 ClearScreen - 000001DD 21 00 00 278 LD HL,LWRD ClearScreen - 000001E0 CD 00 00 279 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001E3 01 00 00 280 LD BC,0 - 000001E6 DD 5E E0 281 LD E,(IX-32) - 000001E9 DD 56 E1 282 LD D,(IX-31) - 000001EC 3E 00 283 LD A,BYTE3 login - 000001EE 21 00 00 284 LD HL,LWRD login - 000001F1 CD 00 00 285 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001F4 286 ?0013: - 000001F4 287 ?0011: - 000001F4 FD E5 288 PUSH IY - 000001F6 D1 289 POP DE - 000001F7 FD 7E 1C 290 LD A,(IY+28) - 000001FA FD 6E 1A 291 LD L,(IY+26) - 000001FD FD 66 1B 292 LD H,(IY+27) - 00000200 CD 00 00 293 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000203 294 ?0009: - 00000203 FD E1 295 POP IY - 00000205 C3 00 00 296 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000208 297 main: - 00000208 CD 00 00 298 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000020B 3E 00 299 LD A,BYTE3 GUIinit - 0000020D 21 00 00 300 LD HL,LWRD GUIinit - 00000210 CD 00 00 301 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000213 3E 00 302 LD A,BYTE3 gui_globals - 00000215 21 00 00 303 LD HL,LWRD gui_globals - 00000218 CD 00 00 304 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000021B 01 10 00 305 LD BC,16 - 0000021E 09 306 ADD HL,BC - 0000021F 36 0F 307 LD (HL),LOW(login_actionhandler) - 00000221 23 308 INC HL - 00000222 36 01 309 LD (HL),HIGH(login_actionhandler) - 00000224 23 310 INC HL - 00000225 36 0F 311 LD (HL),BYTE3 login_actionhandler - 00000227 11 12 00 312 LD DE,?0014 - 0000022A 3E 00 313 LD A,BYTE3 GUIgo - 0000022C 21 00 00 314 LD HL,LWRD GUIgo - 0000022F CD 00 00 315 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000232 3E 00 316 LD A,BYTE3 GUIunit - 00000234 21 00 00 317 LD HL,LWRD GUIunit - 00000237 CD 00 00 318 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000023A C3 00 00 319 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 320 RSEG CSTR - 00000000 321 ?0002: - 00000000 2F 62 69 6E 2F 73 68 322 DEFB '/bin/sh' - 00000007 00 323 DEFB 0 - 00000008 324 ?0006: - 00000008 48 4F 4D 45 325 DEFB 'HOME' - 0000000C 00 326 DEFB 0 - 0000000D 327 ?0007: - 0000000D 55 53 45 52 328 DEFB 'USER' - 00000011 00 329 DEFB 0 - 00000012 330 ?0014: - 00000012 2F 77 6E 64 2F 6C 6F 331 DEFB '/wnd/logn.scr' + 8 EXTERN atoi + 9 EXTERN chdir + 10 EXTERN crypt + 11 EXTERN execv + 12 EXTERN exit + 13 EXTERN getpwuid + 14 EXTERN gui_globals + 15 PUBLIC login + 16 PUBLIC login_actionhandler + 17 PUBLIC main + 18 EXTERN perror + 19 EXTERN setenv + 20 EXTERN setgid + 21 EXTERN setuid + 22 EXTERN strcmp + 23 EXTERN strcpy + 24 EXTERN strrchr + 25 EXTERN ?CL64180B_4_06_L00 + 26 EXTERN ?BANK_CALL_DIRECT_L08 + 27 EXTERN ?BANK_LEAVE_DIRECT_L08 + 28 EXTERN ?BANK_FAST_LEAVE_L08 + 29 EXTERN ?ENT_PARM_DIRECT_L09 + 30 EXTERN ?ENT_AUTO_DIRECT_L09 + 31 RSEG CODE + 00000000 32 login: + 00000000 FD E5 33 PUSH IY + 00000002 DD E5 34 PUSH IX + 00000004 C5 35 PUSH BC + 00000005 21 C0 FF 36 LD HL,65472 + 00000008 39 37 ADD HL,SP + 00000009 F9 38 LD SP,HL + 0000000A D5 39 PUSH DE + 0000000B DD E1 40 POP IX + 0000000D 21 0C 00 41 LD HL,12 + 00000010 19 42 ADD HL,DE + 00000011 7E 43 LD A,(HL) + 00000012 23 44 INC HL + 00000013 66 45 LD H,(HL) + 00000014 6F 46 LD L,A + 00000015 AF 47 XOR A + 00000016 B6 48 OR (HL) + 00000017 20 08 49 JR NZ,?0001 + 00000019 50 ?0000: + 00000019 DD 36 0C 00 51 LD (IX+12),LOW(?0002) + 0000001D DD 36 0D 00 52 LD (IX+13),HIGH(?0002) + 00000021 53 ?0001: + 00000021 21 00 00 54 LD HL,0 + 00000024 39 55 ADD HL,SP + 00000025 36 2D 56 LD (HL),45 + 00000027 01 2F 00 57 LD BC,47 + 0000002A DD 5E 0C 58 LD E,(IX+12) + 0000002D DD 56 0D 59 LD D,(IX+13) + 00000030 3E 00 60 LD A,BYTE3 strrchr + 00000032 21 00 00 61 LD HL,LWRD strrchr + 00000035 CD 00 00 62 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000038 E5 63 PUSH HL + 00000039 FD E1 64 POP IY + 0000003B 7D 65 LD A,L + 0000003C B4 66 OR H + 0000003D 28 04 67 JR Z,?0004 + 0000003F 68 ?0003: + 0000003F FD 23 69 INC IY + 00000041 18 09 70 JR ?0005 + 00000043 71 ?0004: + 00000043 DD 6E 0C 72 LD L,(IX+12) + 00000046 DD 66 0D 73 LD H,(IX+13) + 00000049 E5 74 PUSH HL + 0000004A FD E1 75 POP IY + 0000004C 76 ?0005: + 0000004C FD E5 77 PUSH IY + 0000004E C1 78 POP BC + 0000004F 21 00 00 79 LD HL,0 + 00000052 39 80 ADD HL,SP + 00000053 11 01 00 81 LD DE,1 + 00000056 19 82 ADD HL,DE + 00000057 EB 83 EX DE,HL + 00000058 3E 00 84 LD A,BYTE3 strcpy + 0000005A 21 00 00 85 LD HL,LWRD strcpy + 0000005D CD 00 00 86 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000060 21 00 00 87 LD HL,0 + 00000063 39 88 ADD HL,SP + 00000064 E5 89 PUSH HL + 00000065 21 42 00 90 LD HL,66 + 00000068 39 91 ADD HL,SP + 00000069 7E 92 LD A,(HL) + 0000006A 23 93 INC HL + 0000006B 66 94 LD H,(HL) + 0000006C 6F 95 LD L,A + 0000006D C1 96 POP BC + 0000006E 71 97 LD (HL),C + 0000006F 23 98 INC HL + 00000070 70 99 LD (HL),B + 00000071 21 40 00 100 LD HL,64 + 00000074 39 101 ADD HL,SP + 00000075 47 102 LD B,A + 00000076 23 103 INC HL + 00000077 66 104 LD H,(HL) + 00000078 68 105 LD L,B + 00000079 23 106 INC HL + 0000007A 23 107 INC HL + 0000007B AF 108 XOR A + 0000007C 77 109 LD (HL),A + 0000007D 23 110 INC HL + 0000007E 77 111 LD (HL),A + 0000007F DD 5E 06 112 LD E,(IX+6) + 00000082 DD 56 07 113 LD D,(IX+7) + 00000085 3E 00 114 LD A,BYTE3 setgid + 00000087 21 00 00 115 LD HL,LWRD setgid + 0000008A CD 00 00 116 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000008D DD 5E 04 117 LD E,(IX+4) + 00000090 DD 56 05 118 LD D,(IX+5) + 00000093 3E 00 119 LD A,BYTE3 setuid + 00000095 21 00 00 120 LD HL,LWRD setuid + 00000098 CD 00 00 121 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000009B DD 5E 0A 122 LD E,(IX+10) + 0000009E DD 56 0B 123 LD D,(IX+11) + 000000A1 3E 00 124 LD A,BYTE3 chdir + 000000A3 21 00 00 125 LD HL,LWRD chdir + 000000A6 CD 00 00 126 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000A9 21 01 00 127 LD HL,1 + 000000AC E5 128 PUSH HL + 000000AD DD 4E 0A 129 LD C,(IX+10) + 000000B0 DD 46 0B 130 LD B,(IX+11) + 000000B3 11 08 00 131 LD DE,?0006 + 000000B6 3E 00 132 LD A,BYTE3 setenv + 000000B8 21 00 00 133 LD HL,LWRD setenv + 000000BB CD 00 00 134 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000BE F1 135 POP AF + 000000BF 21 01 00 136 LD HL,1 + 000000C2 E5 137 PUSH HL + 000000C3 DD 4E 00 138 LD C,(IX+0) + 000000C6 DD 46 01 139 LD B,(IX+1) + 000000C9 11 0D 00 140 LD DE,?0007 + 000000CC 3E 00 141 LD A,BYTE3 setenv + 000000CE 21 00 00 142 LD HL,LWRD setenv + 000000D1 CD 00 00 143 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000D4 F1 144 POP AF + 000000D5 21 40 00 145 LD HL,64 + 000000D8 39 146 ADD HL,SP + 000000D9 4E 147 LD C,(HL) + 000000DA 23 148 INC HL + 000000DB 46 149 LD B,(HL) + 000000DC DD 5E 0C 150 LD E,(IX+12) + 000000DF DD 56 0D 151 LD D,(IX+13) + 000000E2 3E 00 152 LD A,BYTE3 execv + 000000E4 21 00 00 153 LD HL,LWRD execv + 000000E7 CD 00 00 154 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000EA DD 5E 0C 155 LD E,(IX+12) + 000000ED DD 56 0D 156 LD D,(IX+13) + 000000F0 3E 00 157 LD A,BYTE3 perror + 000000F2 21 00 00 158 LD HL,LWRD perror + 000000F5 CD 00 00 159 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000F8 11 01 00 160 LD DE,1 + 000000FB 3E 00 161 LD A,BYTE3 exit + 000000FD 21 00 00 162 LD HL,LWRD exit + 00000100 CD 00 00 163 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000103 21 42 00 164 LD HL,66 + 00000106 39 165 ADD HL,SP + 00000107 F9 166 LD SP,HL + 00000108 DD E1 167 POP IX + 0000010A FD E1 168 POP IY + 0000010C C3 00 00 169 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000010F 170 login_actionhandler: + 0000010F CD 00 00 171 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000112 E0 FF 172 DEFW -32 + 00000114 FD E5 173 PUSH IY + 00000116 DD 6E 02 174 LD L,(IX+2) + 00000119 DD 66 03 175 LD H,(IX+3) + 0000011C E5 176 PUSH HL + 0000011D FD E1 177 POP IY + 0000011F 21 26 00 178 LD HL,38 + 00000122 DD 4E 02 179 LD C,(IX+2) + 00000125 DD 46 03 180 LD B,(IX+3) + 00000128 09 181 ADD HL,BC + 00000129 46 182 LD B,(HL) + 0000012A 23 183 INC HL + 0000012B 66 184 LD H,(HL) + 0000012C 68 185 LD L,B + 0000012D 23 186 INC HL + 0000012E 23 187 INC HL + 0000012F 23 188 INC HL + 00000130 46 189 LD B,(HL) + 00000131 23 190 INC HL + 00000132 66 191 LD H,(HL) + 00000133 68 192 LD L,B + 00000134 01 01 01 193 LD BC,257 + 00000137 A7 194 AND A + 00000138 ED 42 195 SBC HL,BC + 0000013A C2 0C 02 196 JP NZ,?0009 + 0000013D 197 ?0008: + 0000013D FD 6E 20 198 LD L,(IY+32) + 00000140 FD 66 21 199 LD H,(IY+33) + 00000143 46 200 LD B,(HL) + 00000144 DD 70 EC 201 LD (IX-20),B + 00000147 FD 6E 20 202 LD L,(IY+32) + 0000014A FD 66 21 203 LD H,(IY+33) + 0000014D 23 204 INC HL + 0000014E 46 205 LD B,(HL) + 0000014F DD 70 ED 206 LD (IX-19),B + 00000152 DD 36 EE 00 207 LD (IX-18),0 + 00000156 FD 6E 20 208 LD L,(IY+32) + 00000159 FD 66 21 209 LD H,(IY+33) + 0000015C 36 00 210 LD (HL),0 + 0000015E 21 0E 00 211 LD HL,14 + 00000161 39 212 ADD HL,SP + 00000162 EB 213 EX DE,HL + 00000163 3E 00 214 LD A,BYTE3 atoi + 00000165 21 00 00 215 LD HL,LWRD atoi + 00000168 CD 00 00 216 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000016B EB 217 EX DE,HL + 0000016C 3E 00 218 LD A,BYTE3 getpwuid + 0000016E 21 00 00 219 LD HL,LWRD getpwuid + 00000171 CD 00 00 220 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000174 DD 75 E0 221 LD (IX-32),L + 00000177 DD 74 E1 222 LD (IX-31),H + 0000017A FD 4E 20 223 LD C,(IY+32) + 0000017D FD 46 21 224 LD B,(IY+33) + 00000180 03 225 INC BC + 00000181 03 226 INC BC + 00000182 DD 71 EA 227 LD (IX-22),C + 00000185 DD 70 EB 228 LD (IX-21),B + 00000188 7D 229 LD A,L + 00000189 B4 230 OR H + 0000018A 28 71 231 JR Z,?0013 + 0000018C 232 ?0010: + 0000018C 23 233 INC HL + 0000018D 23 234 INC HL + 0000018E 7E 235 LD A,(HL) + 0000018F 23 236 INC HL + 00000190 66 237 LD H,(HL) + 00000191 6F 238 LD L,A + 00000192 46 239 LD B,(HL) + 00000193 DD 70 E2 240 LD (IX-30),B + 00000196 DD 6E E0 241 LD L,(IX-32) + 00000199 DD 66 E1 242 LD H,(IX-31) + 0000019C 23 243 INC HL + 0000019D 23 244 INC HL + 0000019E 46 245 LD B,(HL) + 0000019F 23 246 INC HL + 000001A0 66 247 LD H,(HL) + 000001A1 68 248 LD L,B + 000001A2 23 249 INC HL + 000001A3 46 250 LD B,(HL) + 000001A4 DD 70 E3 251 LD (IX-29),B + 000001A7 DD 36 E4 00 252 LD (IX-28),0 + 000001AB 21 04 00 253 LD HL,4 + 000001AE 39 254 ADD HL,SP + 000001AF 4D 255 LD C,L + 000001B0 44 256 LD B,H + 000001B1 DD 5E EA 257 LD E,(IX-22) + 000001B4 DD 56 EB 258 LD D,(IX-21) + 000001B7 3E 00 259 LD A,BYTE3 crypt + 000001B9 21 00 00 260 LD HL,LWRD crypt + 000001BC CD 00 00 261 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001BF DD 75 E8 262 LD (IX-24),L + 000001C2 DD 74 E9 263 LD (IX-23),H + 000001C5 DD 4E E0 264 LD C,(IX-32) + 000001C8 DD 46 E1 265 LD B,(IX-31) + 000001CB 03 266 INC BC + 000001CC 03 267 INC BC + 000001CD 69 268 LD L,C + 000001CE 60 269 LD H,B + 000001CF 4E 270 LD C,(HL) + 000001D0 23 271 INC HL + 000001D1 46 272 LD B,(HL) + 000001D2 DD 5E E8 273 LD E,(IX-24) + 000001D5 DD 56 E9 274 LD D,(IX-23) + 000001D8 3E 00 275 LD A,BYTE3 strcmp + 000001DA 21 00 00 276 LD HL,LWRD strcmp + 000001DD CD 00 00 277 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001E0 7D 278 LD A,L + 000001E1 B4 279 OR H + 000001E2 20 19 280 JR NZ,?0013 + 000001E4 281 ?0012: + 000001E4 3E 00 282 LD A,BYTE3 ClearScreen + 000001E6 21 00 00 283 LD HL,LWRD ClearScreen + 000001E9 CD 00 00 284 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001EC 01 00 00 285 LD BC,0 + 000001EF DD 5E E0 286 LD E,(IX-32) + 000001F2 DD 56 E1 287 LD D,(IX-31) + 000001F5 3E 00 288 LD A,BYTE3 login + 000001F7 21 00 00 289 LD HL,LWRD login + 000001FA CD 00 00 290 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001FD 291 ?0013: + 000001FD 292 ?0011: + 000001FD FD E5 293 PUSH IY + 000001FF D1 294 POP DE + 00000200 FD 7E 1C 295 LD A,(IY+28) + 00000203 FD 6E 1A 296 LD L,(IY+26) + 00000206 FD 66 1B 297 LD H,(IY+27) + 00000209 CD 00 00 298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000020C 299 ?0009: + 0000020C FD E1 300 POP IY + 0000020E C3 00 00 301 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000211 302 main: + 00000211 CD 00 00 303 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000214 3E 00 304 LD A,BYTE3 GUIinit + 00000216 21 00 00 305 LD HL,LWRD GUIinit + 00000219 CD 00 00 306 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000021C 3E 00 307 LD A,BYTE3 gui_globals + 0000021E 21 00 00 308 LD HL,LWRD gui_globals + 00000221 CD 00 00 309 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000224 01 10 00 310 LD BC,16 + 00000227 09 311 ADD HL,BC + 00000228 36 0F 312 LD (HL),LOW(login_actionhandler) + 0000022A 23 313 INC HL + 0000022B 36 01 314 LD (HL),HIGH(login_actionhandler) + 0000022D 23 315 INC HL + 0000022E 36 0F 316 LD (HL),BYTE3 login_actionhandler + 00000230 11 12 00 317 LD DE,?0014 + 00000233 3E 00 318 LD A,BYTE3 GUIgo + 00000235 21 00 00 319 LD HL,LWRD GUIgo + 00000238 CD 00 00 320 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000023B 3E 00 321 LD A,BYTE3 GUIunit + 0000023D 21 00 00 322 LD HL,LWRD GUIunit + 00000240 CD 00 00 323 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000243 C3 00 00 324 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 325 RSEG CSTR + 00000000 326 ?0002: + 00000000 2F 62 69 6E 2F 73 68 327 DEFB '/bin/sh' + 00000007 00 328 DEFB 0 + 00000008 329 ?0006: + 00000008 48 4F 4D 45 330 DEFB 'HOME' + 0000000C 00 331 DEFB 0 + 0000000D 332 ?0007: + 0000000D 55 53 45 52 333 DEFB 'USER' + 00000011 00 334 DEFB 0 + 00000012 335 ?0014: + 00000012 2F 77 6E 64 2F 6C 6F 336 DEFB '/wnd/logn.scr' 67 6E 2E 73 63 72 - 0000001F 00 332 DEFB 0 - 00000020 333 END + 0000001F 00 337 DEFB 0 + 00000020 338 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] @@ -342,28 +347,28 @@ Symbol Table 1 ?0003 0000003F R | 1 ?0004 00000043 R 1 ?0005 0000004C R | 2 ?0006 00000008 R 2 ?0007 0000000D R | 1 ?0008 0000013D R - 1 ?0009 00000203 R | 1 ?0010 00000183 R - 1 ?0011 000001F4 R | 1 ?0012 000001DB R - 1 ?0013 000001F4 R | 2 ?0014 00000012 R + 1 ?0009 0000020C R | 1 ?0010 0000018C R + 1 ?0011 000001FD R | 1 ?0012 000001E4 R + 1 ?0013 000001FD R | 2 ?0014 00000012 R ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX ?ENT_AUTO_DIRE ******** GX | ?ENT_PARM_DIRE ******** GX ClearScreen ******** GX | GUIgo ******** GX GUIinit ******** GX | GUIunit ******** GX - chdir ******** GX | crypt ******** GX - execv ******** GX | exit ******** GX - getpwnam ******** GX | gui_globals ******** GX - 1 login 00000000 GR | 1 login_actionha 0000010F GR - 1 main 00000208 GR | perror ******** GX - setenv ******** GX | setgid ******** GX - setuid ******** GX | strcmp ******** GX - strcpy ******** GX | strrchr ******** GX - + atoi ******** GX | chdir ******** GX + crypt ******** GX | execv ******** GX + exit ******** GX | getpwuid ******** GX + gui_globals ******** GX | 1 login 00000000 GR + 1 login_actionha 0000010F GR | 1 main 00000211 GR + perror ******** GX | setenv ******** GX + setgid ******** GX | setuid ******** GX + strcmp ******** GX | strcpy ******** GX + strrchr ******** GX ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 23D flags 0 + 1 CODE size 246 flags 0 2 CSTR size 20 flags 0 diff --git a/src/gui/login.rel b/src/gui/login.rel index ca893803..5ceecf27 100644 --- a/src/gui/login.rel +++ b/src/gui/login.rel @@ -1,5 +1,5 @@ XL4 -H 3 areas 1B global symbols +H 3 areas 1C global symbols M login S setgid Ref00000000 S GUIunit Ref00000000 @@ -17,19 +17,20 @@ S execv Ref00000000 S GUIgo Ref00000000 S ?ENT_PARM_DIRECT_L09 Ref00000000 S ?BANK_CALL_DIRECT_L08 Ref00000000 -S getpwnam Ref00000000 S strcpy Ref00000000 +S getpwuid Ref00000000 S ?ENT_AUTO_DIRECT_L09 Ref00000000 +S atoi Ref00000000 S crypt Ref00000000 S ?CL64180B_4_06_L00 Ref00000000 S GUIinit Ref00000000 S exit Ref00000000 S .__.ABS. Def00000000 A _DEFAULT size 0 flags 0 -A CODE size 23D flags 0 +A CODE size 246 flags 0 S login_actionhandler Def0000010F S login Def00000000 -S main Def00000208 +S main Def00000211 A CSTR size 20 flags 0 T 00 00 00 00 R 00 00 01 00 @@ -68,7 +69,7 @@ R 00 00 01 00 T 4C 00 00 00 FD E5 C1 21 00 00 39 11 01 00 19 R 00 00 01 00 T 57 00 00 00 EB 3E 00 00 00 00 21 00 00 00 00 -R 00 00 01 00 2B 06 11 00 02 0B 11 00 +R 00 00 01 00 2B 06 10 00 02 0B 10 00 T 5D 00 00 00 CD 00 00 00 00 21 00 00 39 E5 21 R 00 00 01 00 02 05 0F 00 T 66 00 00 00 42 00 39 7E 23 66 6F C1 71 23 70 @@ -112,7 +113,7 @@ R 00 00 01 00 2B 04 0B 00 02 09 0B 00 T F6 00 00 00 00 00 00 00 11 01 00 3E R 00 00 01 00 02 04 0F 00 T FC 00 00 00 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 04 16 00 02 09 16 00 +R 00 00 01 00 2B 04 17 00 02 09 17 00 T 01 01 00 00 00 00 00 00 21 42 00 39 F9 DD E1 R 00 00 01 00 02 04 0F 00 T 0A 01 00 00 FD E1 C3 00 00 00 00 @@ -127,7 +128,7 @@ T 23 01 00 00 4E 02 DD 46 03 09 46 23 66 68 23 R 00 00 01 00 T 2E 01 00 00 23 23 46 23 66 68 01 01 01 A7 ED R 00 00 01 00 -T 39 01 00 00 42 C2 03 02 00 00 +T 39 01 00 00 42 C2 0C 02 00 00 R 00 00 01 00 00 06 01 00 T 3D 01 00 00 R 00 00 01 00 @@ -138,78 +139,82 @@ R 00 00 01 00 T 53 01 00 00 36 EE 00 FD 6E 20 FD 66 21 36 00 R 00 00 01 00 T 5E 01 00 00 21 0E 00 39 EB 3E 00 00 00 00 21 -R 00 00 01 00 2B 0A 10 00 -T 66 01 00 00 00 00 00 00 CD 00 00 00 00 DD 75 -R 00 00 01 00 02 04 10 00 02 09 0F 00 -T 6D 01 00 00 E0 DD 74 E1 FD 4E 20 FD 46 21 03 +R 00 00 01 00 2B 0A 13 00 +T 66 01 00 00 00 00 00 00 CD 00 00 00 00 EB 3E +R 00 00 01 00 02 04 13 00 02 09 0F 00 +T 6D 01 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 11 00 02 09 11 00 +T 72 01 00 00 00 00 00 00 DD 75 E0 DD 74 E1 FD +R 00 00 01 00 02 04 0F 00 +T 7B 01 00 00 4E 20 FD 46 21 03 03 DD 71 EA DD R 00 00 01 00 -T 78 01 00 00 03 DD 71 EA DD 70 EB 7D B4 28 71 +T 86 01 00 00 70 EB 7D B4 28 71 R 00 00 01 00 -T 83 01 00 00 +T 8C 01 00 00 R 00 00 01 00 -T 83 01 00 00 23 23 7E 23 66 6F 46 DD 70 E2 DD +T 8C 01 00 00 23 23 7E 23 66 6F 46 DD 70 E2 DD R 00 00 01 00 -T 8E 01 00 00 6E E0 DD 66 E1 23 23 46 23 66 68 +T 97 01 00 00 6E E0 DD 66 E1 23 23 46 23 66 68 R 00 00 01 00 -T 99 01 00 00 23 46 DD 70 E3 DD 36 E4 00 21 +T A2 01 00 00 23 46 DD 70 E3 DD 36 E4 00 21 R 00 00 01 00 -T A3 01 00 00 04 00 39 4D 44 DD 5E EA DD 56 EB +T AC 01 00 00 04 00 39 4D 44 DD 5E EA DD 56 EB R 00 00 01 00 -T AE 01 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 13 00 02 0A 13 00 -T B4 01 00 00 00 00 00 00 DD 75 E8 DD 74 E9 DD +T B7 01 00 00 3E 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 05 14 00 02 0A 14 00 +T BD 01 00 00 00 00 00 00 DD 75 E8 DD 74 E9 DD R 00 00 01 00 02 04 0F 00 -T BD 01 00 00 4E E0 DD 46 E1 03 03 69 60 4E 23 +T C6 01 00 00 4E E0 DD 46 E1 03 03 69 60 4E 23 R 00 00 01 00 -T C8 01 00 00 46 DD 5E E8 DD 56 E9 3E +T D1 01 00 00 46 DD 5E E8 DD 56 E9 3E R 00 00 01 00 -T D0 01 00 00 00 00 00 00 21 00 00 00 00 CD +T D9 01 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 0A 00 02 09 0A 00 -T D5 01 00 00 00 00 00 00 7D B4 20 19 +T DE 01 00 00 00 00 00 00 7D B4 20 19 R 00 00 01 00 02 04 0F 00 -T DB 01 00 00 +T E4 01 00 00 R 00 00 01 00 -T DB 01 00 00 3E 00 00 00 00 21 00 00 00 00 CD +T E4 01 00 00 3E 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 05 03 00 02 0A 03 00 -T E1 01 00 00 00 00 00 00 01 00 00 DD 5E E0 DD +T EA 01 00 00 00 00 00 00 01 00 00 DD 5E E0 DD R 00 00 01 00 02 04 0F 00 -T EA 01 00 00 56 E1 3E 00 00 00 00 21 +T F3 01 00 00 56 E1 3E 00 00 00 00 21 R 00 00 01 00 29 07 01 00 -T EF 01 00 00 00 00 00 00 CD 00 00 00 00 +T F8 01 00 00 00 00 00 00 CD 00 00 00 00 R 00 00 01 00 00 04 01 00 02 09 0F 00 -T F4 01 00 00 +T FD 01 00 00 R 00 00 01 00 -T F4 01 00 00 +T FD 01 00 00 R 00 00 01 00 -T F4 01 00 00 FD E5 D1 FD 7E 1C FD 6E 1A FD 66 +T FD 01 00 00 FD E5 D1 FD 7E 1C FD 6E 1A FD 66 R 00 00 01 00 -T FF 01 00 00 1B CD 00 00 00 00 +T 08 02 00 00 1B CD 00 00 00 00 R 00 00 01 00 02 06 0F 00 -T 03 02 00 00 +T 0C 02 00 00 R 00 00 01 00 -T 03 02 00 00 FD E1 C3 00 00 00 00 +T 0C 02 00 00 FD E1 C3 00 00 00 00 R 00 00 01 00 02 07 08 00 -T 08 02 00 00 +T 11 02 00 00 R 00 00 01 00 -T 08 02 00 00 CD 00 00 00 00 3E 00 00 00 00 21 -R 00 00 01 00 02 05 0E 00 2B 0A 15 00 -T 0E 02 00 00 00 00 00 00 CD 00 00 00 00 3E -R 00 00 01 00 02 04 15 00 02 09 0F 00 -T 14 02 00 00 00 00 00 00 21 00 00 00 00 CD +T 11 02 00 00 CD 00 00 00 00 3E 00 00 00 00 21 +R 00 00 01 00 02 05 0E 00 2B 0A 16 00 +T 17 02 00 00 00 00 00 00 CD 00 00 00 00 3E +R 00 00 01 00 02 04 16 00 02 09 0F 00 +T 1D 02 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 05 00 02 09 05 00 -T 19 02 00 00 00 00 00 00 01 10 00 09 36 +T 22 02 00 00 00 00 00 00 01 10 00 09 36 R 00 00 01 00 02 04 0F 00 -T 20 02 00 00 0F 01 00 00 23 36 0F 01 00 00 23 +T 29 02 00 00 0F 01 00 00 23 36 0F 01 00 00 23 R 00 00 01 00 09 04 01 00 89 0A 01 00 -T 25 02 00 00 36 0F 01 00 00 11 12 00 00 00 3E +T 2E 02 00 00 36 0F 01 00 00 11 12 00 00 00 3E R 00 00 01 00 29 05 01 00 00 0A 02 00 -T 2B 02 00 00 00 00 00 00 21 00 00 00 00 CD +T 34 02 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 0D 00 02 09 0D 00 -T 30 02 00 00 00 00 00 00 3E 00 00 00 00 21 +T 39 02 00 00 00 00 00 00 3E 00 00 00 00 21 R 00 00 01 00 02 04 0F 00 2B 09 01 00 -T 35 02 00 00 00 00 00 00 CD 00 00 00 00 C3 +T 3E 02 00 00 00 00 00 00 CD 00 00 00 00 C3 R 00 00 01 00 02 04 01 00 02 09 0F 00 -T 3B 02 00 00 00 00 00 00 +T 44 02 00 00 00 00 00 00 R 00 00 01 00 02 04 08 00 T 00 00 00 00 R 00 00 02 00 diff --git a/src/gui/login.rst b/src/gui/login.rst index 1be30eb5..a448d5a4 100644 --- a/src/gui/login.rst +++ b/src/gui/login.rst @@ -5,333 +5,338 @@ 5 EXTERN GUIgo 6 EXTERN GUIinit 7 EXTERN GUIunit - 8 EXTERN chdir - 9 EXTERN crypt - 10 EXTERN execv - 11 EXTERN exit - 12 EXTERN getpwnam - 13 EXTERN gui_globals - 14 PUBLIC login - 15 PUBLIC login_actionhandler - 16 PUBLIC main - 17 EXTERN perror - 18 EXTERN setenv - 19 EXTERN setgid - 20 EXTERN setuid - 21 EXTERN strcmp - 22 EXTERN strcpy - 23 EXTERN strrchr - 24 EXTERN ?CL64180B_4_06_L00 - 25 EXTERN ?BANK_CALL_DIRECT_L08 - 26 EXTERN ?BANK_LEAVE_DIRECT_L08 - 27 EXTERN ?BANK_FAST_LEAVE_L08 - 28 EXTERN ?ENT_PARM_DIRECT_L09 - 29 EXTERN ?ENT_AUTO_DIRECT_L09 - 30 RSEG CODE - 000068C7 31 login: - 000068C7 FD E5 32 PUSH IY - 000068C9 DD E5 33 PUSH IX - 000068CB C5 34 PUSH BC - 000068CC 21 C0 FF 35 LD HL,65472 - 000068CF 39 36 ADD HL,SP - 000068D0 F9 37 LD SP,HL - 000068D1 D5 38 PUSH DE - 000068D2 DD E1 39 POP IX - 000068D4 21 0C 00 40 LD HL,12 - 000068D7 19 41 ADD HL,DE - 000068D8 7E 42 LD A,(HL) - 000068D9 23 43 INC HL - 000068DA 66 44 LD H,(HL) - 000068DB 6F 45 LD L,A - 000068DC AF 46 XOR A - 000068DD B6 47 OR (HL) - 000068DE 20 08 48 JR NZ,?0001 - 000068E0 49 ?0000: - 000068E0 DD 36 0C DE 50 LD (IX+12),LOW(?0002) - 000068E4 DD 36 0D 84 51 LD (IX+13),HIGH(?0002) - 000068E8 52 ?0001: - 000068E8 21 00 00 53 LD HL,0 - 000068EB 39 54 ADD HL,SP - 000068EC 36 2D 55 LD (HL),45 - 000068EE 01 2F 00 56 LD BC,47 - 000068F1 DD 5E 0C 57 LD E,(IX+12) - 000068F4 DD 56 0D 58 LD D,(IX+13) - 000068F7 3E 00 59 LD A,BYTE3 strrchr - 000068F9 21 38 6B 60 LD HL,LWRD strrchr - 000068FC CD 5E 81 61 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000068FF E5 62 PUSH HL - 00006900 FD E1 63 POP IY - 00006902 7D 64 LD A,L - 00006903 B4 65 OR H - 00006904 28 04 66 JR Z,?0004 - 00006906 67 ?0003: - 00006906 FD 23 68 INC IY - 00006908 18 09 69 JR ?0005 - 0000690A 70 ?0004: - 0000690A DD 6E 0C 71 LD L,(IX+12) - 0000690D DD 66 0D 72 LD H,(IX+13) - 00006910 E5 73 PUSH HL - 00006911 FD E1 74 POP IY - 00006913 75 ?0005: - 00006913 FD E5 76 PUSH IY - 00006915 C1 77 POP BC - 00006916 21 00 00 78 LD HL,0 - 00006919 39 79 ADD HL,SP - 0000691A 11 01 00 80 LD DE,1 - 0000691D 19 81 ADD HL,DE - 0000691E EB 82 EX DE,HL - 0000691F 3E 00 83 LD A,BYTE3 strcpy - 00006921 21 A0 75 84 LD HL,LWRD strcpy - 00006924 CD 5E 81 85 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006927 21 00 00 86 LD HL,0 - 0000692A 39 87 ADD HL,SP - 0000692B E5 88 PUSH HL - 0000692C 21 42 00 89 LD HL,66 - 0000692F 39 90 ADD HL,SP - 00006930 7E 91 LD A,(HL) - 00006931 23 92 INC HL - 00006932 66 93 LD H,(HL) - 00006933 6F 94 LD L,A - 00006934 C1 95 POP BC - 00006935 71 96 LD (HL),C - 00006936 23 97 INC HL - 00006937 70 98 LD (HL),B - 00006938 21 40 00 99 LD HL,64 - 0000693B 39 100 ADD HL,SP - 0000693C 47 101 LD B,A - 0000693D 23 102 INC HL - 0000693E 66 103 LD H,(HL) - 0000693F 68 104 LD L,B - 00006940 23 105 INC HL - 00006941 23 106 INC HL - 00006942 AF 107 XOR A - 00006943 77 108 LD (HL),A - 00006944 23 109 INC HL - 00006945 77 110 LD (HL),A - 00006946 DD 5E 06 111 LD E,(IX+6) - 00006949 DD 56 07 112 LD D,(IX+7) - 0000694C 3E 00 113 LD A,BYTE3 setgid - 0000694E 21 04 6B 114 LD HL,LWRD setgid - 00006951 CD 5E 81 115 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006954 DD 5E 04 116 LD E,(IX+4) - 00006957 DD 56 05 117 LD D,(IX+5) - 0000695A 3E 00 118 LD A,BYTE3 setuid - 0000695C 21 E7 6D 119 LD HL,LWRD setuid - 0000695F CD 5E 81 120 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006962 DD 5E 0A 121 LD E,(IX+10) - 00006965 DD 56 0B 122 LD D,(IX+11) - 00006968 3E 00 123 LD A,BYTE3 chdir - 0000696A 21 B3 6D 124 LD HL,LWRD chdir - 0000696D CD 5E 81 125 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006970 21 01 00 126 LD HL,1 - 00006973 E5 127 PUSH HL - 00006974 DD 4E 0A 128 LD C,(IX+10) - 00006977 DD 46 0B 129 LD B,(IX+11) - 0000697A 11 E6 84 130 LD DE,?0006 - 0000697D 3E 00 131 LD A,BYTE3 setenv - 0000697F 21 06 6F 132 LD HL,LWRD setenv - 00006982 CD 5E 81 133 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006985 F1 134 POP AF - 00006986 21 01 00 135 LD HL,1 - 00006989 E5 136 PUSH HL - 0000698A DD 4E 00 137 LD C,(IX+0) - 0000698D DD 46 01 138 LD B,(IX+1) - 00006990 11 EB 84 139 LD DE,?0007 - 00006993 3E 00 140 LD A,BYTE3 setenv - 00006995 21 06 6F 141 LD HL,LWRD setenv - 00006998 CD 5E 81 142 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000699B F1 143 POP AF - 0000699C 21 40 00 144 LD HL,64 - 0000699F 39 145 ADD HL,SP - 000069A0 4E 146 LD C,(HL) - 000069A1 23 147 INC HL - 000069A2 46 148 LD B,(HL) - 000069A3 DD 5E 0C 149 LD E,(IX+12) - 000069A6 DD 56 0D 150 LD D,(IX+13) - 000069A9 3E 00 151 LD A,BYTE3 execv - 000069AB 21 4C 73 152 LD HL,LWRD execv - 000069AE CD 5E 81 153 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000069B1 DD 5E 0C 154 LD E,(IX+12) - 000069B4 DD 56 0D 155 LD D,(IX+13) - 000069B7 3E 00 156 LD A,BYTE3 perror - 000069B9 21 0F 73 157 LD HL,LWRD perror - 000069BC CD 5E 81 158 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000069BF 11 01 00 159 LD DE,1 - 000069C2 3E 01 160 LD A,BYTE3 exit - 000069C4 21 01 47 161 LD HL,LWRD exit - 000069C7 CD 5E 81 162 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000069CA 21 42 00 163 LD HL,66 - 000069CD 39 164 ADD HL,SP - 000069CE F9 165 LD SP,HL - 000069CF DD E1 166 POP IX - 000069D1 FD E1 167 POP IY - 000069D3 C3 25 81 168 JP LWRD ?BANK_FAST_LEAVE_L08 - 000069D6 169 login_actionhandler: - 000069D6 CD 88 81 170 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000069D9 E0 FF 171 DEFW -32 - 000069DB FD E5 172 PUSH IY - 000069DD DD 6E 02 173 LD L,(IX+2) - 000069E0 DD 66 03 174 LD H,(IX+3) - 000069E3 E5 175 PUSH HL - 000069E4 FD E1 176 POP IY - 000069E6 21 26 00 177 LD HL,38 - 000069E9 DD 4E 02 178 LD C,(IX+2) - 000069EC DD 46 03 179 LD B,(IX+3) - 000069EF 09 180 ADD HL,BC - 000069F0 46 181 LD B,(HL) - 000069F1 23 182 INC HL - 000069F2 66 183 LD H,(HL) - 000069F3 68 184 LD L,B - 000069F4 23 185 INC HL - 000069F5 23 186 INC HL - 000069F6 23 187 INC HL - 000069F7 46 188 LD B,(HL) - 000069F8 23 189 INC HL - 000069F9 66 190 LD H,(HL) - 000069FA 68 191 LD L,B - 000069FB 01 01 01 192 LD BC,257 - 000069FE A7 193 AND A - 000069FF ED 42 194 SBC HL,BC - 00006A01 C2 CA 6A 195 JP NZ,?0009 - 00006A04 196 ?0008: - 00006A04 FD 6E 20 197 LD L,(IY+32) - 00006A07 FD 66 21 198 LD H,(IY+33) - 00006A0A 46 199 LD B,(HL) - 00006A0B DD 70 EC 200 LD (IX-20),B - 00006A0E FD 6E 20 201 LD L,(IY+32) - 00006A11 FD 66 21 202 LD H,(IY+33) - 00006A14 23 203 INC HL - 00006A15 46 204 LD B,(HL) - 00006A16 DD 70 ED 205 LD (IX-19),B - 00006A19 DD 36 EE 00 206 LD (IX-18),0 - 00006A1D FD 6E 20 207 LD L,(IY+32) - 00006A20 FD 66 21 208 LD H,(IY+33) - 00006A23 36 00 209 LD (HL),0 - 00006A25 21 0E 00 210 LD HL,14 - 00006A28 39 211 ADD HL,SP - 00006A29 EB 212 EX DE,HL - 00006A2A 3E 00 213 LD A,BYTE3 getpwnam - 00006A2C 21 BC 74 214 LD HL,LWRD getpwnam - 00006A2F CD 5E 81 215 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006A32 DD 75 E0 216 LD (IX-32),L - 00006A35 DD 74 E1 217 LD (IX-31),H - 00006A38 FD 4E 20 218 LD C,(IY+32) - 00006A3B FD 46 21 219 LD B,(IY+33) - 00006A3E 03 220 INC BC - 00006A3F 03 221 INC BC - 00006A40 DD 71 EA 222 LD (IX-22),C - 00006A43 DD 70 EB 223 LD (IX-21),B - 00006A46 7D 224 LD A,L - 00006A47 B4 225 OR H - 00006A48 28 71 226 JR Z,?0013 - 00006A4A 227 ?0010: - 00006A4A 23 228 INC HL - 00006A4B 23 229 INC HL - 00006A4C 7E 230 LD A,(HL) - 00006A4D 23 231 INC HL - 00006A4E 66 232 LD H,(HL) - 00006A4F 6F 233 LD L,A - 00006A50 46 234 LD B,(HL) - 00006A51 DD 70 E2 235 LD (IX-30),B - 00006A54 DD 6E E0 236 LD L,(IX-32) - 00006A57 DD 66 E1 237 LD H,(IX-31) - 00006A5A 23 238 INC HL - 00006A5B 23 239 INC HL - 00006A5C 46 240 LD B,(HL) - 00006A5D 23 241 INC HL - 00006A5E 66 242 LD H,(HL) - 00006A5F 68 243 LD L,B - 00006A60 23 244 INC HL - 00006A61 46 245 LD B,(HL) - 00006A62 DD 70 E3 246 LD (IX-29),B - 00006A65 DD 36 E4 00 247 LD (IX-28),0 - 00006A69 21 04 00 248 LD HL,4 - 00006A6C 39 249 ADD HL,SP - 00006A6D 4D 250 LD C,L - 00006A6E 44 251 LD B,H - 00006A6F DD 5E EA 252 LD E,(IX-22) - 00006A72 DD 56 EB 253 LD D,(IX-21) - 00006A75 3E 01 254 LD A,BYTE3 crypt - 00006A77 21 FD 41 255 LD HL,LWRD crypt - 00006A7A CD 5E 81 256 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006A7D DD 75 E8 257 LD (IX-24),L - 00006A80 DD 74 E9 258 LD (IX-23),H - 00006A83 DD 4E E0 259 LD C,(IX-32) - 00006A86 DD 46 E1 260 LD B,(IX-31) - 00006A89 03 261 INC BC - 00006A8A 03 262 INC BC - 00006A8B 69 263 LD L,C - 00006A8C 60 264 LD H,B - 00006A8D 4E 265 LD C,(HL) - 00006A8E 23 266 INC HL - 00006A8F 46 267 LD B,(HL) - 00006A90 DD 5E E8 268 LD E,(IX-24) - 00006A93 DD 56 E9 269 LD D,(IX-23) - 00006A96 3E 00 270 LD A,BYTE3 strcmp - 00006A98 21 6E 72 271 LD HL,LWRD strcmp - 00006A9B CD 5E 81 272 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006A9E 7D 273 LD A,L - 00006A9F B4 274 OR H - 00006AA0 20 19 275 JR NZ,?0013 - 00006AA2 276 ?0012: - 00006AA2 3E 00 277 LD A,BYTE3 ClearScreen - 00006AA4 21 86 48 278 LD HL,LWRD ClearScreen - 00006AA7 CD 5E 81 279 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AAA 01 00 00 280 LD BC,0 - 00006AAD DD 5E E0 281 LD E,(IX-32) - 00006AB0 DD 56 E1 282 LD D,(IX-31) - 00006AB3 3E 00 283 LD A,BYTE3 login - 00006AB5 21 C7 68 284 LD HL,LWRD login - 00006AB8 CD 5E 81 285 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006ABB 286 ?0013: - 00006ABB 287 ?0011: - 00006ABB FD E5 288 PUSH IY - 00006ABD D1 289 POP DE - 00006ABE FD 7E 1C 290 LD A,(IY+28) - 00006AC1 FD 6E 1A 291 LD L,(IY+26) - 00006AC4 FD 66 1B 292 LD H,(IY+27) - 00006AC7 CD 5E 81 293 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006ACA 294 ?0009: - 00006ACA FD E1 295 POP IY - 00006ACC C3 1F 81 296 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00006ACF 297 main: - 00006ACF CD 52 81 298 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00006AD2 3E 00 299 LD A,BYTE3 GUIinit - 00006AD4 21 BA 66 300 LD HL,LWRD GUIinit - 00006AD7 CD 5E 81 301 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006ADA 3E 00 302 LD A,BYTE3 gui_globals - 00006ADC 21 B4 66 303 LD HL,LWRD gui_globals - 00006ADF CD 5E 81 304 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AE2 01 10 00 305 LD BC,16 - 00006AE5 09 306 ADD HL,BC - 00006AE6 36 D6 307 LD (HL),LOW(login_actionhandler) - 00006AE8 23 308 INC HL - 00006AE9 36 69 309 LD (HL),HIGH(login_actionhandler) - 00006AEB 23 310 INC HL - 00006AEC 36 00 311 LD (HL),BYTE3 login_actionhandler - 00006AEE 11 F0 84 312 LD DE,?0014 - 00006AF1 3E 00 313 LD A,BYTE3 GUIgo - 00006AF3 21 06 68 314 LD HL,LWRD GUIgo - 00006AF6 CD 5E 81 315 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AF9 3E 00 316 LD A,BYTE3 GUIunit - 00006AFB 21 E1 67 317 LD HL,LWRD GUIunit - 00006AFE CD 5E 81 318 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006B01 C3 1F 81 319 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 320 RSEG CSTR - 000084DE 321 ?0002: - 000084DE 2F 62 69 6E 2F 73 68 322 DEFB '/bin/sh' - 000084E5 00 323 DEFB 0 - 000084E6 324 ?0006: - 000084E6 48 4F 4D 45 325 DEFB 'HOME' - 000084EA 00 326 DEFB 0 - 000084EB 327 ?0007: - 000084EB 55 53 45 52 328 DEFB 'USER' - 000084EF 00 329 DEFB 0 - 000084F0 330 ?0014: - 000084F0 2F 77 6E 64 2F 6C 6F 331 DEFB '/wnd/logn.scr' + 8 EXTERN atoi + 9 EXTERN chdir + 10 EXTERN crypt + 11 EXTERN execv + 12 EXTERN exit + 13 EXTERN getpwuid + 14 EXTERN gui_globals + 15 PUBLIC login + 16 PUBLIC login_actionhandler + 17 PUBLIC main + 18 EXTERN perror + 19 EXTERN setenv + 20 EXTERN setgid + 21 EXTERN setuid + 22 EXTERN strcmp + 23 EXTERN strcpy + 24 EXTERN strrchr + 25 EXTERN ?CL64180B_4_06_L00 + 26 EXTERN ?BANK_CALL_DIRECT_L08 + 27 EXTERN ?BANK_LEAVE_DIRECT_L08 + 28 EXTERN ?BANK_FAST_LEAVE_L08 + 29 EXTERN ?ENT_PARM_DIRECT_L09 + 30 EXTERN ?ENT_AUTO_DIRECT_L09 + 31 RSEG CODE + 000068C7 32 login: + 000068C7 FD E5 33 PUSH IY + 000068C9 DD E5 34 PUSH IX + 000068CB C5 35 PUSH BC + 000068CC 21 C0 FF 36 LD HL,65472 + 000068CF 39 37 ADD HL,SP + 000068D0 F9 38 LD SP,HL + 000068D1 D5 39 PUSH DE + 000068D2 DD E1 40 POP IX + 000068D4 21 0C 00 41 LD HL,12 + 000068D7 19 42 ADD HL,DE + 000068D8 7E 43 LD A,(HL) + 000068D9 23 44 INC HL + 000068DA 66 45 LD H,(HL) + 000068DB 6F 46 LD L,A + 000068DC AF 47 XOR A + 000068DD B6 48 OR (HL) + 000068DE 20 08 49 JR NZ,?0001 + 000068E0 50 ?0000: + 000068E0 DD 36 0C DE 51 LD (IX+12),LOW(?0002) + 000068E4 DD 36 0D 84 52 LD (IX+13),HIGH(?0002) + 000068E8 53 ?0001: + 000068E8 21 00 00 54 LD HL,0 + 000068EB 39 55 ADD HL,SP + 000068EC 36 2D 56 LD (HL),45 + 000068EE 01 2F 00 57 LD BC,47 + 000068F1 DD 5E 0C 58 LD E,(IX+12) + 000068F4 DD 56 0D 59 LD D,(IX+13) + 000068F7 3E 00 60 LD A,BYTE3 strrchr + 000068F9 21 41 6B 61 LD HL,LWRD strrchr + 000068FC CD 5E 81 62 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000068FF E5 63 PUSH HL + 00006900 FD E1 64 POP IY + 00006902 7D 65 LD A,L + 00006903 B4 66 OR H + 00006904 28 04 67 JR Z,?0004 + 00006906 68 ?0003: + 00006906 FD 23 69 INC IY + 00006908 18 09 70 JR ?0005 + 0000690A 71 ?0004: + 0000690A DD 6E 0C 72 LD L,(IX+12) + 0000690D DD 66 0D 73 LD H,(IX+13) + 00006910 E5 74 PUSH HL + 00006911 FD E1 75 POP IY + 00006913 76 ?0005: + 00006913 FD E5 77 PUSH IY + 00006915 C1 78 POP BC + 00006916 21 00 00 79 LD HL,0 + 00006919 39 80 ADD HL,SP + 0000691A 11 01 00 81 LD DE,1 + 0000691D 19 82 ADD HL,DE + 0000691E EB 83 EX DE,HL + 0000691F 3E 00 84 LD A,BYTE3 strcpy + 00006921 21 C5 74 85 LD HL,LWRD strcpy + 00006924 CD 5E 81 86 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006927 21 00 00 87 LD HL,0 + 0000692A 39 88 ADD HL,SP + 0000692B E5 89 PUSH HL + 0000692C 21 42 00 90 LD HL,66 + 0000692F 39 91 ADD HL,SP + 00006930 7E 92 LD A,(HL) + 00006931 23 93 INC HL + 00006932 66 94 LD H,(HL) + 00006933 6F 95 LD L,A + 00006934 C1 96 POP BC + 00006935 71 97 LD (HL),C + 00006936 23 98 INC HL + 00006937 70 99 LD (HL),B + 00006938 21 40 00 100 LD HL,64 + 0000693B 39 101 ADD HL,SP + 0000693C 47 102 LD B,A + 0000693D 23 103 INC HL + 0000693E 66 104 LD H,(HL) + 0000693F 68 105 LD L,B + 00006940 23 106 INC HL + 00006941 23 107 INC HL + 00006942 AF 108 XOR A + 00006943 77 109 LD (HL),A + 00006944 23 110 INC HL + 00006945 77 111 LD (HL),A + 00006946 DD 5E 06 112 LD E,(IX+6) + 00006949 DD 56 07 113 LD D,(IX+7) + 0000694C 3E 00 114 LD A,BYTE3 setgid + 0000694E 21 0D 6B 115 LD HL,LWRD setgid + 00006951 CD 5E 81 116 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006954 DD 5E 04 117 LD E,(IX+4) + 00006957 DD 56 05 118 LD D,(IX+5) + 0000695A 3E 00 119 LD A,BYTE3 setuid + 0000695C 21 F0 6D 120 LD HL,LWRD setuid + 0000695F CD 5E 81 121 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006962 DD 5E 0A 122 LD E,(IX+10) + 00006965 DD 56 0B 123 LD D,(IX+11) + 00006968 3E 00 124 LD A,BYTE3 chdir + 0000696A 21 BC 6D 125 LD HL,LWRD chdir + 0000696D CD 5E 81 126 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006970 21 01 00 127 LD HL,1 + 00006973 E5 128 PUSH HL + 00006974 DD 4E 0A 129 LD C,(IX+10) + 00006977 DD 46 0B 130 LD B,(IX+11) + 0000697A 11 E6 84 131 LD DE,?0006 + 0000697D 3E 00 132 LD A,BYTE3 setenv + 0000697F 21 0F 6F 133 LD HL,LWRD setenv + 00006982 CD 5E 81 134 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006985 F1 135 POP AF + 00006986 21 01 00 136 LD HL,1 + 00006989 E5 137 PUSH HL + 0000698A DD 4E 00 138 LD C,(IX+0) + 0000698D DD 46 01 139 LD B,(IX+1) + 00006990 11 EB 84 140 LD DE,?0007 + 00006993 3E 00 141 LD A,BYTE3 setenv + 00006995 21 0F 6F 142 LD HL,LWRD setenv + 00006998 CD 5E 81 143 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000699B F1 144 POP AF + 0000699C 21 40 00 145 LD HL,64 + 0000699F 39 146 ADD HL,SP + 000069A0 4E 147 LD C,(HL) + 000069A1 23 148 INC HL + 000069A2 46 149 LD B,(HL) + 000069A3 DD 5E 0C 150 LD E,(IX+12) + 000069A6 DD 56 0D 151 LD D,(IX+13) + 000069A9 3E 00 152 LD A,BYTE3 execv + 000069AB 21 55 73 153 LD HL,LWRD execv + 000069AE CD 5E 81 154 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069B1 DD 5E 0C 155 LD E,(IX+12) + 000069B4 DD 56 0D 156 LD D,(IX+13) + 000069B7 3E 00 157 LD A,BYTE3 perror + 000069B9 21 18 73 158 LD HL,LWRD perror + 000069BC CD 5E 81 159 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069BF 11 01 00 160 LD DE,1 + 000069C2 3E 01 161 LD A,BYTE3 exit + 000069C4 21 04 45 162 LD HL,LWRD exit + 000069C7 CD 5E 81 163 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069CA 21 42 00 164 LD HL,66 + 000069CD 39 165 ADD HL,SP + 000069CE F9 166 LD SP,HL + 000069CF DD E1 167 POP IX + 000069D1 FD E1 168 POP IY + 000069D3 C3 25 81 169 JP LWRD ?BANK_FAST_LEAVE_L08 + 000069D6 170 login_actionhandler: + 000069D6 CD 88 81 171 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000069D9 E0 FF 172 DEFW -32 + 000069DB FD E5 173 PUSH IY + 000069DD DD 6E 02 174 LD L,(IX+2) + 000069E0 DD 66 03 175 LD H,(IX+3) + 000069E3 E5 176 PUSH HL + 000069E4 FD E1 177 POP IY + 000069E6 21 26 00 178 LD HL,38 + 000069E9 DD 4E 02 179 LD C,(IX+2) + 000069EC DD 46 03 180 LD B,(IX+3) + 000069EF 09 181 ADD HL,BC + 000069F0 46 182 LD B,(HL) + 000069F1 23 183 INC HL + 000069F2 66 184 LD H,(HL) + 000069F3 68 185 LD L,B + 000069F4 23 186 INC HL + 000069F5 23 187 INC HL + 000069F6 23 188 INC HL + 000069F7 46 189 LD B,(HL) + 000069F8 23 190 INC HL + 000069F9 66 191 LD H,(HL) + 000069FA 68 192 LD L,B + 000069FB 01 01 01 193 LD BC,257 + 000069FE A7 194 AND A + 000069FF ED 42 195 SBC HL,BC + 00006A01 C2 D3 6A 196 JP NZ,?0009 + 00006A04 197 ?0008: + 00006A04 FD 6E 20 198 LD L,(IY+32) + 00006A07 FD 66 21 199 LD H,(IY+33) + 00006A0A 46 200 LD B,(HL) + 00006A0B DD 70 EC 201 LD (IX-20),B + 00006A0E FD 6E 20 202 LD L,(IY+32) + 00006A11 FD 66 21 203 LD H,(IY+33) + 00006A14 23 204 INC HL + 00006A15 46 205 LD B,(HL) + 00006A16 DD 70 ED 206 LD (IX-19),B + 00006A19 DD 36 EE 00 207 LD (IX-18),0 + 00006A1D FD 6E 20 208 LD L,(IY+32) + 00006A20 FD 66 21 209 LD H,(IY+33) + 00006A23 36 00 210 LD (HL),0 + 00006A25 21 0E 00 211 LD HL,14 + 00006A28 39 212 ADD HL,SP + 00006A29 EB 213 EX DE,HL + 00006A2A 3E 00 214 LD A,BYTE3 atoi + 00006A2C 21 39 75 215 LD HL,LWRD atoi + 00006A2F CD 5E 81 216 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A32 EB 217 EX DE,HL + 00006A33 3E 00 218 LD A,BYTE3 getpwuid + 00006A35 21 EC 74 219 LD HL,LWRD getpwuid + 00006A38 CD 5E 81 220 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A3B DD 75 E0 221 LD (IX-32),L + 00006A3E DD 74 E1 222 LD (IX-31),H + 00006A41 FD 4E 20 223 LD C,(IY+32) + 00006A44 FD 46 21 224 LD B,(IY+33) + 00006A47 03 225 INC BC + 00006A48 03 226 INC BC + 00006A49 DD 71 EA 227 LD (IX-22),C + 00006A4C DD 70 EB 228 LD (IX-21),B + 00006A4F 7D 229 LD A,L + 00006A50 B4 230 OR H + 00006A51 28 71 231 JR Z,?0013 + 00006A53 232 ?0010: + 00006A53 23 233 INC HL + 00006A54 23 234 INC HL + 00006A55 7E 235 LD A,(HL) + 00006A56 23 236 INC HL + 00006A57 66 237 LD H,(HL) + 00006A58 6F 238 LD L,A + 00006A59 46 239 LD B,(HL) + 00006A5A DD 70 E2 240 LD (IX-30),B + 00006A5D DD 6E E0 241 LD L,(IX-32) + 00006A60 DD 66 E1 242 LD H,(IX-31) + 00006A63 23 243 INC HL + 00006A64 23 244 INC HL + 00006A65 46 245 LD B,(HL) + 00006A66 23 246 INC HL + 00006A67 66 247 LD H,(HL) + 00006A68 68 248 LD L,B + 00006A69 23 249 INC HL + 00006A6A 46 250 LD B,(HL) + 00006A6B DD 70 E3 251 LD (IX-29),B + 00006A6E DD 36 E4 00 252 LD (IX-28),0 + 00006A72 21 04 00 253 LD HL,4 + 00006A75 39 254 ADD HL,SP + 00006A76 4D 255 LD C,L + 00006A77 44 256 LD B,H + 00006A78 DD 5E EA 257 LD E,(IX-22) + 00006A7B DD 56 EB 258 LD D,(IX-21) + 00006A7E 3E 01 259 LD A,BYTE3 crypt + 00006A80 21 00 40 260 LD HL,LWRD crypt + 00006A83 CD 5E 81 261 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A86 DD 75 E8 262 LD (IX-24),L + 00006A89 DD 74 E9 263 LD (IX-23),H + 00006A8C DD 4E E0 264 LD C,(IX-32) + 00006A8F DD 46 E1 265 LD B,(IX-31) + 00006A92 03 266 INC BC + 00006A93 03 267 INC BC + 00006A94 69 268 LD L,C + 00006A95 60 269 LD H,B + 00006A96 4E 270 LD C,(HL) + 00006A97 23 271 INC HL + 00006A98 46 272 LD B,(HL) + 00006A99 DD 5E E8 273 LD E,(IX-24) + 00006A9C DD 56 E9 274 LD D,(IX-23) + 00006A9F 3E 00 275 LD A,BYTE3 strcmp + 00006AA1 21 77 72 276 LD HL,LWRD strcmp + 00006AA4 CD 5E 81 277 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AA7 7D 278 LD A,L + 00006AA8 B4 279 OR H + 00006AA9 20 19 280 JR NZ,?0013 + 00006AAB 281 ?0012: + 00006AAB 3E 00 282 LD A,BYTE3 ClearScreen + 00006AAD 21 86 48 283 LD HL,LWRD ClearScreen + 00006AB0 CD 5E 81 284 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AB3 01 00 00 285 LD BC,0 + 00006AB6 DD 5E E0 286 LD E,(IX-32) + 00006AB9 DD 56 E1 287 LD D,(IX-31) + 00006ABC 3E 00 288 LD A,BYTE3 login + 00006ABE 21 C7 68 289 LD HL,LWRD login + 00006AC1 CD 5E 81 290 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AC4 291 ?0013: + 00006AC4 292 ?0011: + 00006AC4 FD E5 293 PUSH IY + 00006AC6 D1 294 POP DE + 00006AC7 FD 7E 1C 295 LD A,(IY+28) + 00006ACA FD 6E 1A 296 LD L,(IY+26) + 00006ACD FD 66 1B 297 LD H,(IY+27) + 00006AD0 CD 5E 81 298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AD3 299 ?0009: + 00006AD3 FD E1 300 POP IY + 00006AD5 C3 1F 81 301 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00006AD8 302 main: + 00006AD8 CD 52 81 303 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00006ADB 3E 00 304 LD A,BYTE3 GUIinit + 00006ADD 21 BA 66 305 LD HL,LWRD GUIinit + 00006AE0 CD 5E 81 306 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AE3 3E 00 307 LD A,BYTE3 gui_globals + 00006AE5 21 B4 66 308 LD HL,LWRD gui_globals + 00006AE8 CD 5E 81 309 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AEB 01 10 00 310 LD BC,16 + 00006AEE 09 311 ADD HL,BC + 00006AEF 36 D6 312 LD (HL),LOW(login_actionhandler) + 00006AF1 23 313 INC HL + 00006AF2 36 69 314 LD (HL),HIGH(login_actionhandler) + 00006AF4 23 315 INC HL + 00006AF5 36 00 316 LD (HL),BYTE3 login_actionhandler + 00006AF7 11 F0 84 317 LD DE,?0014 + 00006AFA 3E 00 318 LD A,BYTE3 GUIgo + 00006AFC 21 06 68 319 LD HL,LWRD GUIgo + 00006AFF CD 5E 81 320 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B02 3E 00 321 LD A,BYTE3 GUIunit + 00006B04 21 E1 67 322 LD HL,LWRD GUIunit + 00006B07 CD 5E 81 323 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B0A C3 1F 81 324 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 325 RSEG CSTR + 000084DE 326 ?0002: + 000084DE 2F 62 69 6E 2F 73 68 327 DEFB '/bin/sh' + 000084E5 00 328 DEFB 0 + 000084E6 329 ?0006: + 000084E6 48 4F 4D 45 330 DEFB 'HOME' + 000084EA 00 331 DEFB 0 + 000084EB 332 ?0007: + 000084EB 55 53 45 52 333 DEFB 'USER' + 000084EF 00 334 DEFB 0 + 000084F0 335 ?0014: + 000084F0 2F 77 6E 64 2F 6C 6F 336 DEFB '/wnd/logn.scr' 67 6E 2E 73 63 72 - 000084FD 00 332 DEFB 0 - 00000020 333 END + 000084FD 00 337 DEFB 0 + 00000020 338 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] @@ -342,28 +347,28 @@ Symbol Table 1 ?0003 0000003F R | 1 ?0004 00000043 R 1 ?0005 0000004C R | 2 ?0006 00000008 R 2 ?0007 0000000D R | 1 ?0008 0000013D R - 1 ?0009 00000203 R | 1 ?0010 00000183 R - 1 ?0011 000001F4 R | 1 ?0012 000001DB R - 1 ?0013 000001F4 R | 2 ?0014 00000012 R + 1 ?0009 0000020C R | 1 ?0010 0000018C R + 1 ?0011 000001FD R | 1 ?0012 000001E4 R + 1 ?0013 000001FD R | 2 ?0014 00000012 R ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX ?ENT_AUTO_DIRE ******** GX | ?ENT_PARM_DIRE ******** GX ClearScreen ******** GX | GUIgo ******** GX GUIinit ******** GX | GUIunit ******** GX - chdir ******** GX | crypt ******** GX - execv ******** GX | exit ******** GX - getpwnam ******** GX | gui_globals ******** GX - 1 login 00000000 GR | 1 login_actionha 0000010F GR - 1 main 00000208 GR | perror ******** GX - setenv ******** GX | setgid ******** GX - setuid ******** GX | strcmp ******** GX - strcpy ******** GX | strrchr ******** GX - + atoi ******** GX | chdir ******** GX + crypt ******** GX | execv ******** GX + exit ******** GX | getpwuid ******** GX + gui_globals ******** GX | 1 login 00000000 GR + 1 login_actionha 0000010F GR | 1 main 00000211 GR + perror ******** GX | setenv ******** GX + setgid ******** GX | setuid ******** GX + strcmp ******** GX | strcpy ******** GX + strrchr ******** GX ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 23D flags 0 + 1 CODE size 246 flags 0 2 CSTR size 20 flags 0 diff --git a/src/gui/login.s01 b/src/gui/login.s01 index c8061db5..90e53fbd 100644 --- a/src/gui/login.s01 +++ b/src/gui/login.s01 @@ -5,11 +5,12 @@ EXTERN GUIgo EXTERN GUIinit EXTERN GUIunit + EXTERN atoi EXTERN chdir EXTERN crypt EXTERN execv EXTERN exit - EXTERN getpwnam + EXTERN getpwuid EXTERN gui_globals PUBLIC login PUBLIC login_actionhandler @@ -210,8 +211,12 @@ login_actionhandler: LD HL,14 ADD HL,SP EX DE,HL - LD A,BYTE3 getpwnam - LD HL,LWRD getpwnam + LD A,BYTE3 atoi + LD HL,LWRD atoi + CALL LWRD ?BANK_CALL_DIRECT_L08 + EX DE,HL + LD A,BYTE3 getpwuid + LD HL,LWRD getpwuid CALL LWRD ?BANK_CALL_DIRECT_L08 LD (IX-32),L LD (IX-31),H diff --git a/src/gui/wnd.rst b/src/gui/wnd.rst index f0537c05..9d43b4e9 100644 --- a/src/gui/wnd.rst +++ b/src/gui/wnd.rst @@ -91,4991 +91,4991 @@ 91 EXTERN ?ENT_PARM_DIRECT_L09 92 EXTERN ?ENT_AUTO_DIRECT_L09 93 RSEG CODE - 00004648 94 GraphicsOpen: - 00004648 CD 7A 82 95 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000464B F8 FF 96 DEFW 65528 - 0000464D 21 06 00 97 LD HL,6 - 00004650 39 98 ADD HL,SP - 00004651 EB 99 EX DE,HL - 00004652 21 AF 84 100 LD HL,?0000 - 00004655 01 02 00 101 LD BC,2 - 00004658 ED B0 102 LDIR - 0000465A 2A 3F 87 103 LD HL,(global) - 0000465D 23 104 INC HL - 0000465E 23 105 INC HL - 0000465F E5 106 PUSH HL - 00004660 03 107 INC BC - 00004661 03 108 INC BC - 00004662 C5 109 PUSH BC - 00004663 01 E3 84 110 LD BC,?0001 - 00004666 C5 111 PUSH BC - 00004667 3E 00 112 LD A,BYTE3 open - 00004669 21 CD 7E 113 LD HL,LWRD open - 0000466C CD FB 81 114 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000466F F1 115 POP AF - 00004670 F1 116 POP AF - 00004671 4D 117 LD C,L - 00004672 44 118 LD B,H - 00004673 E1 119 POP HL - 00004674 71 120 LD (HL),C - 00004675 23 121 INC HL - 00004676 70 122 LD (HL),B - 00004677 21 00 00 123 LD HL,0 - 0000467A 39 124 ADD HL,SP - 0000467B E5 125 PUSH HL - 0000467C 21 00 00 126 LD HL,0 - 0000467F E5 127 PUSH HL - 00004680 2A 3F 87 128 LD HL,(global) - 00004683 23 129 INC HL - 00004684 23 130 INC HL - 00004685 4E 131 LD C,(HL) - 00004686 23 132 INC HL - 00004687 46 133 LD B,(HL) - 00004688 C5 134 PUSH BC - 00004689 3E 00 135 LD A,BYTE3 ioctl - 0000468B 21 E2 73 136 LD HL,LWRD ioctl - 0000468E CD FB 81 137 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004691 F1 138 POP AF - 00004692 F1 139 POP AF - 00004693 F1 140 POP AF - 00004694 DD 36 FC 60 141 LD (IX-4),96 - 00004698 DD 36 FD 00 142 LD (IX-3),0 - 0000469C 21 00 00 143 LD HL,0 - 0000469F 39 144 ADD HL,SP - 000046A0 E5 145 PUSH HL - 000046A1 21 01 00 146 LD HL,1 - 000046A4 E5 147 PUSH HL - 000046A5 2A 3F 87 148 LD HL,(global) - 000046A8 23 149 INC HL - 000046A9 23 150 INC HL - 000046AA 4E 151 LD C,(HL) - 000046AB 23 152 INC HL - 000046AC 46 153 LD B,(HL) - 000046AD C5 154 PUSH BC - 000046AE 3E 00 155 LD A,BYTE3 ioctl - 000046B0 21 E2 73 156 LD HL,LWRD ioctl - 000046B3 CD FB 81 157 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000046B6 F1 158 POP AF - 000046B7 F1 159 POP AF - 000046B8 F1 160 POP AF - 000046B9 21 02 00 161 LD HL,2 - 000046BC E5 162 PUSH HL - 000046BD 2E 08 163 LD L,8 - 000046BF 164 ?0372: - 000046BF 39 165 ADD HL,SP - 000046C0 4D 166 LD C,L - 000046C1 167 ?0427: - 000046C1 44 168 LD B,H - 000046C2 2A 3F 87 169 LD HL,(global) - 000046C5 170 ?0428: - 000046C5 23 171 INC HL - 000046C6 23 172 INC HL - 000046C7 173 ?0429: - 000046C7 5E 174 LD E,(HL) - 000046C8 23 175 INC HL - 000046C9 176 ?0430: - 000046C9 56 177 LD D,(HL) - 000046CA 3E 00 178 LD A,BYTE3 _write - 000046CC 179 ?0431: - 000046CC 21 72 72 180 LD HL,LWRD _write - 000046CF CD FB 81 181 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000046D2 F1 182 POP AF - 000046D3 C3 A3 81 183 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000046D6 184 GraphicsClose: - 000046D6 D5 185 PUSH DE - 000046D7 2A 3F 87 186 LD HL,(global) - 000046DA 23 187 INC HL - 000046DB 23 188 INC HL - 000046DC 5E 189 LD E,(HL) - 000046DD 23 190 INC HL - 000046DE 56 191 LD D,(HL) - 000046DF 3E 00 192 LD A,BYTE3 close - 000046E1 21 96 73 193 LD HL,LWRD close - 000046E4 CD FB 81 194 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000046E7 D1 195 POP DE - 000046E8 C3 A9 81 196 JP LWRD ?BANK_FAST_LEAVE_L08 - 000046EB 197 Move: - 000046EB CD 7A 82 198 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000046EE FC FF 199 DEFW 65532 - 000046F0 21 00 00 200 LD HL,0 - 000046F3 39 201 ADD HL,SP - 000046F4 EB 202 EX DE,HL - 000046F5 21 B1 84 203 LD HL,?0002 - 000046F8 01 04 00 204 LD BC,4 - 000046FB ED B0 205 LDIR - 000046FD DD 46 02 206 LD B,(IX+2) - 00004700 DD 70 FE 207 LD (IX-2),B - 00004703 DD 46 04 208 LD B,(IX+4) - 00004706 DD 70 FF 209 LD (IX-1),B - 00004709 21 04 00 210 LD HL,4 - 0000470C E5 211 PUSH HL - 0000470D 2B 212 DEC HL - 0000470E 2B 213 DEC HL - 0000470F C3 BF 46 214 JP LWRD ?0372 - 00004712 4D 215 LD C,L - 00004713 216 ?0381: - 00004713 C3 C1 46 217 JP LWRD ?0427 - 00004716 2A 3F 87 218 LD HL,(global) - 00004719 23 219 INC HL - 0000471A 23 220 INC HL - 0000471B 221 ?0432: - 0000471B 5E 222 LD E,(HL) - 0000471C 23 223 INC HL - 0000471D 224 ?0433: - 0000471D 56 225 LD D,(HL) - 0000471E 3E 00 226 LD A,BYTE3 _write - 00004720 227 ?0434: - 00004720 C3 CC 46 228 JP LWRD ?0431 - 00004723 CD FB 81 229 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004726 F1 230 POP AF - 00004727 C3 A3 81 231 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000472A 232 ClearRect: - 0000472A CD 7A 82 233 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000472D FC FF 234 DEFW 65532 - 0000472F 21 00 00 235 LD HL,0 - 00004732 39 236 ADD HL,SP - 00004733 EB 237 EX DE,HL - 00004734 21 B5 84 238 LD HL,?0003 - 00004737 01 04 00 239 LD BC,4 - 0000473A ED B0 240 LDIR - 0000473C DD 46 02 241 LD B,(IX+2) - 0000473F DD 70 FE 242 LD (IX-2),B - 00004742 DD 46 04 243 LD B,(IX+4) - 00004745 DD 70 FF 244 LD (IX-1),B - 00004748 21 04 00 245 LD HL,4 - 0000474B E5 246 PUSH HL - 0000474C 2B 247 DEC HL - 0000474D 2B 248 DEC HL - 0000474E C3 BF 46 249 JP LWRD ?0372 - 00004751 4D 250 LD C,L - 00004752 C3 13 47 251 JP LWRD ?0381 - 00004755 2A 3F 87 252 LD HL,(global) - 00004758 253 ?0389: - 00004758 C3 C5 46 254 JP LWRD ?0428 - 0000475B 23 255 INC HL - 0000475C C3 1B 47 256 JP LWRD ?0432 - 0000475F 23 257 INC HL - 00004760 56 258 LD D,(HL) - 00004761 3E 00 259 LD A,BYTE3 _write - 00004763 260 ?0435: - 00004763 C3 CC 46 261 JP LWRD ?0431 - 00004766 CD FB 81 262 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004769 F1 263 POP AF - 0000476A C3 A3 81 264 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000476D 265 DrawRectNC: - 0000476D CD 7A 82 266 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004770 FC FF 267 DEFW 65532 - 00004772 21 00 00 268 LD HL,0 - 00004775 39 269 ADD HL,SP - 00004776 EB 270 EX DE,HL - 00004777 21 B9 84 271 LD HL,?0004 - 0000477A 01 04 00 272 LD BC,4 - 0000477D ED B0 273 LDIR - 0000477F DD 46 02 274 LD B,(IX+2) - 00004782 DD 70 FE 275 LD (IX-2),B - 00004785 DD 46 04 276 LD B,(IX+4) - 00004788 DD 70 FF 277 LD (IX-1),B - 0000478B 21 04 00 278 LD HL,4 - 0000478E E5 279 PUSH HL - 0000478F 2B 280 DEC HL - 00004790 2B 281 DEC HL - 00004791 C3 BF 46 282 JP LWRD ?0372 - 00004794 4D 283 LD C,L - 00004795 C3 13 47 284 JP LWRD ?0381 - 00004798 2A 3F 87 285 LD HL,(global) - 0000479B C3 58 47 286 JP LWRD ?0389 - 0000479E 23 287 INC HL - 0000479F 288 ?0396: - 0000479F C3 C7 46 289 JP LWRD ?0429 - 000047A2 23 290 INC HL - 000047A3 C3 1D 47 291 JP LWRD ?0433 - 000047A6 3E 00 292 LD A,BYTE3 _write - 000047A8 C3 63 47 293 JP LWRD ?0435 - 000047AB CD FB 81 294 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000047AE F1 295 POP AF - 000047AF C3 A3 81 296 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000047B2 297 FillRect: - 000047B2 CD 7A 82 298 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000047B5 FC FF 299 DEFW 65532 - 000047B7 21 00 00 300 LD HL,0 - 000047BA 39 301 ADD HL,SP - 000047BB EB 302 EX DE,HL - 000047BC 21 BD 84 303 LD HL,?0005 - 000047BF 01 04 00 304 LD BC,4 - 000047C2 ED B0 305 LDIR - 000047C4 DD 46 02 306 LD B,(IX+2) - 000047C7 DD 70 FE 307 LD (IX-2),B - 000047CA DD 46 04 308 LD B,(IX+4) - 000047CD DD 70 FF 309 LD (IX-1),B - 000047D0 21 04 00 310 LD HL,4 - 000047D3 E5 311 PUSH HL - 000047D4 2B 312 DEC HL - 000047D5 2B 313 DEC HL - 000047D6 C3 BF 46 314 JP LWRD ?0372 - 000047D9 4D 315 LD C,L - 000047DA C3 13 47 316 JP LWRD ?0381 - 000047DD 2A 3F 87 317 LD HL,(global) - 000047E0 C3 58 47 318 JP LWRD ?0389 - 000047E3 23 319 INC HL - 000047E4 C3 9F 47 320 JP LWRD ?0396 - 000047E7 23 321 INC HL - 000047E8 322 ?0402: - 000047E8 C3 C9 46 323 JP LWRD ?0430 - 000047EB 3E 00 324 LD A,BYTE3 _write - 000047ED C3 20 47 325 JP LWRD ?0434 - 000047F0 CD FB 81 326 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000047F3 F1 327 POP AF - 000047F4 C3 A3 81 328 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000047F7 329 FillRectNC: - 000047F7 CD 7A 82 330 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000047FA FC FF 331 DEFW 65532 - 000047FC 21 00 00 332 LD HL,0 - 000047FF 39 333 ADD HL,SP - 00004800 EB 334 EX DE,HL - 00004801 21 C1 84 335 LD HL,?0006 - 00004804 01 04 00 336 LD BC,4 - 00004807 ED B0 337 LDIR - 00004809 DD 46 02 338 LD B,(IX+2) - 0000480C DD 70 FE 339 LD (IX-2),B - 0000480F DD 46 04 340 LD B,(IX+4) - 00004812 DD 70 FF 341 LD (IX-1),B - 00004815 21 04 00 342 LD HL,4 - 00004818 E5 343 PUSH HL - 00004819 2B 344 DEC HL - 0000481A 2B 345 DEC HL - 0000481B C3 BF 46 346 JP LWRD ?0372 - 0000481E 4D 347 LD C,L - 0000481F C3 13 47 348 JP LWRD ?0381 - 00004822 2A 3F 87 349 LD HL,(global) - 00004825 C3 58 47 350 JP LWRD ?0389 - 00004828 23 351 INC HL - 00004829 C3 9F 47 352 JP LWRD ?0396 - 0000482C 23 353 INC HL - 0000482D C3 E8 47 354 JP LWRD ?0402 - 00004830 3E 00 355 LD A,BYTE3 _write - 00004832 356 ?0407: - 00004832 C3 CC 46 357 JP LWRD ?0431 - 00004835 CD FB 81 358 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004838 F1 359 POP AF - 00004839 C3 A3 81 360 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000483C 361 GrayRect: - 0000483C CD 7A 82 362 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000483F FC FF 363 DEFW 65532 - 00004841 21 00 00 364 LD HL,0 - 00004844 39 365 ADD HL,SP - 00004845 EB 366 EX DE,HL - 00004846 21 C5 84 367 LD HL,?0007 - 00004849 01 04 00 368 LD BC,4 - 0000484C ED B0 369 LDIR - 0000484E DD 46 02 370 LD B,(IX+2) - 00004851 DD 70 FE 371 LD (IX-2),B - 00004854 DD 46 04 372 LD B,(IX+4) - 00004857 DD 70 FF 373 LD (IX-1),B - 0000485A 21 04 00 374 LD HL,4 - 0000485D E5 375 PUSH HL - 0000485E 2B 376 DEC HL - 0000485F 2B 377 DEC HL - 00004860 C3 BF 46 378 JP LWRD ?0372 - 00004863 4D 379 LD C,L - 00004864 C3 13 47 380 JP LWRD ?0381 - 00004867 2A 3F 87 381 LD HL,(global) - 0000486A C3 58 47 382 JP LWRD ?0389 - 0000486D 23 383 INC HL - 0000486E C3 9F 47 384 JP LWRD ?0396 - 00004871 23 385 INC HL - 00004872 C3 E8 47 386 JP LWRD ?0402 - 00004875 3E 00 387 LD A,BYTE3 _write - 00004877 C3 32 48 388 JP LWRD ?0407 - 0000487A CD FB 81 389 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000487D F1 390 POP AF - 0000487E C3 A3 81 391 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004881 392 Text: - 00004881 C5 393 PUSH BC - 00004882 FD E5 394 PUSH IY - 00004884 DD E5 395 PUSH IX - 00004886 D5 396 PUSH DE - 00004887 DD E1 397 POP IX - 00004889 3E 00 398 LD A,BYTE3 strlen - 0000488B 21 AB 73 399 LD HL,LWRD strlen - 0000488E CD FB 81 400 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004891 E5 401 PUSH HL - 00004892 DD E5 402 PUSH IX - 00004894 C1 403 POP BC - 00004895 2A 3F 87 404 LD HL,(global) - 00004898 23 405 INC HL - 00004899 23 406 INC HL - 0000489A 5E 407 LD E,(HL) - 0000489B 23 408 INC HL - 0000489C 56 409 LD D,(HL) - 0000489D 3E 00 410 LD A,BYTE3 _write - 0000489F 21 72 72 411 LD HL,LWRD _write - 000048A2 CD FB 81 412 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000048A5 F1 413 POP AF - 000048A6 414 ?0411: - 000048A6 DD E1 415 POP IX - 000048A8 FD E1 416 POP IY - 000048AA C1 417 POP BC - 000048AB C3 A9 81 418 JP LWRD ?BANK_FAST_LEAVE_L08 - 000048AE 419 TouchRegion: - 000048AE CD 7A 82 420 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000048B1 F8 FF 421 DEFW 65528 - 000048B3 21 00 00 422 LD HL,0 - 000048B6 39 423 ADD HL,SP - 000048B7 EB 424 EX DE,HL - 000048B8 21 C9 84 425 LD HL,?0008 - 000048BB 01 07 00 426 LD BC,7 - 000048BE ED B0 427 LDIR - 000048C0 DD 46 02 428 LD B,(IX+2) - 000048C3 DD 70 FA 429 LD (IX-6),B - 000048C6 DD 46 04 430 LD B,(IX+4) - 000048C9 DD 70 FB 431 LD (IX-5),B - 000048CC DD 46 0A 432 LD B,(IX+10) - 000048CF DD 70 FC 433 LD (IX-4),B - 000048D2 DD 46 0C 434 LD B,(IX+12) - 000048D5 DD 70 FD 435 LD (IX-3),B - 000048D8 DD 46 0E 436 LD B,(IX+14) - 000048DB DD 70 FE 437 LD (IX-2),B - 000048DE 21 07 00 438 LD HL,7 - 000048E1 E5 439 PUSH HL - 000048E2 2E 02 440 LD L,2 - 000048E4 C3 BF 46 441 JP LWRD ?0372 - 000048E7 4D 442 LD C,L - 000048E8 C3 13 47 443 JP LWRD ?0381 - 000048EB 2A 3F 87 444 LD HL,(global) - 000048EE C3 58 47 445 JP LWRD ?0389 - 000048F1 23 446 INC HL - 000048F2 C3 9F 47 447 JP LWRD ?0396 - 000048F5 23 448 INC HL - 000048F6 C3 E8 47 449 JP LWRD ?0402 - 000048F9 3E 00 450 LD A,BYTE3 _write - 000048FB C3 32 48 451 JP LWRD ?0407 - 000048FE CD FB 81 452 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004901 F1 453 POP AF - 00004902 C3 A3 81 454 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004905 455 ClearScreen: - 00004905 C5 456 PUSH BC - 00004906 D5 457 PUSH DE - 00004907 CD 1F 49 458 CALL LWRD ?0461 - 0000490A CD FB 81 459 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000490D 21 80 00 460 LD HL,128 - 00004910 E5 461 PUSH HL - 00004911 6C 462 LD L,H - 00004912 E5 463 PUSH HL - 00004913 E5 464 PUSH HL - 00004914 CD 37 49 465 CALL LWRD ?0470 - 00004917 E1 466 POP HL - 00004918 E1 467 POP HL - 00004919 E1 468 POP HL - 0000491A D1 469 POP DE - 0000491B C1 470 POP BC - 0000491C C3 A9 81 471 JP LWRD ?BANK_FAST_LEAVE_L08 - 0000491F 472 ?0461: - 0000491F 01 00 00 473 LD BC,0 - 00004922 59 474 LD E,C - 00004923 50 475 LD D,B - 00004924 3E 00 476 LD A,BYTE3 Move - 00004926 21 EB 46 477 LD HL,LWRD Move - 00004929 CD FB 81 478 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000492C 01 80 00 479 LD BC,128 - 0000492F 58 480 LD E,B - 00004930 50 481 LD D,B - 00004931 3E 00 482 LD A,BYTE3 ClearRect - 00004933 21 2A 47 483 LD HL,LWRD ClearRect - 00004936 C9 484 RET - 00004937 485 ?0470: - 00004937 4D 486 LD C,L - 00004938 44 487 LD B,H - 00004939 EB 488 EX DE,HL - 0000493A 489 ?0471: - 0000493A 3E 00 490 LD A,BYTE3 TouchRegion - 0000493C 21 AE 48 491 LD HL,LWRD TouchRegion - 0000493F C3 FB 81 492 JP LWRD ?BANK_CALL_DIRECT_L08 - 00004942 493 EnableScreen: - 00004942 CD 7A 82 494 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004945 FC FF 495 DEFW 65532 - 00004947 21 00 00 496 LD HL,0 - 0000494A 39 497 ADD HL,SP - 0000494B EB 498 EX DE,HL - 0000494C 21 D0 84 499 LD HL,?0009 - 0000494F 01 03 00 500 LD BC,3 - 00004952 ED B0 501 LDIR - 00004954 DD 46 02 502 LD B,(IX+2) - 00004957 DD 70 FE 503 LD (IX-2),B - 0000495A 21 03 00 504 LD HL,3 - 0000495D E5 505 PUSH HL - 0000495E 2B 506 DEC HL - 0000495F C3 BF 46 507 JP LWRD ?0372 - 00004962 4D 508 LD C,L - 00004963 C3 13 47 509 JP LWRD ?0381 - 00004966 2A 3F 87 510 LD HL,(global) - 00004969 C3 58 47 511 JP LWRD ?0389 - 0000496C 23 512 INC HL - 0000496D C3 9F 47 513 JP LWRD ?0396 - 00004970 23 514 INC HL - 00004971 C3 E8 47 515 JP LWRD ?0402 - 00004974 3E 00 516 LD A,BYTE3 _write - 00004976 C3 32 48 517 JP LWRD ?0407 - 00004979 CD FB 81 518 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000497C F1 519 POP AF - 0000497D C3 A3 81 520 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004980 521 grSetFont: - 00004980 CD 7A 82 522 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004983 FE FF 523 DEFW 65534 - 00004985 21 00 00 524 LD HL,0 - 00004988 39 525 ADD HL,SP - 00004989 EB 526 EX DE,HL - 0000498A 21 D3 84 527 LD HL,?0010 - 0000498D 01 02 00 528 LD BC,2 - 00004990 ED B0 529 LDIR - 00004992 DD 46 02 530 LD B,(IX+2) - 00004995 DD 70 FF 531 LD (IX-1),B - 00004998 21 02 00 532 LD HL,2 - 0000499B E5 533 PUSH HL - 0000499C C3 BF 46 534 JP LWRD ?0372 - 0000499F 4D 535 LD C,L - 000049A0 C3 13 47 536 JP LWRD ?0381 - 000049A3 2A 3F 87 537 LD HL,(global) - 000049A6 C3 58 47 538 JP LWRD ?0389 - 000049A9 23 539 INC HL - 000049AA C3 9F 47 540 JP LWRD ?0396 - 000049AD 23 541 INC HL - 000049AE C3 E8 47 542 JP LWRD ?0402 - 000049B1 3E 00 543 LD A,BYTE3 _write - 000049B3 C3 32 48 544 JP LWRD ?0407 - 000049B6 CD FB 81 545 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000049B9 F1 546 POP AF - 000049BA C3 A3 81 547 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000049BD 548 fontSearch: - 000049BD CD 7A 82 549 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000049C0 00 00 550 DEFW 0 - 000049C2 21 0C 00 551 LD HL,12 - 000049C5 ED 4B 3F 87 552 LD BC,(global) - 000049C9 09 553 ADD HL,BC - 000049CA 554 ?0321: - 000049CA 46 555 LD B,(HL) - 000049CB 23 556 INC HL - 000049CC 66 557 LD H,(HL) - 000049CD 68 558 LD L,B - 000049CE EB 559 EX DE,HL - 000049CF 560 ?0012: - 000049CF 7B 561 LD A,E - 000049D0 B2 562 OR D - 000049D1 28 16 563 JR Z,?0011 - 000049D3 6B 564 LD L,E - 000049D4 62 565 LD H,D - 000049D5 46 566 LD B,(HL) - 000049D6 23 567 INC HL - 000049D7 66 568 LD H,(HL) - 000049D8 68 569 LD L,B - 000049D9 DD 4E 02 570 LD C,(IX+2) - 000049DC DD 46 03 571 LD B,(IX+3) - 000049DF ED 42 572 SBC HL,BC - 000049E1 28 06 573 JR Z,?0011 - 000049E3 574 ?0015: - 000049E3 575 ?0014: - 000049E3 576 ?0013: - 000049E3 21 08 00 577 LD HL,8 - 000049E6 19 578 ADD HL,DE - 000049E7 18 E1 579 JR ?0321 - 000049E9 580 ?0011: - 000049E9 EB 581 EX DE,HL - 000049EA C3 A3 81 582 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000049ED 583 setCurrentFont: - 000049ED CD EF 81 584 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000049F0 3E 00 585 LD A,BYTE3 fontSearch - 000049F2 21 BD 49 586 LD HL,LWRD fontSearch - 000049F5 CD 6A 4A 587 CALL LWRD ?0448 - 000049F8 28 29 588 JR Z,?0017 - 000049FA 589 ?0016: - 000049FA DD 5E 02 590 LD E,(IX+2) - 000049FD DD 56 03 591 LD D,(IX+3) - 00004A00 3E 00 592 LD A,BYTE3 grSetFont - 00004A02 21 80 49 593 LD HL,LWRD grSetFont - 00004A05 CD FB 81 594 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004A08 21 0A 00 595 LD HL,10 - 00004A0B ED 4B 3F 87 596 LD BC,(global) - 00004A0F 09 597 ADD HL,BC - 00004A10 E5 598 PUSH HL - 00004A11 DD 5E 02 599 LD E,(IX+2) - 00004A14 DD 56 03 600 LD D,(IX+3) - 00004A17 3E 00 601 LD A,BYTE3 fontSearch - 00004A19 21 BD 49 602 LD HL,LWRD fontSearch - 00004A1C CD 75 4A 603 CALL LWRD ?0449 - 00004A1F E1 604 POP HL - 00004A20 71 605 LD (HL),C - 00004A21 23 606 INC HL - 00004A22 70 607 LD (HL),B - 00004A23 608 ?0017: - 00004A23 C3 A3 81 609 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004A26 610 ?0443: - 00004A26 ED 4B 3F 87 611 LD BC,(global) - 00004A2A 09 612 ADD HL,BC - 00004A2B 46 613 LD B,(HL) - 00004A2C 23 614 INC HL - 00004A2D 66 615 LD H,(HL) - 00004A2E 68 616 LD L,B - 00004A2F 617 ?0442: - 00004A2F 23 618 INC HL - 00004A30 23 619 INC HL - 00004A31 4E 620 LD C,(HL) - 00004A32 23 621 INC HL - 00004A33 46 622 LD B,(HL) - 00004A34 23 623 INC HL - 00004A35 7E 624 LD A,(HL) - 00004A36 69 625 LD L,C - 00004A37 60 626 LD H,B - 00004A38 CD FB 81 627 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004A3B 4D 628 LD C,L - 00004A3C 44 629 LD B,H - 00004A3D FD 6E 06 630 LD L,(IY+6) - 00004A40 FD 66 07 631 LD H,(IY+7) - 00004A43 A7 632 AND A - 00004A44 ED 42 633 SBC HL,BC - 00004A46 EB 634 EX DE,HL - 00004A47 01 02 00 635 LD BC,2 - 00004A4A CD EB 82 636 CALL LWRD ?SS_DIV_L02 - 00004A4D DD 6E 04 637 LD L,(IX+4) - 00004A50 DD 66 05 638 LD H,(IX+5) - 00004A53 19 639 ADD HL,DE - 00004A54 EB 640 EX DE,HL - 00004A55 3E 00 641 LD A,BYTE3 Move - 00004A57 21 EB 46 642 LD HL,LWRD Move - 00004A5A C9 643 RET - 00004A5B 644 ?0444: - 00004A5B CD FB 81 645 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004A5E 4D 646 LD C,L - 00004A5F 44 647 LD B,H - 00004A60 FD 6E 08 648 LD L,(IY+8) - 00004A63 FD 66 09 649 LD H,(IY+9) - 00004A66 A7 650 AND A - 00004A67 ED 42 651 SBC HL,BC - 00004A69 C9 652 RET - 00004A6A 653 ?0448: - 00004A6A CD FB 81 654 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004A6D 7D 655 LD A,L - 00004A6E B4 656 OR H - 00004A6F C9 657 RET - 00004A70 658 ?0450: - 00004A70 3E 01 659 LD A,BYTE3 malloc - 00004A72 21 00 40 660 LD HL,LWRD malloc - 00004A75 661 ?0449: - 00004A75 CD FB 81 662 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004A78 4D 663 LD C,L - 00004A79 44 664 LD B,H - 00004A7A C9 665 RET - 00004A7B 666 loadFont: - 00004A7B CD 7A 82 667 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004A7E FC FF 668 DEFW 65532 - 00004A80 FD E5 669 PUSH IY - 00004A82 11 0E 00 670 LD DE,14 - 00004A85 CD 16 4B 671 CALL LWRD ?0447 - 00004A88 DD 4E 02 672 LD C,(IX+2) - 00004A8B 71 673 LD (HL),C - 00004A8C DD 46 03 674 LD B,(IX+3) - 00004A8F 23 675 INC HL - 00004A90 70 676 LD (HL),B - 00004A91 DD 46 0C 677 LD B,(IX+12) - 00004A94 DD 6E 0A 678 LD L,(IX+10) - 00004A97 FD 75 02 679 LD (IY+2),L - 00004A9A DD 66 0B 680 LD H,(IX+11) - 00004A9D FD 74 03 681 LD (IY+3),H - 00004AA0 FD 70 04 682 LD (IY+4),B - 00004AA3 DD 46 10 683 LD B,(IX+16) - 00004AA6 DD 6E 0E 684 LD L,(IX+14) - 00004AA9 FD 75 05 685 LD (IY+5),L - 00004AAC DD 66 0F 686 LD H,(IX+15) - 00004AAF FD 74 06 687 LD (IY+6),H - 00004AB2 FD 70 07 688 LD (IY+7),B - 00004AB5 AF 689 XOR A - 00004AB6 FD 77 08 690 LD (IY+8),A - 00004AB9 FD 77 09 691 LD (IY+9),A - 00004ABC DD 6E 12 692 LD L,(IX+18) - 00004ABF FD 75 0A 693 LD (IY+10),L - 00004AC2 DD 66 13 694 LD H,(IX+19) - 00004AC5 FD 74 0B 695 LD (IY+11),H - 00004AC8 DD 6E 14 696 LD L,(IX+20) - 00004ACB FD 75 0C 697 LD (IY+12),L - 00004ACE DD 66 15 698 LD H,(IX+21) - 00004AD1 FD 74 0D 699 LD (IY+13),H - 00004AD4 21 0C 00 700 LD HL,12 - 00004AD7 ED 4B 3F 87 701 LD BC,(global) - 00004ADB 09 702 ADD HL,BC - 00004ADC 7E 703 LD A,(HL) - 00004ADD 23 704 INC HL - 00004ADE B6 705 OR (HL) - 00004ADF 21 0C 00 706 LD HL,12 - 00004AE2 ED 4B 3F 87 707 LD BC,(global) - 00004AE6 09 708 ADD HL,BC - 00004AE7 20 10 709 JR NZ,?0019 - 00004AE9 710 ?0018: - 00004AE9 FD E5 711 PUSH IY - 00004AEB C1 712 POP BC - 00004AEC 71 713 LD (HL),C - 00004AED 23 714 INC HL - 00004AEE 70 715 LD (HL),B - 00004AEF 21 0A 00 716 LD HL,10 - 00004AF2 ED 4B 3F 87 717 LD BC,(global) - 00004AF6 09 718 ADD HL,BC - 00004AF7 18 12 719 JR ?0021 - 00004AF9 720 ?0019: - 00004AF9 46 721 LD B,(HL) - 00004AFA 23 722 INC HL - 00004AFB 66 723 LD H,(HL) - 00004AFC 68 724 LD L,B - 00004AFD EB 725 EX DE,HL - 00004AFE 726 ?0022: - 00004AFE 21 08 00 727 LD HL,8 - 00004B01 19 728 ADD HL,DE - 00004B02 7E 729 LD A,(HL) - 00004B03 23 730 INC HL - 00004B04 B6 731 OR (HL) - 00004B05 21 08 00 732 LD HL,8 - 00004B08 19 733 ADD HL,DE - 00004B09 20 EE 734 JR NZ,?0019 - 00004B0B 735 ?0023: - 00004B0B 736 ?0021: - 00004B0B FD E5 737 PUSH IY - 00004B0D C1 738 POP BC - 00004B0E 71 739 LD (HL),C - 00004B0F 23 740 INC HL - 00004B10 70 741 LD (HL),B - 00004B11 742 ?0020: - 00004B11 FD E1 743 POP IY - 00004B13 C3 A3 81 744 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004B16 745 ?0447: - 00004B16 3E 01 746 LD A,BYTE3 malloc - 00004B18 21 00 40 747 LD HL,LWRD malloc - 00004B1B CD FB 81 748 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004B1E E5 749 PUSH HL - 00004B1F FD E1 750 POP IY - 00004B21 C9 751 RET - 00004B22 752 stringwidth: - 00004B22 FD E5 753 PUSH IY - 00004B24 DD E5 754 PUSH IX - 00004B26 C5 755 PUSH BC - 00004B27 D5 756 PUSH DE - 00004B28 DD 21 00 00 757 LD IX,0 - 00004B2C FD 21 00 00 758 LD IY,0 - 00004B30 759 ?0025: - 00004B30 FD E5 760 PUSH IY - 00004B32 21 02 00 761 LD HL,2 - 00004B35 39 762 ADD HL,SP - 00004B36 4E 763 LD C,(HL) - 00004B37 23 764 INC HL - 00004B38 46 765 LD B,(HL) - 00004B39 E1 766 POP HL - 00004B3A 09 767 ADD HL,BC - 00004B3B 7E 768 LD A,(HL) - 00004B3C B7 769 OR A - 00004B3D 28 50 770 JR Z,?0024 - 00004B3F 771 ?0026: - 00004B3F FD E5 772 PUSH IY - 00004B41 E1 773 POP HL - 00004B42 09 774 ADD HL,BC - 00004B43 5E 775 LD E,(HL) - 00004B44 CD C4 81 776 CALL LWRD ?C_V_SWITCH_L06 - 00004B47 0A 00 777 DEFW 10 - 00004B49 21 778 DEFB 33 - 00004B4A 2C 779 DEFB 44 - 00004B4B 2E 780 DEFB 46 - 00004B4C 31 781 DEFB 49 - 00004B4D 49 782 DEFB 73 - 00004B4E 69 783 DEFB 105 - 00004B4F 6A 784 DEFB 106 - 00004B50 6B 785 DEFB 107 - 00004B51 6C 786 DEFB 108 - 00004B52 72 787 DEFB 114 - 00004B53 7D 4B 788 DEFW ?0032 - 00004B55 78 4B 789 DEFW ?0031 - 00004B57 6E 4B 790 DEFW ?0029 - 00004B59 78 4B 791 DEFW ?0031 - 00004B5B 78 4B 792 DEFW ?0031 - 00004B5D 69 4B 793 DEFW ?0028 - 00004B5F 69 4B 794 DEFW ?0028 - 00004B61 73 4B 795 DEFW ?0030 - 00004B63 73 4B 796 DEFW ?0030 - 00004B65 73 4B 797 DEFW ?0030 - 00004B67 69 4B 798 DEFW ?0028 - 00004B69 799 ?0028: - 00004B69 01 02 00 800 LD BC,2 - 00004B6C 18 12 801 JR ?0331 - 00004B6E 802 ?0029: - 00004B6E 01 03 00 803 LD BC,3 - 00004B71 18 0D 804 JR ?0331 - 00004B73 805 ?0030: - 00004B73 01 04 00 806 LD BC,4 - 00004B76 18 08 807 JR ?0331 - 00004B78 808 ?0031: - 00004B78 01 05 00 809 LD BC,5 - 00004B7B 18 03 810 JR ?0331 - 00004B7D 811 ?0032: - 00004B7D 01 06 00 812 LD BC,6 - 00004B80 813 ?0331: - 00004B80 DD 09 814 ADD IX,BC - 00004B82 815 ?0027: - 00004B82 21 02 00 816 LD HL,2 - 00004B85 39 817 ADD HL,SP - 00004B86 4E 818 LD C,(HL) - 00004B87 23 819 INC HL - 00004B88 46 820 LD B,(HL) - 00004B89 DD 09 821 ADD IX,BC - 00004B8B FD 23 822 INC IY - 00004B8D 18 A1 823 JR ?0025 - 00004B8F 824 ?0024: - 00004B8F DD E5 825 PUSH IX - 00004B91 E1 826 POP HL - 00004B92 F1 827 POP AF - 00004B93 F1 828 POP AF - 00004B94 DD E1 829 POP IX - 00004B96 FD E1 830 POP IY - 00004B98 C3 A9 81 831 JP LWRD ?BANK_FAST_LEAVE_L08 - 00004B9B 832 stringheight: - 00004B9B CD EF 81 833 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004B9E 7B 834 LD A,E - 00004B9F FE 80 835 CP 128 - 00004BA1 30 06 836 JR NC,?0034 - 00004BA3 837 ?0033: - 00004BA3 21 07 00 838 LD HL,7 - 00004BA6 09 839 ADD HL,BC - 00004BA7 18 0C 840 JR ?0036 - 00004BA9 841 ?0034: - 00004BA9 FE CC 842 CP 204 - 00004BAB 38 08 843 JR C,?0036 - 00004BAD 3E DF 844 LD A,223 - 00004BAF BB 845 CP E - 00004BB0 38 03 846 JR C,?0036 - 00004BB2 847 ?0038: - 00004BB2 848 ?0037: - 00004BB2 849 ?0035: - 00004BB2 69 850 LD L,C - 00004BB3 60 851 LD H,B - 00004BB4 23 852 INC HL - 00004BB5 853 ?0036: - 00004BB5 854 ?0039: - 00004BB5 C3 A3 81 855 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004BB8 856 stringheight01: - 00004BB8 CD EF 81 857 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004BBB 01 00 00 858 LD BC,0 - 00004BBE 859 ?0415: - 00004BBE 1A 860 LD A,(DE) - 00004BBF 5F 861 LD E,A - 00004BC0 3E 00 862 LD A,BYTE3 stringheight - 00004BC2 21 9B 4B 863 LD HL,LWRD stringheight - 00004BC5 CD FB 81 864 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004BC8 C3 A3 81 865 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004BCB 866 stringheight2: - 00004BCB CD EF 81 867 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004BCE 01 05 00 868 LD BC,5 - 00004BD1 C3 BE 4B 869 JP LWRD ?0415 - 00004BD4 870 stringwidth0: - 00004BD4 CD EF 81 871 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004BD7 01 00 00 872 LD BC,0 - 00004BDA 873 ?0416: - 00004BDA 3E 00 874 LD A,BYTE3 stringwidth - 00004BDC 21 22 4B 875 LD HL,LWRD stringwidth - 00004BDF CD FB 81 876 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004BE2 C3 A3 81 877 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004BE5 878 stringwidth1: - 00004BE5 CD EF 81 879 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004BE8 01 02 00 880 LD BC,2 - 00004BEB C3 DA 4B 881 JP LWRD ?0416 - 00004BEE 882 stringwidth2: - 00004BEE CD EF 81 883 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00004BF1 01 03 00 884 LD BC,3 - 00004BF4 C3 DA 4B 885 JP LWRD ?0416 - 00004BF7 886 Component_new: - 00004BF7 CD 7A 82 887 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004BFA 00 00 888 DEFW 0 - 00004BFC FD E5 889 PUSH IY - 00004BFE 11 28 00 890 LD DE,40 - 00004C01 CD 16 4B 891 CALL LWRD ?0447 - 00004C04 2A 3F 87 892 LD HL,(global) - 00004C07 5E 893 LD E,(HL) - 00004C08 23 894 INC HL - 00004C09 56 895 LD D,(HL) - 00004C0A 13 896 INC DE - 00004C0B 72 897 LD (HL),D - 00004C0C 2B 898 DEC HL - 00004C0D 73 899 LD (HL),E - 00004C0E FD E5 900 PUSH IY - 00004C10 E1 901 POP HL - 00004C11 73 902 LD (HL),E - 00004C12 23 903 INC HL - 00004C13 72 904 LD (HL),D - 00004C14 DD 6E 02 905 LD L,(IX+2) - 00004C17 FD 75 02 906 LD (IY+2),L - 00004C1A DD 66 03 907 LD H,(IX+3) - 00004C1D FD 74 03 908 LD (IY+3),H - 00004C20 FD 71 04 909 LD (IY+4),C - 00004C23 FD 70 05 910 LD (IY+5),B - 00004C26 DD 6E 0A 911 LD L,(IX+10) - 00004C29 FD 75 06 912 LD (IY+6),L - 00004C2C DD 66 0B 913 LD H,(IX+11) - 00004C2F FD 74 07 914 LD (IY+7),H - 00004C32 DD 6E 0C 915 LD L,(IX+12) - 00004C35 FD 75 08 916 LD (IY+8),L - 00004C38 DD 66 0D 917 LD H,(IX+13) - 00004C3B FD 74 09 918 LD (IY+9),H - 00004C3E AF 919 XOR A - 00004C3F FD 77 0A 920 LD (IY+10),A - 00004C42 FD 77 0B 921 LD (IY+11),A - 00004C45 FD 77 0C 922 LD (IY+12),A - 00004C48 FD 77 0D 923 LD (IY+13),A - 00004C4B FD 77 0E 924 LD (IY+14),A - 00004C4E FD 77 0F 925 LD (IY+15),A - 00004C51 FD 77 10 926 LD (IY+16),A - 00004C54 FD 77 11 927 LD (IY+17),A - 00004C57 FD 77 12 928 LD (IY+18),A - 00004C5A FD 77 13 929 LD (IY+19),A - 00004C5D FD 77 14 930 LD (IY+20),A - 00004C60 FD 77 15 931 LD (IY+21),A - 00004C63 FD 77 16 932 LD (IY+22),A - 00004C66 FD 77 17 933 LD (IY+23),A - 00004C69 FD 77 18 934 LD (IY+24),A - 00004C6C FD 77 19 935 LD (IY+25),A - 00004C6F FD 77 1A 936 LD (IY+26),A - 00004C72 FD 77 1B 937 LD (IY+27),A - 00004C75 FD 77 1C 938 LD (IY+28),A - 00004C78 FD 77 1D 939 LD (IY+29),A - 00004C7B FD 77 1E 940 LD (IY+30),A - 00004C7E FD 77 1F 941 LD (IY+31),A - 00004C81 FD 77 24 942 LD (IY+36),A - 00004C84 FD 77 25 943 LD (IY+37),A - 00004C87 FD 77 26 944 LD (IY+38),A - 00004C8A FD 77 27 945 LD (IY+39),A - 00004C8D FD 77 20 946 LD (IY+32),A - 00004C90 FD 77 21 947 LD (IY+33),A - 00004C93 FD 77 22 948 LD (IY+34),A - 00004C96 FD 77 23 949 LD (IY+35),A - 00004C99 950 ?0418: - 00004C99 FD E5 951 PUSH IY - 00004C9B E1 952 POP HL - 00004C9C FD E1 953 POP IY - 00004C9E C3 A3 81 954 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004CA1 955 Component_setlabel: - 00004CA1 CD 7A 82 956 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004CA4 00 00 957 DEFW 0 - 00004CA6 FD E5 958 PUSH IY - 00004CA8 DD 6E 02 959 LD L,(IX+2) - 00004CAB DD 66 03 960 LD H,(IX+3) - 00004CAE E5 961 PUSH HL - 00004CAF FD E1 962 POP IY - 00004CB1 11 00 00 963 LD DE,0 - 00004CB4 964 ?0041: - 00004CB4 DD 6E 04 965 LD L,(IX+4) - 00004CB7 DD 66 05 966 LD H,(IX+5) - 00004CBA 19 967 ADD HL,DE - 00004CBB 7E 968 LD A,(HL) - 00004CBC B7 969 OR A - 00004CBD 28 21 970 JR Z,?0040 - 00004CBF 01 14 80 971 LD BC,32788 - 00004CC2 6B 972 LD L,E - 00004CC3 62 973 LD H,D - 00004CC4 78 974 LD A,B - 00004CC5 AC 975 XOR H - 00004CC6 67 976 LD H,A - 00004CC7 ED 42 977 SBC HL,BC - 00004CC9 30 15 978 JR NC,?0040 - 00004CCB 979 ?0044: - 00004CCB 980 ?0043: - 00004CCB 981 ?0042: - 00004CCB FD 6E 20 982 LD L,(IY+32) - 00004CCE FD 66 21 983 LD H,(IY+33) - 00004CD1 19 984 ADD HL,DE - 00004CD2 E5 985 PUSH HL - 00004CD3 DD 6E 04 986 LD L,(IX+4) - 00004CD6 DD 66 05 987 LD H,(IX+5) - 00004CD9 19 988 ADD HL,DE - 00004CDA 46 989 LD B,(HL) - 00004CDB E1 990 POP HL - 00004CDC 70 991 LD (HL),B - 00004CDD 13 992 INC DE - 00004CDE 18 D4 993 JR ?0041 - 00004CE0 994 ?0040: - 00004CE0 FD 6E 20 995 LD L,(IY+32) - 00004CE3 FD 66 21 996 LD H,(IY+33) - 00004CE6 19 997 ADD HL,DE - 00004CE7 36 00 998 LD (HL),0 - 00004CE9 FD E1 999 POP IY - 00004CEB C3 A3 81 1000 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004CEE 1001 Component_add: - 00004CEE CD 7A 82 1002 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004CF1 00 00 1003 DEFW 0 - 00004CF3 FD E5 1004 PUSH IY - 00004CF5 59 1005 LD E,C - 00004CF6 50 1006 LD D,B - 00004CF7 21 15 00 1007 LD HL,21 - 00004CFA DD 4E 02 1008 LD C,(IX+2) - 00004CFD DD 46 03 1009 LD B,(IX+3) - 00004D00 09 1010 ADD HL,BC - 00004D01 7E 1011 LD A,(HL) - 00004D02 23 1012 INC HL - 00004D03 66 1013 LD H,(HL) - 00004D04 6F 1014 LD L,A - 00004D05 E5 1015 PUSH HL - 00004D06 FD E1 1016 POP IY - 00004D08 21 15 00 1017 LD HL,21 - 00004D0B 09 1018 ADD HL,BC - 00004D0C 7E 1019 LD A,(HL) - 00004D0D 23 1020 INC HL - 00004D0E B6 1021 OR (HL) - 00004D0F 20 09 1022 JR NZ,?0046 - 00004D11 1023 ?0045: - 00004D11 21 15 00 1024 LD HL,21 - 00004D14 09 1025 ADD HL,BC - 00004D15 73 1026 LD (HL),E - 00004D16 23 1027 INC HL - 00004D17 72 1028 LD (HL),D - 00004D18 18 19 1029 JR ?0335 - 00004D1A 1030 ?0046: - 00004D1A 1031 ?0049: - 00004D1A FD 7E 13 1032 LD A,(IY+19) - 00004D1D FD B6 14 1033 OR (IY+20) - 00004D20 28 0B 1034 JR Z,?0048 - 00004D22 1035 ?0050: - 00004D22 FD 6E 13 1036 LD L,(IY+19) - 00004D25 FD 66 14 1037 LD H,(IY+20) - 00004D28 E5 1038 PUSH HL - 00004D29 FD E1 1039 POP IY - 00004D2B 18 ED 1040 JR ?0046 - 00004D2D 1041 ?0048: - 00004D2D FD 73 13 1042 LD (IY+19),E - 00004D30 FD 72 14 1043 LD (IY+20),D - 00004D33 1044 ?0335: - 00004D33 21 13 00 1045 LD HL,19 - 00004D36 19 1046 ADD HL,DE - 00004D37 77 1047 LD (HL),A - 00004D38 23 1048 INC HL - 00004D39 77 1049 LD (HL),A - 00004D3A 1050 ?0047: - 00004D3A 21 11 00 1051 LD HL,17 - 00004D3D 19 1052 ADD HL,DE - 00004D3E DD 4E 02 1053 LD C,(IX+2) - 00004D41 71 1054 LD (HL),C - 00004D42 DD 46 03 1055 LD B,(IX+3) - 00004D45 23 1056 INC HL - 00004D46 70 1057 LD (HL),B - 00004D47 FD E1 1058 POP IY - 00004D49 C3 A3 81 1059 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004D4C 1060 Component_paint: - 00004D4C C5 1061 PUSH BC - 00004D4D FD E5 1062 PUSH IY - 00004D4F DD E5 1063 PUSH IX - 00004D51 21 15 00 1064 LD HL,21 - 00004D54 19 1065 ADD HL,DE - 00004D55 46 1066 LD B,(HL) - 00004D56 23 1067 INC HL - 00004D57 66 1068 LD H,(HL) - 00004D58 68 1069 LD L,B - 00004D59 E5 1070 PUSH HL - 00004D5A DD E1 1071 POP IX - 00004D5C CD 88 4D 1072 CALL LWRD ?0477 - 00004D5F 1073 ?0052: - 00004D5F DD E5 1074 PUSH IX - 00004D61 E1 1075 POP HL - 00004D62 7D 1076 LD A,L - 00004D63 B4 1077 OR H - 00004D64 28 1A 1078 JR Z,?0051 - 00004D66 1079 ?0053: - 00004D66 DD E5 1080 PUSH IX - 00004D68 D1 1081 POP DE - 00004D69 DD 7E 1C 1082 LD A,(IX+28) - 00004D6C DD 6E 1A 1083 LD L,(IX+26) - 00004D6F DD 66 1B 1084 LD H,(IX+27) - 00004D72 CD FB 81 1085 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00004D75 DD 6E 13 1086 LD L,(IX+19) - 00004D78 DD 66 14 1087 LD H,(IX+20) - 00004D7B E5 1088 PUSH HL - 00004D7C DD E1 1089 POP IX - 00004D7E 18 DF 1090 JR ?0052 - 00004D80 1091 ?0051: - 00004D80 1E 01 1092 LD E,1 - 00004D82 CD 8A 4D 1093 CALL LWRD ?0478 - 00004D85 C3 A6 48 1094 JP LWRD ?0411 - 00004D88 1095 ?0477: - 00004D88 1E 00 1096 LD E,0 - 00004D8A 1097 ?0478: - 00004D8A 3E 00 1098 LD A,BYTE3 EnableScreen - 00004D8C 21 42 49 1099 LD HL,LWRD EnableScreen - 00004D8F C3 FB 81 1100 JP LWRD ?BANK_CALL_DIRECT_L08 - 00004D92 1101 Component_findXY: - 00004D92 CD 7A 82 1102 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004D95 00 00 1103 DEFW 0 - 00004D97 FD E5 1104 PUSH IY - 00004D99 DD 6E 02 1105 LD L,(IX+2) - 00004D9C DD 66 03 1106 LD H,(IX+3) - 00004D9F E5 1107 PUSH HL - 00004DA0 FD E1 1108 POP IY - 00004DA2 1109 ?0056: - 00004DA2 DD 6E 04 1110 LD L,(IX+4) - 00004DA5 DD 66 05 1111 LD H,(IX+5) - 00004DA8 7E 1112 LD A,(HL) - 00004DA9 FD 86 02 1113 ADD A,(IY+2) - 00004DAC 77 1114 LD (HL),A - 00004DAD 23 1115 INC HL - 00004DAE 7E 1116 LD A,(HL) - 00004DAF FD 8E 03 1117 ADC A,(IY+3) - 00004DB2 77 1118 LD (HL),A - 00004DB3 DD 6E 0A 1119 LD L,(IX+10) - 00004DB6 DD 66 0B 1120 LD H,(IX+11) - 00004DB9 7E 1121 LD A,(HL) - 00004DBA FD 86 04 1122 ADD A,(IY+4) - 00004DBD 77 1123 LD (HL),A - 00004DBE 23 1124 INC HL - 00004DBF 7E 1125 LD A,(HL) - 00004DC0 FD 8E 05 1126 ADC A,(IY+5) - 00004DC3 77 1127 LD (HL),A - 00004DC4 FD 6E 11 1128 LD L,(IY+17) - 00004DC7 FD 66 12 1129 LD H,(IY+18) - 00004DCA E5 1130 PUSH HL - 00004DCB FD E1 1131 POP IY - 00004DCD 7D 1132 LD A,L - 00004DCE B4 1133 OR H - 00004DCF 20 D1 1134 JR NZ,?0056 - 00004DD1 1135 ?0054: - 00004DD1 FD E1 1136 POP IY - 00004DD3 C3 A3 81 1137 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004DD6 1138 Component_find: - 00004DD6 CD 7A 82 1139 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004DD9 00 00 1140 DEFW 0 - 00004DDB 21 15 00 1141 LD HL,21 - 00004DDE DD 4E 02 1142 LD C,(IX+2) - 00004DE1 DD 46 03 1143 LD B,(IX+3) - 00004DE4 09 1144 ADD HL,BC - 00004DE5 1145 ?0336: - 00004DE5 46 1146 LD B,(HL) - 00004DE6 23 1147 INC HL - 00004DE7 66 1148 LD H,(HL) - 00004DE8 68 1149 LD L,B - 00004DE9 EB 1150 EX DE,HL - 00004DEA 1151 ?0058: - 00004DEA 7B 1152 LD A,E - 00004DEB B2 1153 OR D - 00004DEC 28 1B 1154 JR Z,?0057 - 00004DEE 1155 ?0059: - 00004DEE 21 10 00 1156 LD HL,16 - 00004DF1 19 1157 ADD HL,DE - 00004DF2 4E 1158 LD C,(HL) - 00004DF3 06 00 1159 LD B,0 - 00004DF5 DD 6E 04 1160 LD L,(IX+4) - 00004DF8 DD 66 05 1161 LD H,(IX+5) - 00004DFB A7 1162 AND A - 00004DFC ED 42 1163 SBC HL,BC - 00004DFE 20 03 1164 JR NZ,?0061 - 00004E00 1165 ?0060: - 00004E00 EB 1166 EX DE,HL - 00004E01 18 08 1167 JR ?0062 - 00004E03 1168 ?0061: - 00004E03 21 13 00 1169 LD HL,19 - 00004E06 19 1170 ADD HL,DE - 00004E07 18 DC 1171 JR ?0336 - 00004E09 1172 ?0057: - 00004E09 6F 1173 LD L,A - 00004E0A 67 1174 LD H,A - 00004E0B 1175 ?0062: - 00004E0B C3 A3 81 1176 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004E0E 1177 Component_delete: - 00004E0E CD 7A 82 1178 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00004E11 F8 FF 1179 DEFW 65528 - 00004E13 FD E5 1180 PUSH IY - 00004E15 DD 6E 02 1181 LD L,(IX+2) - 00004E18 DD 66 03 1182 LD H,(IX+3) - 00004E1B E5 1183 PUSH HL - 00004E1C FD E1 1184 POP IY - 00004E1E FD 6E 15 1185 LD L,(IY+21) - 00004E21 DD 75 F8 1186 LD (IX-8),L - 00004E24 FD 66 16 1187 LD H,(IY+22) - 00004E27 DD 74 F9 1188 LD (IX-7),H - 00004E2A FD E5 1189 PUSH IY - 00004E2C E1 1190 POP HL - 00004E2D 7D 1191 LD A,L - 00004E2E B4 1192 OR H - 00004E2F CA C1 4F 1193 JP Z,?0064 - 00004E32 1194 ?0063: - 00004E32 1195 ?0066: - 00004E32 DD 7E F8 1196 LD A,(IX-8) - 00004E35 DD B6 F9 1197 OR (IX-7) - 00004E38 28 11 1198 JR Z,?0065 - 00004E3A 1199 ?0067: - 00004E3A DD 5E F8 1200 LD E,(IX-8) - 00004E3D DD 56 F9 1201 LD D,(IX-7) - 00004E40 CD D7 4F 1202 CALL LWRD ?0453 - 00004E43 DD 75 F8 1203 LD (IX-8),L - 00004E46 DD 74 F9 1204 LD (IX-7),H - 00004E49 18 E7 1205 JR ?0063 - 00004E4B 1206 ?0065: - 00004E4B FD 7E 11 1207 LD A,(IY+17) - 00004E4E FD B6 12 1208 OR (IY+18) - 00004E51 CA DD 4E 1209 JP Z,?0079 - 00004E54 1210 ?0068: - 00004E54 FD 6E 11 1211 LD L,(IY+17) - 00004E57 FD 66 12 1212 LD H,(IY+18) - 00004E5A 01 15 00 1213 LD BC,21 - 00004E5D 09 1214 ADD HL,BC - 00004E5E 46 1215 LD B,(HL) - 00004E5F 23 1216 INC HL - 00004E60 66 1217 LD H,(HL) - 00004E61 68 1218 LD L,B - 00004E62 FD E5 1219 PUSH IY - 00004E64 C1 1220 POP BC - 00004E65 A7 1221 AND A - 00004E66 ED 42 1222 SBC HL,BC - 00004E68 FD 6E 11 1223 LD L,(IY+17) - 00004E6B FD 66 12 1224 LD H,(IY+18) - 00004E6E 01 15 00 1225 LD BC,21 - 00004E71 09 1226 ADD HL,BC - 00004E72 20 09 1227 JR NZ,?0071 - 00004E74 1228 ?0070: - 00004E74 E5 1229 PUSH HL - 00004E75 FD 6E 11 1230 LD L,(IY+17) - 00004E78 FD 66 12 1231 LD H,(IY+18) - 00004E7B 18 50 1232 JR ?0339 - 00004E7D 1233 ?0071: - 00004E7D 46 1234 LD B,(HL) - 00004E7E 23 1235 INC HL - 00004E7F 66 1236 LD H,(HL) - 00004E80 68 1237 LD L,B - 00004E81 1238 ?0338: - 00004E81 DD 75 F8 1239 LD (IX-8),L - 00004E84 DD 74 F9 1240 LD (IX-7),H - 00004E87 1241 ?0074: - 00004E87 21 13 00 1242 LD HL,19 - 00004E8A DD 4E F8 1243 LD C,(IX-8) - 00004E8D DD 46 F9 1244 LD B,(IX-7) - 00004E90 09 1245 ADD HL,BC - 00004E91 46 1246 LD B,(HL) - 00004E92 23 1247 INC HL - 00004E93 66 1248 LD H,(HL) - 00004E94 68 1249 LD L,B - 00004E95 FD E5 1250 PUSH IY - 00004E97 C1 1251 POP BC - 00004E98 A7 1252 AND A - 00004E99 ED 42 1253 SBC HL,BC - 00004E9B 28 19 1254 JR Z,?0073 - 00004E9D 21 13 00 1255 LD HL,19 - 00004EA0 DD 4E F8 1256 LD C,(IX-8) - 00004EA3 DD 46 F9 1257 LD B,(IX-7) - 00004EA6 09 1258 ADD HL,BC - 00004EA7 7E 1259 LD A,(HL) - 00004EA8 23 1260 INC HL - 00004EA9 B6 1261 OR (HL) - 00004EAA 28 0A 1262 JR Z,?0073 - 00004EAC 1263 ?0077: - 00004EAC 1264 ?0076: - 00004EAC 1265 ?0075: - 00004EAC 21 13 00 1266 LD HL,19 - 00004EAF 09 1267 ADD HL,BC - 00004EB0 56 1268 LD D,(HL) - 00004EB1 23 1269 INC HL - 00004EB2 66 1270 LD H,(HL) - 00004EB3 6A 1271 LD L,D - 00004EB4 18 CB 1272 JR ?0338 - 00004EB6 1273 ?0073: - 00004EB6 21 13 00 1274 LD HL,19 - 00004EB9 DD 4E F8 1275 LD C,(IX-8) - 00004EBC DD 46 F9 1276 LD B,(IX-7) - 00004EBF 09 1277 ADD HL,BC - 00004EC0 7E 1278 LD A,(HL) - 00004EC1 23 1279 INC HL - 00004EC2 B6 1280 OR (HL) - 00004EC3 28 18 1281 JR Z,?0079 - 00004EC5 1282 ?0078: - 00004EC5 21 13 00 1283 LD HL,19 - 00004EC8 09 1284 ADD HL,BC - 00004EC9 E5 1285 PUSH HL - 00004ECA 21 13 00 1286 LD HL,19 - 00004ECD 1287 ?0339: - 00004ECD 09 1288 ADD HL,BC - 00004ECE 46 1289 LD B,(HL) - 00004ECF 23 1290 INC HL - 00004ED0 66 1291 LD H,(HL) - 00004ED1 68 1292 LD L,B - 00004ED2 01 13 00 1293 LD BC,19 - 00004ED5 09 1294 ADD HL,BC - 00004ED6 4E 1295 LD C,(HL) - 00004ED7 23 1296 INC HL - 00004ED8 46 1297 LD B,(HL) - 00004ED9 E1 1298 POP HL - 00004EDA 71 1299 LD (HL),C - 00004EDB 23 1300 INC HL - 00004EDC 70 1301 LD (HL),B - 00004EDD 1302 ?0079: - 00004EDD 1303 ?0072: - 00004EDD 1304 ?0069: - 00004EDD FD 6E 13 1305 LD L,(IY+19) - 00004EE0 DD 75 F8 1306 LD (IX-8),L - 00004EE3 FD 66 14 1307 LD H,(IY+20) - 00004EE6 DD 74 F9 1308 LD (IX-7),H - 00004EE9 3E 04 1309 LD A,4 - 00004EEB FD AE 24 1310 XOR (IY+36) - 00004EEE FD B6 25 1311 OR (IY+37) - 00004EF1 C2 8D 4F 1312 JP NZ,?0088 - 00004EF4 1313 ?0080: - 00004EF4 FD 6E 11 1314 LD L,(IY+17) - 00004EF7 DD 75 FC 1315 LD (IX-4),L - 00004EFA FD 66 12 1316 LD H,(IY+18) - 00004EFD DD 74 FD 1317 LD (IX-3),H - 00004F00 FD 6E 26 1318 LD L,(IY+38) - 00004F03 DD 75 FE 1319 LD (IX-2),L - 00004F06 FD 66 27 1320 LD H,(IY+39) - 00004F09 DD 74 FF 1321 LD (IX-1),H - 00004F0C CD CC 4F 1322 CALL LWRD ?0451 - 00004F0F DD 6E FE 1323 LD L,(IX-2) - 00004F12 DD 66 FF 1324 LD H,(IX-1) - 00004F15 23 1325 INC HL - 00004F16 23 1326 INC HL - 00004F17 CD CC 4F 1327 CALL LWRD ?0451 - 00004F1A 1328 ?0083: - 00004F1A DD 7E FC 1329 LD A,(IX-4) - 00004F1D DD B6 FD 1330 OR (IX-3) - 00004F20 28 20 1331 JR Z,?0082 - 00004F22 21 24 00 1332 LD HL,36 - 00004F25 DD 4E FC 1333 LD C,(IX-4) - 00004F28 DD 46 FD 1334 LD B,(IX-3) - 00004F2B 09 1335 ADD HL,BC - 00004F2C 3E 04 1336 LD A,4 - 00004F2E AE 1337 XOR (HL) - 00004F2F 23 1338 INC HL - 00004F30 B6 1339 OR (HL) - 00004F31 28 0F 1340 JR Z,?0082 - 00004F33 1341 ?0086: - 00004F33 1342 ?0085: - 00004F33 1343 ?0084: - 00004F33 21 11 00 1344 LD HL,17 - 00004F36 09 1345 ADD HL,BC - 00004F37 56 1346 LD D,(HL) - 00004F38 DD 72 FC 1347 LD (IX-4),D - 00004F3B 23 1348 INC HL - 00004F3C 66 1349 LD H,(HL) - 00004F3D DD 74 FD 1350 LD (IX-3),H - 00004F40 18 D8 1351 JR ?0083 - 00004F42 1352 ?0082: - 00004F42 DD 7E FC 1353 LD A,(IX-4) - 00004F45 DD B6 FD 1354 OR (IX-3) - 00004F48 28 43 1355 JR Z,?0088 - 00004F4A 1356 ?0087: - 00004F4A 21 26 00 1357 LD HL,38 - 00004F4D DD 4E FC 1358 LD C,(IX-4) - 00004F50 DD 46 FD 1359 LD B,(IX-3) - 00004F53 09 1360 ADD HL,BC - 00004F54 46 1361 LD B,(HL) - 00004F55 DD 70 FE 1362 LD (IX-2),B - 00004F58 23 1363 INC HL - 00004F59 66 1364 LD H,(HL) - 00004F5A DD 74 FF 1365 LD (IX-1),H - 00004F5D 21 06 00 1366 LD HL,6 - 00004F60 ED 4B 3F 87 1367 LD BC,(global) - 00004F64 09 1368 ADD HL,BC - 00004F65 E5 1369 PUSH HL - 00004F66 DD 6E FE 1370 LD L,(IX-2) - 00004F69 DD 66 FF 1371 LD H,(IX-1) - 00004F6C 5E 1372 LD E,(HL) - 00004F6D 23 1373 INC HL - 00004F6E 56 1374 LD D,(HL) - 00004F6F E1 1375 POP HL - 00004F70 73 1376 LD (HL),E - 00004F71 23 1377 INC HL - 00004F72 72 1378 LD (HL),D - 00004F73 21 08 00 1379 LD HL,8 - 00004F76 ED 4B 3F 87 1380 LD BC,(global) - 00004F7A 09 1381 ADD HL,BC - 00004F7B E5 1382 PUSH HL - 00004F7C DD 4E FE 1383 LD C,(IX-2) - 00004F7F DD 46 FF 1384 LD B,(IX-1) - 00004F82 03 1385 INC BC - 00004F83 03 1386 INC BC - 00004F84 69 1387 LD L,C - 00004F85 60 1388 LD H,B - 00004F86 4E 1389 LD C,(HL) - 00004F87 23 1390 INC HL - 00004F88 46 1391 LD B,(HL) - 00004F89 E1 1392 POP HL - 00004F8A 71 1393 LD (HL),C - 00004F8B 23 1394 INC HL - 00004F8C 70 1395 LD (HL),B - 00004F8D 1396 ?0088: - 00004F8D 1397 ?0081: - 00004F8D FD 4E 24 1398 LD C,(IY+36) - 00004F90 FD 46 25 1399 LD B,(IY+37) - 00004F93 21 00 00 1400 LD HL,0 - 00004F96 CD C8 82 1401 CALL LWRD ?SS_CMP_L02 - 00004F99 30 09 1402 JR NC,?0090 - 00004F9B 1403 ?0089: - 00004F9B FD 5E 26 1404 LD E,(IY+38) - 00004F9E FD 56 27 1405 LD D,(IY+39) - 00004FA1 CD CF 4F 1406 CALL LWRD ?0452 - 00004FA4 1407 ?0090: - 00004FA4 FD CB 0B 76 1408 BIT 6,(IY+11) - 00004FA8 20 11 1409 JR NZ,?0092 - 00004FAA FD 7E 20 1410 LD A,(IY+32) - 00004FAD FD B6 21 1411 OR (IY+33) - 00004FB0 28 09 1412 JR Z,?0092 - 00004FB2 1413 ?0094: - 00004FB2 1414 ?0093: - 00004FB2 1415 ?0091: - 00004FB2 FD 5E 20 1416 LD E,(IY+32) - 00004FB5 FD 56 21 1417 LD D,(IY+33) - 00004FB8 CD CF 4F 1418 CALL LWRD ?0452 - 00004FBB 1419 ?0092: - 00004FBB FD E5 1420 PUSH IY - 00004FBD D1 1421 POP DE - 00004FBE CD CF 4F 1422 CALL LWRD ?0452 - 00004FC1 1423 ?0064: - 00004FC1 DD 6E F8 1424 LD L,(IX-8) - 00004FC4 DD 66 F9 1425 LD H,(IX-7) - 00004FC7 FD E1 1426 POP IY - 00004FC9 C3 A3 81 1427 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00004FCC 1428 ?0451: - 00004FCC 5E 1429 LD E,(HL) - 00004FCD 23 1430 INC HL - 00004FCE 56 1431 LD D,(HL) - 00004FCF 1432 ?0452: - 00004FCF 3E 00 1433 LD A,BYTE3 free - 00004FD1 21 5F 74 1434 LD HL,LWRD free - 00004FD4 C3 FB 81 1435 JP LWRD ?BANK_CALL_DIRECT_L08 - 00004FD7 1436 ?0453: - 00004FD7 3E 00 1437 LD A,BYTE3 Component_delete - 00004FD9 21 0E 4E 1438 LD HL,LWRD Component_delete - 00004FDC C3 FB 81 1439 JP LWRD ?BANK_CALL_DIRECT_L08 - 00004FDF 1440 Component_delete_children: - 00004FDF C5 1441 PUSH BC - 00004FE0 FD E5 1442 PUSH IY - 00004FE2 DD E5 1443 PUSH IX - 00004FE4 21 15 00 1444 LD HL,21 - 00004FE7 19 1445 ADD HL,DE - 00004FE8 46 1446 LD B,(HL) - 00004FE9 23 1447 INC HL - 00004FEA 66 1448 LD H,(HL) - 00004FEB 68 1449 LD L,B - 00004FEC 1450 ?0341: - 00004FEC E5 1451 PUSH HL - 00004FED DD E1 1452 POP IX - 00004FEF 1453 ?0096: - 00004FEF 7D 1454 LD A,L - 00004FF0 B4 1455 OR H - 00004FF1 28 08 1456 JR Z,?0095 - 00004FF3 1457 ?0097: - 00004FF3 DD E5 1458 PUSH IX - 00004FF5 D1 1459 POP DE - 00004FF6 CD D7 4F 1460 CALL LWRD ?0453 - 00004FF9 18 F1 1461 JR ?0341 - 00004FFB 1462 ?0095: - 00004FFB C3 A6 48 1463 JP LWRD ?0411 - 00004FFE 1464 Component_changestate_children: - 00004FFE CD 7A 82 1465 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005001 00 00 1466 DEFW 0 - 00005003 FD E5 1467 PUSH IY - 00005005 21 15 00 1468 LD HL,21 - 00005008 DD 5E 02 1469 LD E,(IX+2) - 0000500B DD 56 03 1470 LD D,(IX+3) - 0000500E 19 1471 ADD HL,DE - 0000500F 1472 ?0342: - 0000500F 56 1473 LD D,(HL) - 00005010 23 1474 INC HL - 00005011 66 1475 LD H,(HL) - 00005012 6A 1476 LD L,D - 00005013 E5 1477 PUSH HL - 00005014 FD E1 1478 POP IY - 00005016 1479 ?0099: - 00005016 7D 1480 LD A,L - 00005017 B4 1481 OR H - 00005018 28 3D 1482 JR Z,?0098 - 0000501A 1483 ?0100: - 0000501A 21 0A 00 1484 LD HL,10 - 0000501D FD E5 1485 PUSH IY - 0000501F C1 1486 POP BC - 00005020 09 1487 ADD HL,BC - 00005021 DD 7E 04 1488 LD A,(IX+4) - 00005024 DD 56 05 1489 LD D,(IX+5) - 00005027 2F 1490 CPL - 00005028 5F 1491 LD E,A - 00005029 7A 1492 LD A,D - 0000502A 2F 1493 CPL - 0000502B 57 1494 LD D,A - 0000502C 7E 1495 LD A,(HL) - 0000502D A3 1496 AND E - 0000502E 77 1497 LD (HL),A - 0000502F 23 1498 INC HL - 00005030 7E 1499 LD A,(HL) - 00005031 A2 1500 AND D - 00005032 77 1501 LD (HL),A - 00005033 21 0A 00 1502 LD HL,10 - 00005036 09 1503 ADD HL,BC - 00005037 7E 1504 LD A,(HL) - 00005038 DD B6 0A 1505 OR (IX+10) - 0000503B 77 1506 LD (HL),A - 0000503C 23 1507 INC HL - 0000503D 7E 1508 LD A,(HL) - 0000503E DD B6 0B 1509 OR (IX+11) - 00005041 77 1510 LD (HL),A - 00005042 21 0A 00 1511 LD HL,10 - 00005045 09 1512 ADD HL,BC - 00005046 7E 1513 LD A,(HL) - 00005047 DD AE 0C 1514 XOR (IX+12) - 0000504A 77 1515 LD (HL),A - 0000504B 23 1516 INC HL - 0000504C 7E 1517 LD A,(HL) - 0000504D DD AE 0D 1518 XOR (IX+13) - 00005050 77 1519 LD (HL),A - 00005051 21 13 00 1520 LD HL,19 - 00005054 09 1521 ADD HL,BC - 00005055 18 B8 1522 JR ?0342 - 00005057 1523 ?0098: - 00005057 11 00 86 1524 LD DE,stdout - 0000505A 3E 00 1525 LD A,BYTE3 fflush - 0000505C 21 5F 70 1526 LD HL,LWRD fflush - 0000505F CD FB 81 1527 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005062 FD E1 1528 POP IY - 00005064 C3 A3 81 1529 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005067 1530 Component_linkstringtable: - 00005067 C5 1531 PUSH BC - 00005068 FD E5 1532 PUSH IY - 0000506A DD E5 1533 PUSH IX - 0000506C D5 1534 PUSH DE - 0000506D DD E1 1535 POP IX - 0000506F 21 15 00 1536 LD HL,21 - 00005072 19 1537 ADD HL,DE - 00005073 46 1538 LD B,(HL) - 00005074 23 1539 INC HL - 00005075 66 1540 LD H,(HL) - 00005076 68 1541 LD L,B - 00005077 E5 1542 PUSH HL - 00005078 FD E1 1543 POP IY - 0000507A 21 20 00 1544 LD HL,32 - 0000507D 19 1545 ADD HL,DE - 0000507E 46 1546 LD B,(HL) - 0000507F 23 1547 INC HL - 00005080 66 1548 LD H,(HL) - 00005081 68 1549 LD L,B - 00005082 01 00 90 1550 LD BC,36864 - 00005085 3E 80 1551 LD A,128 - 00005087 AC 1552 XOR H - 00005088 67 1553 LD H,A - 00005089 ED 42 1554 SBC HL,BC - 0000508B 30 2E 1555 JR NC,?0102 - 0000508D DD 4E 20 1556 LD C,(IX+32) - 00005090 DD 46 21 1557 LD B,(IX+33) - 00005093 21 00 00 1558 LD HL,0 - 00005096 CD C8 82 1559 CALL LWRD ?SS_CMP_L02 - 00005099 30 20 1560 JR NC,?0102 - 0000509B 1561 ?0104: - 0000509B 1562 ?0103: - 0000509B 1563 ?0101: - 0000509B DD 6E 20 1564 LD L,(IX+32) - 0000509E DD 66 21 1565 LD H,(IX+33) - 000050A1 29 1566 ADD HL,HL - 000050A2 E5 1567 PUSH HL - 000050A3 21 08 00 1568 LD HL,8 - 000050A6 ED 4B 3F 87 1569 LD BC,(global) - 000050AA 09 1570 ADD HL,BC - 000050AB 4E 1571 LD C,(HL) - 000050AC 23 1572 INC HL - 000050AD 46 1573 LD B,(HL) - 000050AE E1 1574 POP HL - 000050AF 09 1575 ADD HL,BC - 000050B0 2B 1576 DEC HL - 000050B1 2B 1577 DEC HL - 000050B2 46 1578 LD B,(HL) - 000050B3 DD 70 20 1579 LD (IX+32),B - 000050B6 23 1580 INC HL - 000050B7 66 1581 LD H,(HL) - 000050B8 DD 74 21 1582 LD (IX+33),H - 000050BB 1583 ?0102: - 000050BB DD 6E 22 1584 LD L,(IX+34) - 000050BE DD 66 23 1585 LD H,(IX+35) - 000050C1 01 00 90 1586 LD BC,36864 - 000050C4 3E 80 1587 LD A,128 - 000050C6 AC 1588 XOR H - 000050C7 67 1589 LD H,A - 000050C8 ED 42 1590 SBC HL,BC - 000050CA 30 2E 1591 JR NC,?0106 - 000050CC DD 4E 22 1592 LD C,(IX+34) - 000050CF DD 46 23 1593 LD B,(IX+35) - 000050D2 21 00 00 1594 LD HL,0 - 000050D5 CD C8 82 1595 CALL LWRD ?SS_CMP_L02 - 000050D8 30 20 1596 JR NC,?0106 - 000050DA 1597 ?0108: - 000050DA 1598 ?0107: - 000050DA 1599 ?0105: - 000050DA DD 6E 22 1600 LD L,(IX+34) - 000050DD DD 66 23 1601 LD H,(IX+35) - 000050E0 29 1602 ADD HL,HL - 000050E1 E5 1603 PUSH HL - 000050E2 21 08 00 1604 LD HL,8 - 000050E5 ED 4B 3F 87 1605 LD BC,(global) - 000050E9 09 1606 ADD HL,BC - 000050EA 4E 1607 LD C,(HL) - 000050EB 23 1608 INC HL - 000050EC 46 1609 LD B,(HL) - 000050ED E1 1610 POP HL - 000050EE 09 1611 ADD HL,BC - 000050EF 2B 1612 DEC HL - 000050F0 2B 1613 DEC HL - 000050F1 46 1614 LD B,(HL) - 000050F2 DD 70 22 1615 LD (IX+34),B - 000050F5 23 1616 INC HL - 000050F6 66 1617 LD H,(HL) - 000050F7 DD 74 23 1618 LD (IX+35),H - 000050FA 1619 ?0106: - 000050FA 1620 ?0110: - 000050FA FD E5 1621 PUSH IY - 000050FC E1 1622 POP HL - 000050FD 7D 1623 LD A,L - 000050FE B4 1624 OR H - 000050FF 28 16 1625 JR Z,?0109 - 00005101 1626 ?0111: - 00005101 FD E5 1627 PUSH IY - 00005103 D1 1628 POP DE - 00005104 3E 00 1629 LD A,BYTE3 Component_linkstringtable - 00005106 21 67 50 1630 LD HL,LWRD Component_linkstringtable - 00005109 CD FB 81 1631 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000510C FD 6E 13 1632 LD L,(IY+19) - 0000510F FD 66 14 1633 LD H,(IY+20) - 00005112 E5 1634 PUSH HL - 00005113 FD E1 1635 POP IY - 00005115 18 E3 1636 JR ?0106 - 00005117 1637 ?0109: - 00005117 C3 A6 48 1638 JP LWRD ?0411 - 0000511A 1639 Window_handler: - 0000511A CD 7A 82 1640 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000511D D0 FF 1641 DEFW 65488 - 0000511F FD E5 1642 PUSH IY - 00005121 AF 1643 XOR A - 00005122 DD 77 FA 1644 LD (IX-6),A - 00005125 DD 77 FB 1645 LD (IX-5),A - 00005128 DD 77 FC 1646 LD (IX-4),A - 0000512B DD 77 FD 1647 LD (IX-3),A - 0000512E 59 1648 LD E,C - 0000512F 50 1649 LD D,B - 00005130 CD 1C 82 1650 CALL LWRD ?S_V_SWITCH_L06 - 00005133 08 00 1651 DEFW 8 - 00005135 01 00 1652 DEFW 1 - 00005137 02 00 1653 DEFW 2 - 00005139 03 00 1654 DEFW 3 - 0000513B 02 01 1655 DEFW 258 - 0000513D 03 01 1656 DEFW 259 - 0000513F 04 01 1657 DEFW 260 - 00005141 05 01 1658 DEFW 261 - 00005143 01 04 1659 DEFW 1025 - 00005145 B3 53 1660 DEFW ?0159 - 00005147 21 53 1661 DEFW ?0153 - 00005149 B4 52 1662 DEFW ?0144 - 0000514B E0 52 1663 DEFW ?0145 - 0000514D 28 52 1664 DEFW ?0142 - 0000514F 39 52 1665 DEFW ?0143 - 00005151 ED 51 1666 DEFW ?0131 - 00005153 88 51 1667 DEFW ?0119 - 00005155 57 51 1668 DEFW ?0113 - 00005157 1669 ?0113: - 00005157 21 15 00 1670 LD HL,21 - 0000515A DD 4E 02 1671 LD C,(IX+2) - 0000515D DD 46 03 1672 LD B,(IX+3) - 00005160 09 1673 ADD HL,BC - 00005161 46 1674 LD B,(HL) - 00005162 23 1675 INC HL - 00005163 66 1676 LD H,(HL) - 00005164 68 1677 LD L,B - 00005165 1678 ?0344: - 00005165 E5 1679 PUSH HL - 00005166 FD E1 1680 POP IY - 00005168 1681 ?0115: - 00005168 7D 1682 LD A,L - 00005169 B4 1683 OR H - 0000516A 28 19 1684 JR Z,?0114 - 0000516C 1685 ?0116: - 0000516C FD CB 0A 46 1686 BIT 0,(IY+10) - 00005170 28 0B 1687 JR Z,?0118 - 00005172 1688 ?0117: - 00005172 DD 6E 0A 1689 LD L,(IX+10) - 00005175 DD 66 0B 1690 LD H,(IX+11) - 00005178 E5 1691 PUSH HL - 00005179 CD B8 53 1692 CALL LWRD ?0462 - 0000517C E1 1693 POP HL - 0000517D 1694 ?0118: - 0000517D FD 6E 13 1695 LD L,(IY+19) - 00005180 FD 66 14 1696 LD H,(IY+20) - 00005183 18 E0 1697 JR ?0344 - 00005185 1698 ?0114: - 00005185 C3 B3 53 1699 JP LWRD ?0159 - 00005188 1700 ?0119: - 00005188 21 15 00 1701 LD HL,21 - 0000518B DD 4E 02 1702 LD C,(IX+2) - 0000518E DD 46 03 1703 LD B,(IX+3) - 00005191 09 1704 ADD HL,BC - 00005192 46 1705 LD B,(HL) - 00005193 23 1706 INC HL - 00005194 66 1707 LD H,(HL) - 00005195 68 1708 LD L,B - 00005196 1709 ?0348: - 00005196 E5 1710 PUSH HL - 00005197 FD E1 1711 POP IY - 00005199 1712 ?0121: - 00005199 7D 1713 LD A,L - 0000519A B4 1714 OR H - 0000519B 28 4D 1715 JR Z,?0120 - 0000519D 1716 ?0122: - 0000519D FD CB 0A 46 1717 BIT 0,(IY+10) - 000051A1 28 38 1718 JR Z,?0126 - 000051A3 1719 ?0123: - 000051A3 DD 6E 0A 1720 LD L,(IX+10) - 000051A6 DD 66 0B 1721 LD H,(IX+11) - 000051A9 E5 1722 PUSH HL - 000051AA CD B8 53 1723 CALL LWRD ?0462 - 000051AD E1 1724 POP HL - 000051AE DD 6E 0A 1725 LD L,(IX+10) - 000051B1 DD 66 0B 1726 LD H,(IX+11) - 000051B4 E5 1727 PUSH HL - 000051B5 01 03 00 1728 LD BC,3 - 000051B8 CD BE 53 1729 CALL LWRD ?0463 - 000051BB E1 1730 POP HL - 000051BC FD 7E 0A 1731 LD A,(IY+10) - 000051BF E6 22 1732 AND 34 - 000051C1 6F 1733 LD L,A - 000051C2 26 00 1734 LD H,0 - 000051C4 3E 22 1735 LD A,34 - 000051C6 AD 1736 XOR L - 000051C7 20 12 1737 JR NZ,?0126 - 000051C9 FD 4E 10 1738 LD C,(IY+16) - 000051CC 44 1739 LD B,H - 000051CD DD 6E 0A 1740 LD L,(IX+10) - 000051D0 DD 66 0B 1741 LD H,(IX+11) - 000051D3 ED 42 1742 SBC HL,BC - 000051D5 20 04 1743 JR NZ,?0126 - 000051D7 1744 ?0128: - 000051D7 1745 ?0127: - 000051D7 1746 ?0125: - 000051D7 FD 21 00 00 1747 LD IY,0 - 000051DB 1748 ?0126: - 000051DB 1749 ?0124: - 000051DB FD E5 1750 PUSH IY - 000051DD E1 1751 POP HL - 000051DE 7D 1752 LD A,L - 000051DF B4 1753 OR H - 000051E0 28 B7 1754 JR Z,?0121 - 000051E2 1755 ?0129: - 000051E2 FD 6E 13 1756 LD L,(IY+19) - 000051E5 FD 66 14 1757 LD H,(IY+20) - 000051E8 18 AC 1758 JR ?0348 - 000051EA 1759 ?0130: - 000051EA 1760 ?0120: - 000051EA C3 B3 53 1761 JP LWRD ?0159 - 000051ED 1762 ?0131: - 000051ED DD 6E 02 1763 LD L,(IX+2) - 000051F0 DD 66 03 1764 LD H,(IX+3) - 000051F3 E5 1765 PUSH HL - 000051F4 FD E1 1766 POP IY - 000051F6 21 0A 00 1767 LD HL,10 - 000051F9 DD 4E 02 1768 LD C,(IX+2) - 000051FC DD 46 03 1769 LD B,(IX+3) - 000051FF 09 1770 ADD HL,BC - 00005200 CB 46 1771 BIT 0,(HL) - 00005202 28 21 1772 JR Z,?0139 - 00005204 1773 ?0132: - 00005204 FD CB 0A 6E 1774 BIT 5,(IY+10) - 00005208 28 1B 1775 JR Z,?0139 - 0000520A FD 4E 10 1776 LD C,(IY+16) - 0000520D 47 1777 LD B,A - 0000520E DD 6E 0A 1778 LD L,(IX+10) - 00005211 DD 66 0B 1779 LD H,(IX+11) - 00005214 A7 1780 AND A - 00005215 ED 42 1781 SBC HL,BC - 00005217 20 0C 1782 JR NZ,?0139 - 00005219 1783 ?0137: - 00005219 1784 ?0136: - 00005219 1785 ?0134: - 00005219 FD 6E 26 1786 LD L,(IY+38) - 0000521C FD 66 27 1787 LD H,(IY+39) - 0000521F FD E5 1788 PUSH IY - 00005221 D1 1789 POP DE - 00005222 CD DD 53 1790 CALL LWRD ?0474 - 00005225 1791 ?0138: - 00005225 1792 ?0139: - 00005225 1793 ?0135: - 00005225 1794 ?0133: - 00005225 1795 ?0140: - 00005225 1796 ?0141: - 00005225 C3 B3 53 1797 JP LWRD ?0159 - 00005228 1798 ?0142: - 00005228 DD 5E 02 1799 LD E,(IX+2) - 0000522B 4B 1800 LD C,E - 0000522C DD 56 03 1801 LD D,(IX+3) - 0000522F 42 1802 LD B,D - 00005230 21 1A 00 1803 LD HL,26 - 00005233 CD DC 53 1804 CALL LWRD ?0475 - 00005236 C3 B3 53 1805 JP LWRD ?0159 - 00005239 1806 ?0143: - 00005239 21 0A 00 1807 LD HL,10 - 0000523C DD 4E 02 1808 LD C,(IX+2) - 0000523F DD 46 03 1809 LD B,(IX+3) - 00005242 09 1810 ADD HL,BC - 00005243 7E 1811 LD A,(HL) - 00005244 E6 FC 1812 AND 252 - 00005246 77 1813 LD (HL),A - 00005247 21 2E 00 1814 LD HL,46 - 0000524A 39 1815 ADD HL,SP - 0000524B E5 1816 PUSH HL - 0000524C 2B 1817 DEC HL - 0000524D 2B 1818 DEC HL - 0000524E 4D 1819 LD C,L - 0000524F 44 1820 LD B,H - 00005250 DD 5E 02 1821 LD E,(IX+2) - 00005253 DD 56 03 1822 LD D,(IX+3) - 00005256 CD D4 53 1823 CALL LWRD ?0466 - 00005259 E1 1824 POP HL - 0000525A 21 08 00 1825 LD HL,8 - 0000525D DD 4E 02 1826 LD C,(IX+2) - 00005260 DD 46 03 1827 LD B,(IX+3) - 00005263 09 1828 ADD HL,BC - 00005264 5E 1829 LD E,(HL) - 00005265 23 1830 INC HL - 00005266 56 1831 LD D,(HL) - 00005267 D5 1832 PUSH DE - 00005268 21 06 00 1833 LD HL,6 - 0000526B 09 1834 ADD HL,BC - 0000526C 5E 1835 LD E,(HL) - 0000526D 23 1836 INC HL - 0000526E 56 1837 LD D,(HL) - 0000526F D5 1838 PUSH DE - 00005270 DD 6E FC 1839 LD L,(IX-4) - 00005273 DD 66 FD 1840 LD H,(IX-3) - 00005276 E5 1841 PUSH HL - 00005277 DD 4E FA 1842 LD C,(IX-6) - 0000527A DD 46 FB 1843 LD B,(IX-5) - 0000527D 11 00 00 1844 LD DE,0 - 00005280 CD 3A 49 1845 CALL LWRD ?0471 - 00005283 E1 1846 POP HL - 00005284 E1 1847 POP HL - 00005285 E1 1848 POP HL - 00005286 21 00 00 1849 LD HL,0 - 00005289 E5 1850 PUSH HL - 0000528A 2E 11 1851 LD L,17 - 0000528C DD 5E 02 1852 LD E,(IX+2) - 0000528F DD 56 03 1853 LD D,(IX+3) - 00005292 19 1854 ADD HL,DE - 00005293 5E 1855 LD E,(HL) - 00005294 23 1856 INC HL - 00005295 56 1857 LD D,(HL) - 00005296 21 11 00 1858 LD HL,17 - 00005299 DD 4E 02 1859 LD C,(IX+2) - 0000529C DD 46 03 1860 LD B,(IX+3) - 0000529F 09 1861 ADD HL,BC - 000052A0 46 1862 LD B,(HL) - 000052A1 23 1863 INC HL - 000052A2 66 1864 LD H,(HL) - 000052A3 68 1865 LD L,B - 000052A4 01 17 00 1866 LD BC,23 - 000052A7 09 1867 ADD HL,BC - 000052A8 4E 1868 LD C,(HL) - 000052A9 23 1869 INC HL - 000052AA 46 1870 LD B,(HL) - 000052AB 23 1871 INC HL - 000052AC 7E 1872 LD A,(HL) - 000052AD 69 1873 LD L,C - 000052AE 60 1874 LD H,B - 000052AF 01 03 01 1875 LD BC,259 - 000052B2 18 29 1876 JR ?0347 - 000052B4 1877 ?0144: - 000052B4 21 11 00 1878 LD HL,17 - 000052B7 DD 4E 02 1879 LD C,(IX+2) - 000052BA DD 46 03 1880 LD B,(IX+3) - 000052BD 09 1881 ADD HL,BC - 000052BE 56 1882 LD D,(HL) - 000052BF 23 1883 INC HL - 000052C0 66 1884 LD H,(HL) - 000052C1 6A 1885 LD L,D - 000052C2 E5 1886 PUSH HL - 000052C3 FD E1 1887 POP IY - 000052C5 59 1888 LD E,C - 000052C6 50 1889 LD D,B - 000052C7 CD D7 4F 1890 CALL LWRD ?0453 - 000052CA 21 00 00 1891 LD HL,0 - 000052CD E5 1892 PUSH HL - 000052CE 01 03 01 1893 LD BC,259 - 000052D1 FD E5 1894 PUSH IY - 000052D3 D1 1895 POP DE - 000052D4 FD 7E 19 1896 LD A,(IY+25) - 000052D7 FD 6E 17 1897 LD L,(IY+23) - 000052DA FD 66 18 1898 LD H,(IY+24) - 000052DD 1899 ?0347: - 000052DD C3 AF 53 1900 JP LWRD ?0346 - 000052E0 1901 ?0145: - 000052E0 21 15 00 1902 LD HL,21 - 000052E3 DD 4E 02 1903 LD C,(IX+2) - 000052E6 DD 46 03 1904 LD B,(IX+3) - 000052E9 09 1905 ADD HL,BC - 000052EA 46 1906 LD B,(HL) - 000052EB 23 1907 INC HL - 000052EC 66 1908 LD H,(HL) - 000052ED 68 1909 LD L,B - 000052EE 1910 ?0345: - 000052EE E5 1911 PUSH HL - 000052EF FD E1 1912 POP IY - 000052F1 1913 ?0147: - 000052F1 7D 1914 LD A,L - 000052F2 B4 1915 OR H - 000052F3 28 29 1916 JR Z,?0146 - 000052F5 1917 ?0148: - 000052F5 DD 6E 0A 1918 LD L,(IX+10) - 000052F8 DD 66 0B 1919 LD H,(IX+11) - 000052FB FD E5 1920 PUSH IY - 000052FD C1 1921 POP BC - 000052FE ED 42 1922 SBC HL,BC - 00005300 28 14 1923 JR Z,?0150 - 00005302 FD CB 0A 5E 1924 BIT 3,(IY+10) - 00005306 28 0E 1925 JR Z,?0150 - 00005308 1926 ?0152: - 00005308 1927 ?0151: - 00005308 1928 ?0149: - 00005308 DD 6E 0A 1929 LD L,(IX+10) - 0000530B DD 66 0B 1930 LD H,(IX+11) - 0000530E E5 1931 PUSH HL - 0000530F 01 03 02 1932 LD BC,515 - 00005312 CD BE 53 1933 CALL LWRD ?0463 - 00005315 E1 1934 POP HL - 00005316 1935 ?0150: - 00005316 FD 6E 13 1936 LD L,(IY+19) - 00005319 FD 66 14 1937 LD H,(IY+20) - 0000531C 18 D0 1938 JR ?0345 - 0000531E 1939 ?0146: - 0000531E C3 B3 53 1940 JP LWRD ?0159 - 00005321 1941 ?0153: - 00005321 21 11 00 1942 LD HL,17 - 00005324 DD 4E 02 1943 LD C,(IX+2) - 00005327 DD 46 03 1944 LD B,(IX+3) - 0000532A 09 1945 ADD HL,BC - 0000532B 7E 1946 LD A,(HL) - 0000532C 23 1947 INC HL - 0000532D B6 1948 OR (HL) - 0000532E 20 0E 1949 JR NZ,?0155 - 00005330 1950 ?0154: - 00005330 21 04 00 1951 LD HL,4 - 00005333 ED 4B 3F 87 1952 LD BC,(global) - 00005337 09 1953 ADD HL,BC - 00005338 36 01 1954 LD (HL),1 - 0000533A 23 1955 INC HL - 0000533B 77 1956 LD (HL),A - 0000533C 18 75 1957 JR ?0159 - 0000533E 1958 ?0155: - 0000533E 21 0A 00 1959 LD HL,10 - 00005341 09 1960 ADD HL,BC - 00005342 23 1961 INC HL - 00005343 CB 6E 1962 BIT 5,(HL) - 00005345 20 28 1963 JR NZ,?0158 - 00005347 1964 ?0157: - 00005347 DD 6E 0A 1965 LD L,(IX+10) - 0000534A DD 66 0B 1966 LD H,(IX+11) - 0000534D E5 1967 PUSH HL - 0000534E 21 11 00 1968 LD HL,17 - 00005351 59 1969 LD E,C - 00005352 50 1970 LD D,B - 00005353 19 1971 ADD HL,DE - 00005354 5E 1972 LD E,(HL) - 00005355 23 1973 INC HL - 00005356 56 1974 LD D,(HL) - 00005357 21 11 00 1975 LD HL,17 - 0000535A 09 1976 ADD HL,BC - 0000535B 46 1977 LD B,(HL) - 0000535C 23 1978 INC HL - 0000535D 66 1979 LD H,(HL) - 0000535E 68 1980 LD L,B - 0000535F 01 17 00 1981 LD BC,23 - 00005362 09 1982 ADD HL,BC - 00005363 4E 1983 LD C,(HL) - 00005364 23 1984 INC HL - 00005365 46 1985 LD B,(HL) - 00005366 23 1986 INC HL - 00005367 7E 1987 LD A,(HL) - 00005368 69 1988 LD L,C - 00005369 60 1989 LD H,B - 0000536A 01 01 04 1990 LD BC,1025 - 0000536D 18 40 1991 JR ?0346 - 0000536F 1992 ?0158: - 0000536F 21 11 00 1993 LD HL,17 - 00005372 09 1994 ADD HL,BC - 00005373 56 1995 LD D,(HL) - 00005374 23 1996 INC HL - 00005375 66 1997 LD H,(HL) - 00005376 6A 1998 LD L,D - 00005377 E5 1999 PUSH HL - 00005378 FD E1 2000 POP IY - 0000537A 11 0A 00 2001 LD DE,10 - 0000537D 19 2002 ADD HL,DE - 0000537E 7E 2003 LD A,(HL) - 0000537F F6 03 2004 OR 3 - 00005381 77 2005 LD (HL),A - 00005382 6A 2006 LD L,D - 00005383 62 2007 LD H,D - 00005384 E5 2008 PUSH HL - 00005385 23 2009 INC HL - 00005386 E5 2010 PUSH HL - 00005387 4A 2011 LD C,D - 00005388 42 2012 LD B,D - 00005389 FD E5 2013 PUSH IY - 0000538B D1 2014 POP DE - 0000538C 3E 00 2015 LD A,BYTE3 Component_changestate_children - 0000538E 21 FE 4F 2016 LD HL,LWRD Component_changestate_children - 00005391 CD FB 81 2017 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005394 E1 2018 POP HL - 00005395 E1 2019 POP HL - 00005396 21 00 00 2020 LD HL,0 - 00005399 E5 2021 PUSH HL - 0000539A DD 5E 02 2022 LD E,(IX+2) - 0000539D 4B 2023 LD C,E - 0000539E DD 56 03 2024 LD D,(IX+3) - 000053A1 42 2025 LD B,D - 000053A2 2E 17 2026 LD L,23 - 000053A4 09 2027 ADD HL,BC - 000053A5 4E 2028 LD C,(HL) - 000053A6 23 2029 INC HL - 000053A7 46 2030 LD B,(HL) - 000053A8 23 2031 INC HL - 000053A9 7E 2032 LD A,(HL) - 000053AA 69 2033 LD L,C - 000053AB 60 2034 LD H,B - 000053AC 01 05 01 2035 LD BC,261 - 000053AF 2036 ?0346: - 000053AF CD FB 81 2037 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000053B2 E1 2038 POP HL - 000053B3 2039 ?0159: - 000053B3 2040 ?0156: - 000053B3 2041 ?0112: - 000053B3 FD E1 2042 POP IY - 000053B5 C3 A3 81 2043 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000053B8 2044 ?0462: - 000053B8 DD 4E 04 2045 LD C,(IX+4) - 000053BB DD 46 05 2046 LD B,(IX+5) - 000053BE 2047 ?0463: - 000053BE FD E5 2048 PUSH IY - 000053C0 D1 2049 POP DE - 000053C1 FD 7E 19 2050 LD A,(IY+25) - 000053C4 FD 6E 17 2051 LD L,(IY+23) - 000053C7 FD 66 18 2052 LD H,(IY+24) - 000053CA C3 FB 81 2053 JP LWRD ?BANK_CALL_DIRECT_L08 - 000053CD 2054 ?0467: - 000053CD 23 2055 INC HL - 000053CE 23 2056 INC HL - 000053CF 2057 ?0468: - 000053CF 4D 2058 LD C,L - 000053D0 44 2059 LD B,H - 000053D1 DD E5 2060 PUSH IX - 000053D3 D1 2061 POP DE - 000053D4 2062 ?0466: - 000053D4 3E 00 2063 LD A,BYTE3 Component_findXY - 000053D6 21 92 4D 2064 LD HL,LWRD Component_findXY - 000053D9 C3 FB 81 2065 JP LWRD ?BANK_CALL_DIRECT_L08 - 000053DC 2066 ?0475: - 000053DC 09 2067 ADD HL,BC - 000053DD 2068 ?0474: - 000053DD 4E 2069 LD C,(HL) - 000053DE 23 2070 INC HL - 000053DF 46 2071 LD B,(HL) - 000053E0 23 2072 INC HL - 000053E1 7E 2073 LD A,(HL) - 000053E2 69 2074 LD L,C - 000053E3 60 2075 LD H,B - 000053E4 C3 FB 81 2076 JP LWRD ?BANK_CALL_DIRECT_L08 - 000053E7 2077 Window_paint: - 000053E7 CD 7A 82 2078 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000053EA FC FF 2079 DEFW -4 - 000053EC FD E5 2080 PUSH IY - 000053EE DD 6E 02 2081 LD L,(IX+2) - 000053F1 DD 66 03 2082 LD H,(IX+3) - 000053F4 E5 2083 PUSH HL - 000053F5 FD E1 2084 POP IY - 000053F7 AF 2085 XOR A - 000053F8 DD 77 FE 2086 LD (IX-2),A - 000053FB DD 77 FF 2087 LD (IX-1),A - 000053FE DD 77 FC 2088 LD (IX-4),A - 00005401 DD 77 FD 2089 LD (IX-3),A - 00005404 21 0A 00 2090 LD HL,10 - 00005407 ED 4B 3F 87 2091 LD BC,(global) - 0000540B 09 2092 ADD HL,BC - 0000540C 7E 2093 LD A,(HL) - 0000540D 23 2094 INC HL - 0000540E 66 2095 LD H,(HL) - 0000540F 6F 2096 LD L,A - 00005410 46 2097 LD B,(HL) - 00005411 23 2098 INC HL - 00005412 66 2099 LD H,(HL) - 00005413 68 2100 LD L,B - 00005414 FD 4E 0E 2101 LD C,(IY+14) - 00005417 FD 46 0F 2102 LD B,(IY+15) - 0000541A A7 2103 AND A - 0000541B ED 42 2104 SBC HL,BC - 0000541D 28 09 2105 JR Z,?0161 - 0000541F 2106 ?0160: - 0000541F FD 5E 0E 2107 LD E,(IY+14) - 00005422 FD 56 0F 2108 LD D,(IY+15) - 00005425 CD 6C 55 2109 CALL LWRD ?0472 - 00005428 2110 ?0161: - 00005428 FD CB 0A 46 2111 BIT 0,(IY+10) - 0000542C CA 24 55 2112 JP Z,?0163 - 0000542F 2113 ?0162: - 0000542F 21 02 00 2114 LD HL,2 - 00005432 39 2115 ADD HL,SP - 00005433 E5 2116 PUSH HL - 00005434 23 2117 INC HL - 00005435 23 2118 INC HL - 00005436 4D 2119 LD C,L - 00005437 44 2120 LD B,H - 00005438 FD E5 2121 PUSH IY - 0000543A D1 2122 POP DE - 0000543B CD D4 53 2123 CALL LWRD ?0466 - 0000543E E1 2124 POP HL - 0000543F CD 88 4D 2125 CALL LWRD ?0477 - 00005442 DD 4E FC 2126 LD C,(IX-4) - 00005445 DD 46 FD 2127 LD B,(IX-3) - 00005448 DD 5E FE 2128 LD E,(IX-2) - 0000544B DD 56 FF 2129 LD D,(IX-1) - 0000544E 3E 00 2130 LD A,BYTE3 Move - 00005450 21 EB 46 2131 LD HL,LWRD Move - 00005453 CD FB 81 2132 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005456 FD 4E 08 2133 LD C,(IY+8) - 00005459 FD 46 09 2134 LD B,(IY+9) - 0000545C FD 5E 06 2135 LD E,(IY+6) - 0000545F FD 56 07 2136 LD D,(IY+7) - 00005462 3E 00 2137 LD A,BYTE3 ClearRect - 00005464 21 2A 47 2138 LD HL,LWRD ClearRect - 00005467 CD FB 81 2139 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000546A FD 6E 08 2140 LD L,(IY+8) - 0000546D FD 66 09 2141 LD H,(IY+9) - 00005470 E5 2142 PUSH HL - 00005471 FD 6E 06 2143 LD L,(IY+6) - 00005474 FD 66 07 2144 LD H,(IY+7) - 00005477 E5 2145 PUSH HL - 00005478 DD 6E FC 2146 LD L,(IX-4) - 0000547B DD 66 FD 2147 LD H,(IX-3) - 0000547E E5 2148 PUSH HL - 0000547F DD 4E FE 2149 LD C,(IX-2) - 00005482 DD 46 FF 2150 LD B,(IX-1) - 00005485 11 00 00 2151 LD DE,0 - 00005488 CD 3A 49 2152 CALL LWRD ?0471 - 0000548B E1 2153 POP HL - 0000548C E1 2154 POP HL - 0000548D E1 2155 POP HL - 0000548E FD 5E 20 2156 LD E,(IY+32) - 00005491 FD 56 21 2157 LD D,(IY+33) - 00005494 21 0A 00 2158 LD HL,10 - 00005497 ED 4B 3F 87 2159 LD BC,(global) - 0000549B 09 2160 ADD HL,BC - 0000549C 7E 2161 LD A,(HL) - 0000549D 23 2162 INC HL - 0000549E 66 2163 LD H,(HL) - 0000549F 6F 2164 LD L,A - 000054A0 CD 29 55 2165 CALL LWRD ?0455 - 000054A3 DD 4E FC 2166 LD C,(IX-4) - 000054A6 DD 46 FD 2167 LD B,(IX-3) - 000054A9 09 2168 ADD HL,BC - 000054AA 11 04 00 2169 LD DE,4 - 000054AD 19 2170 ADD HL,DE - 000054AE 4D 2171 LD C,L - 000054AF 44 2172 LD B,H - 000054B0 CD 37 55 2173 CALL LWRD ?0459 - 000054B3 7E 2174 LD A,(HL) - 000054B4 23 2175 INC HL - 000054B5 66 2176 LD H,(HL) - 000054B6 6F 2177 LD L,A - 000054B7 01 05 00 2178 LD BC,5 - 000054BA 09 2179 ADD HL,BC - 000054BB 4E 2180 LD C,(HL) - 000054BC 23 2181 INC HL - 000054BD 46 2182 LD B,(HL) - 000054BE 23 2183 INC HL - 000054BF 7E 2184 LD A,(HL) - 000054C0 69 2185 LD L,C - 000054C1 60 2186 LD H,B - 000054C2 CD 5B 4A 2187 CALL LWRD ?0444 - 000054C5 01 FC FF 2188 LD BC,65532 - 000054C8 09 2189 ADD HL,BC - 000054C9 4D 2190 LD C,L - 000054CA 44 2191 LD B,H - 000054CB FD 5E 06 2192 LD E,(IY+6) - 000054CE FD 56 07 2193 LD D,(IY+7) - 000054D1 3E 00 2194 LD A,BYTE3 DrawRectNC - 000054D3 21 6D 47 2195 LD HL,LWRD DrawRectNC - 000054D6 CD FB 81 2196 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000054D9 DD 4E FC 2197 LD C,(IX-4) - 000054DC DD 46 FD 2198 LD B,(IX-3) - 000054DF CD 37 55 2199 CALL LWRD ?0459 - 000054E2 46 2200 LD B,(HL) - 000054E3 23 2201 INC HL - 000054E4 66 2202 LD H,(HL) - 000054E5 68 2203 LD L,B - 000054E6 CD 29 55 2204 CALL LWRD ?0455 - 000054E9 01 05 00 2205 LD BC,5 - 000054EC 09 2206 ADD HL,BC - 000054ED 4D 2207 LD C,L - 000054EE 44 2208 LD B,H - 000054EF FD 5E 06 2209 LD E,(IY+6) - 000054F2 FD 56 07 2210 LD D,(IY+7) - 000054F5 3E 00 2211 LD A,BYTE3 FillRect - 000054F7 21 B2 47 2212 LD HL,LWRD FillRect - 000054FA CD FB 81 2213 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000054FD 21 0E 00 2214 LD HL,14 - 00005500 DD 4E FC 2215 LD C,(IX-4) - 00005503 DD 46 FD 2216 LD B,(IX-3) - 00005506 09 2217 ADD HL,BC - 00005507 4D 2218 LD C,L - 00005508 44 2219 LD B,H - 00005509 DD 5E FE 2220 LD E,(IX-2) - 0000550C DD 56 FF 2221 LD D,(IX-1) - 0000550F 13 2222 INC DE - 00005510 13 2223 INC DE - 00005511 3E 00 2224 LD A,BYTE3 Move - 00005513 21 EB 46 2225 LD HL,LWRD Move - 00005516 CD 54 55 2226 CALL LWRD ?0460 - 00005519 FD E5 2227 PUSH IY - 0000551B D1 2228 POP DE - 0000551C 3E 00 2229 LD A,BYTE3 Component_paint - 0000551E 21 4C 4D 2230 LD HL,LWRD Component_paint - 00005521 CD FB 81 2231 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005524 2232 ?0163: - 00005524 FD E1 2233 POP IY - 00005526 C3 A3 81 2234 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005529 2235 ?0455: - 00005529 01 05 00 2236 LD BC,5 - 0000552C 09 2237 ADD HL,BC - 0000552D 4E 2238 LD C,(HL) - 0000552E 23 2239 INC HL - 0000552F 46 2240 LD B,(HL) - 00005530 23 2241 INC HL - 00005531 7E 2242 LD A,(HL) - 00005532 69 2243 LD L,C - 00005533 60 2244 LD H,B - 00005534 C3 FB 81 2245 JP LWRD ?BANK_CALL_DIRECT_L08 - 00005537 2246 ?0459: - 00005537 DD 5E FE 2247 LD E,(IX-2) - 0000553A DD 56 FF 2248 LD D,(IX-1) - 0000553D 3E 00 2249 LD A,BYTE3 Move - 0000553F 21 EB 46 2250 LD HL,LWRD Move - 00005542 CD FB 81 2251 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005545 FD 5E 20 2252 LD E,(IY+32) - 00005548 FD 56 21 2253 LD D,(IY+33) - 0000554B 21 0A 00 2254 LD HL,10 - 0000554E ED 4B 3F 87 2255 LD BC,(global) - 00005552 09 2256 ADD HL,BC - 00005553 C9 2257 RET - 00005554 2258 ?0460: - 00005554 CD FB 81 2259 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005557 FD 5E 20 2260 LD E,(IY+32) - 0000555A FD 56 21 2261 LD D,(IY+33) - 0000555D 3E 00 2262 LD A,BYTE3 Text - 0000555F 21 81 48 2263 LD HL,LWRD Text - 00005562 CD FB 81 2264 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005565 C9 2265 RET - 00005566 2266 ?0473: - 00005566 DD 5E 0E 2267 LD E,(IX+14) - 00005569 DD 56 0F 2268 LD D,(IX+15) - 0000556C 2269 ?0472: - 0000556C 3E 00 2270 LD A,BYTE3 setCurrentFont - 0000556E 21 ED 49 2271 LD HL,LWRD setCurrentFont - 00005571 C3 FB 81 2272 JP LWRD ?BANK_CALL_DIRECT_L08 - 00005574 2273 Root_paint: - 00005574 CD EF 81 2274 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00005577 CD 88 4D 2275 CALL LWRD ?0477 - 0000557A CD 1F 49 2276 CALL LWRD ?0461 - 0000557D CD FB 81 2277 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005580 01 80 00 2278 LD BC,128 - 00005583 58 2279 LD E,B - 00005584 50 2280 LD D,B - 00005585 3E 00 2281 LD A,BYTE3 GrayRect - 00005587 21 3C 48 2282 LD HL,LWRD GrayRect - 0000558A CD FB 81 2283 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000558D 21 80 00 2284 LD HL,128 - 00005590 E5 2285 PUSH HL - 00005591 6C 2286 LD L,H - 00005592 E5 2287 PUSH HL - 00005593 E5 2288 PUSH HL - 00005594 CD 37 49 2289 CALL LWRD ?0470 - 00005597 E1 2290 POP HL - 00005598 E1 2291 POP HL - 00005599 E1 2292 POP HL - 0000559A DD 5E 02 2293 LD E,(IX+2) - 0000559D DD 56 03 2294 LD D,(IX+3) - 000055A0 3E 00 2295 LD A,BYTE3 Component_paint - 000055A2 21 4C 4D 2296 LD HL,LWRD Component_paint - 000055A5 CD FB 81 2297 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000055A8 C3 A3 81 2298 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000055AB 2299 Window_add: - 000055AB CD EF 81 2300 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000055AE 3E 00 2301 LD A,BYTE3 Component_add - 000055B0 21 EE 4C 2302 LD HL,LWRD Component_add - 000055B3 CD FB 81 2303 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000055B6 C3 A3 81 2304 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000055B9 2305 Window_new: - 000055B9 CD 7A 82 2306 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000055BC 00 00 2307 DEFW 0 - 000055BE FD E5 2308 PUSH IY - 000055C0 DD 6E 0C 2309 LD L,(IX+12) - 000055C3 DD 66 0D 2310 LD H,(IX+13) - 000055C6 E5 2311 PUSH HL - 000055C7 DD 6E 0A 2312 LD L,(IX+10) - 000055CA DD 66 0B 2313 LD H,(IX+11) - 000055CD E5 2314 PUSH HL - 000055CE CD FD 55 2315 CALL LWRD ?0438 - 000055D1 F1 2316 POP AF - 000055D2 F1 2317 POP AF - 000055D3 E5 2318 PUSH HL - 000055D4 FD E1 2319 POP IY - 000055D6 01 17 00 2320 LD BC,23 - 000055D9 09 2321 ADD HL,BC - 000055DA 36 1A 2322 LD (HL),LOW(Window_handler) - 000055DC 23 2323 INC HL - 000055DD 36 51 2324 LD (HL),HIGH(Window_handler) - 000055DF 23 2325 INC HL - 000055E0 36 00 2326 LD (HL),BYTE3 Window_handler - 000055E2 FD 36 1A E7 2327 LD (IY+26),LOW(Window_paint) - 000055E6 FD 36 1B 53 2328 LD (IY+27),HIGH(Window_paint) - 000055EA FD 36 1C 00 2329 LD (IY+28),BYTE3 Window_paint - 000055EE FD 36 1D AB 2330 LD (IY+29),LOW(Window_add) - 000055F2 FD 36 1E 55 2331 LD (IY+30),HIGH(Window_add) - 000055F6 FD 36 1F 00 2332 LD (IY+31),BYTE3 Window_add - 000055FA C3 99 4C 2333 JP LWRD ?0418 - 000055FD 2334 ?0438: - 000055FD DD 5E 02 2335 LD E,(IX+2) - 00005600 DD 56 03 2336 LD D,(IX+3) - 00005603 3E 00 2337 LD A,BYTE3 Component_new - 00005605 21 F7 4B 2338 LD HL,LWRD Component_new - 00005608 C3 FB 81 2339 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000560B 2340 Button_handler: - 0000560B CD EF 81 2341 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000560E FD E5 2342 PUSH IY - 00005610 D5 2343 PUSH DE - 00005611 FD E1 2344 POP IY - 00005613 DD 6E 0A 2345 LD L,(IX+10) - 00005616 DD 66 0B 2346 LD H,(IX+11) - 00005619 E5 2347 PUSH HL - 0000561A 3E 00 2348 LD A,BYTE3 Window_handler - 0000561C 21 1A 51 2349 LD HL,LWRD Window_handler - 0000561F CD FB 81 2350 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005622 E1 2351 POP HL - 00005623 3E 03 2352 LD A,3 - 00005625 DD AE 04 2353 XOR (IX+4) - 00005628 DD B6 05 2354 OR (IX+5) - 0000562B 20 3E 2355 JR NZ,?0169 - 0000562D FD 4E 10 2356 LD C,(IY+16) - 00005630 47 2357 LD B,A - 00005631 DD 6E 0A 2358 LD L,(IX+10) - 00005634 DD 66 0B 2359 LD H,(IX+11) - 00005637 ED 42 2360 SBC HL,BC - 00005639 20 30 2361 JR NZ,?0169 - 0000563B FD 7E 0A 2362 LD A,(IY+10) - 0000563E E6 03 2363 AND 3 - 00005640 28 29 2364 JR Z,?0169 - 00005642 2365 ?0167: - 00005642 2366 ?0166: - 00005642 2367 ?0164: - 00005642 DD 6E 0A 2368 LD L,(IX+10) - 00005645 DD 66 0B 2369 LD H,(IX+11) - 00005648 E5 2370 PUSH HL - 00005649 FD 5E 11 2371 LD E,(IY+17) - 0000564C FD 56 12 2372 LD D,(IY+18) - 0000564F FD 6E 11 2373 LD L,(IY+17) - 00005652 FD 66 12 2374 LD H,(IY+18) - 00005655 0E 17 2375 LD C,23 - 00005657 CD 98 56 2376 CALL LWRD ?0464 - 0000565A E1 2377 POP HL - 0000565B FD CB 0A 66 2378 BIT 4,(IY+10) - 0000565F 28 0A 2379 JR Z,?0169 - 00005661 2380 ?0168: - 00005661 FD 4E 10 2381 LD C,(IY+16) - 00005664 06 00 2382 LD B,0 - 00005666 C5 2383 PUSH BC - 00005667 CD A6 56 2384 CALL LWRD ?0469 - 0000566A E1 2385 POP HL - 0000566B 2386 ?0169: - 0000566B 2387 ?0165: - 0000566B 21 01 02 2388 LD HL,513 - 0000566E DD 4E 04 2389 LD C,(IX+4) - 00005671 DD 46 05 2390 LD B,(IX+5) - 00005674 A7 2391 AND A - 00005675 ED 42 2392 SBC HL,BC - 00005677 20 0B 2393 JR NZ,?0171 - 00005679 2394 ?0170: - 00005679 DD 6E 0A 2395 LD L,(IX+10) - 0000567C DD 66 0B 2396 LD H,(IX+11) - 0000567F E5 2397 PUSH HL - 00005680 CD 89 56 2398 CALL LWRD ?0465 - 00005683 E1 2399 POP HL - 00005684 2400 ?0171: - 00005684 FD E1 2401 POP IY - 00005686 C3 A3 81 2402 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005689 2403 ?0465: - 00005689 FD 5E 11 2404 LD E,(IY+17) - 0000568C FD 56 12 2405 LD D,(IY+18) - 0000568F FD 6E 11 2406 LD L,(IY+17) - 00005692 FD 66 12 2407 LD H,(IY+18) - 00005695 01 17 00 2408 LD BC,23 - 00005698 2409 ?0464: - 00005698 09 2410 ADD HL,BC - 00005699 4E 2411 LD C,(HL) - 0000569A 23 2412 INC HL - 0000569B 46 2413 LD B,(HL) - 0000569C 23 2414 INC HL - 0000569D 7E 2415 LD A,(HL) - 0000569E 69 2416 LD L,C - 0000569F 60 2417 LD H,B - 000056A0 01 01 02 2418 LD BC,513 - 000056A3 C3 FB 81 2419 JP LWRD ?BANK_CALL_DIRECT_L08 - 000056A6 2420 ?0469: - 000056A6 FD 5E 11 2421 LD E,(IY+17) - 000056A9 FD 56 12 2422 LD D,(IY+18) - 000056AC FD 6E 11 2423 LD L,(IY+17) - 000056AF FD 66 12 2424 LD H,(IY+18) - 000056B2 0E 17 2425 LD C,23 - 000056B4 09 2426 ADD HL,BC - 000056B5 4E 2427 LD C,(HL) - 000056B6 23 2428 INC HL - 000056B7 46 2429 LD B,(HL) - 000056B8 23 2430 INC HL - 000056B9 7E 2431 LD A,(HL) - 000056BA 69 2432 LD L,C - 000056BB 60 2433 LD H,B - 000056BC 01 04 01 2434 LD BC,260 - 000056BF C3 FB 81 2435 JP LWRD ?BANK_CALL_DIRECT_L08 - 000056C2 2436 Button_drawtext: - 000056C2 CD EF 81 2437 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000056C5 FD E5 2438 PUSH IY - 000056C7 D5 2439 PUSH DE - 000056C8 FD E1 2440 POP IY - 000056CA 21 0A 00 2441 LD HL,10 - 000056CD 19 2442 ADD HL,DE - 000056CE CB 76 2443 BIT 6,(HL) - 000056D0 FD 5E 20 2444 LD E,(IY+32) - 000056D3 FD 56 21 2445 LD D,(IY+33) - 000056D6 21 0A 00 2446 LD HL,10 - 000056D9 ED 4B 3F 87 2447 LD BC,(global) - 000056DD 09 2448 ADD HL,BC - 000056DE 7E 2449 LD A,(HL) - 000056DF 23 2450 INC HL - 000056E0 66 2451 LD H,(HL) - 000056E1 6F 2452 LD L,A - 000056E2 01 05 00 2453 LD BC,5 - 000056E5 09 2454 ADD HL,BC - 000056E6 4E 2455 LD C,(HL) - 000056E7 23 2456 INC HL - 000056E8 46 2457 LD B,(HL) - 000056E9 23 2458 INC HL - 000056EA 7E 2459 LD A,(HL) - 000056EB 69 2460 LD L,C - 000056EC 60 2461 LD H,B - 000056ED 28 53 2462 JR Z,?0173 - 000056EF 2463 ?0172: - 000056EF CD FB 81 2464 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000056F2 29 2465 ADD HL,HL - 000056F3 4D 2466 LD C,L - 000056F4 44 2467 LD B,H - 000056F5 FD 6E 08 2468 LD L,(IY+8) - 000056F8 FD 66 09 2469 LD H,(IY+9) - 000056FB A7 2470 AND A - 000056FC ED 42 2471 SBC HL,BC - 000056FE CD 6F 57 2472 CALL LWRD ?0480 - 00005701 0E 0C 2473 LD C,12 - 00005703 09 2474 ADD HL,BC - 00005704 E5 2475 PUSH HL - 00005705 FD 5E 20 2476 LD E,(IY+32) - 00005708 FD 56 21 2477 LD D,(IY+33) - 0000570B 21 0A 00 2478 LD HL,10 - 0000570E ED 4B 3F 87 2479 LD BC,(global) - 00005712 09 2480 ADD HL,BC - 00005713 7E 2481 LD A,(HL) - 00005714 23 2482 INC HL - 00005715 66 2483 LD H,(HL) - 00005716 6F 2484 LD L,A - 00005717 CD 2F 4A 2485 CALL LWRD ?0442 - 0000571A C1 2486 POP BC - 0000571B CD 54 55 2487 CALL LWRD ?0460 - 0000571E FD 5E 08 2488 LD E,(IY+8) - 00005721 FD 56 09 2489 LD D,(IY+9) - 00005724 CD 70 57 2490 CALL LWRD ?0481 - 00005727 0E 0A 2491 LD C,10 - 00005729 09 2492 ADD HL,BC - 0000572A E5 2493 PUSH HL - 0000572B FD 5E 22 2494 LD E,(IY+34) - 0000572E FD 56 23 2495 LD D,(IY+35) - 00005731 69 2496 LD L,C - 00005732 60 2497 LD H,B - 00005733 CD 26 4A 2498 CALL LWRD ?0443 - 00005736 C1 2499 POP BC - 00005737 CD FB 81 2500 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000573A FD 5E 22 2501 LD E,(IY+34) - 0000573D FD 56 23 2502 LD D,(IY+35) - 00005740 18 20 2503 JR ?0350 - 00005742 2504 ?0173: - 00005742 CD 5B 4A 2505 CALL LWRD ?0444 - 00005745 CD 6F 57 2506 CALL LWRD ?0480 - 00005748 0E 0D 2507 LD C,13 - 0000574A 09 2508 ADD HL,BC - 0000574B E5 2509 PUSH HL - 0000574C FD 5E 20 2510 LD E,(IY+32) - 0000574F FD 56 21 2511 LD D,(IY+33) - 00005752 21 0A 00 2512 LD HL,10 - 00005755 CD 26 4A 2513 CALL LWRD ?0443 - 00005758 C1 2514 POP BC - 00005759 CD FB 81 2515 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000575C FD 5E 20 2516 LD E,(IY+32) - 0000575F FD 56 21 2517 LD D,(IY+33) - 00005762 2518 ?0350: - 00005762 3E 00 2519 LD A,BYTE3 Text - 00005764 21 81 48 2520 LD HL,LWRD Text - 00005767 2521 ?0424: - 00005767 CD FB 81 2522 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000576A 2523 ?0174: - 0000576A FD E1 2524 POP IY - 0000576C C3 A3 81 2525 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000576F 2526 ?0480: - 0000576F EB 2527 EX DE,HL - 00005770 2528 ?0481: - 00005770 01 02 00 2529 LD BC,2 - 00005773 CD EB 82 2530 CALL LWRD ?SS_DIV_L02 - 00005776 DD 6E 0A 2531 LD L,(IX+10) - 00005779 DD 66 0B 2532 LD H,(IX+11) - 0000577C 19 2533 ADD HL,DE - 0000577D C9 2534 RET - 0000577E 2535 Button_paint: - 0000577E C5 2536 PUSH BC - 0000577F DD E5 2537 PUSH IX - 00005781 F5 2538 PUSH AF - 00005782 F5 2539 PUSH AF - 00005783 D5 2540 PUSH DE - 00005784 DD E1 2541 POP IX - 00005786 21 02 00 2542 LD HL,2 - 00005789 39 2543 ADD HL,SP - 0000578A AF 2544 XOR A - 0000578B 77 2545 LD (HL),A - 0000578C 23 2546 INC HL - 0000578D 77 2547 LD (HL),A - 0000578E 2B 2548 DEC HL - 0000578F 2B 2549 DEC HL - 00005790 2B 2550 DEC HL - 00005791 77 2551 LD (HL),A - 00005792 23 2552 INC HL - 00005793 77 2553 LD (HL),A - 00005794 21 0A 00 2554 LD HL,10 - 00005797 ED 4B 3F 87 2555 LD BC,(global) - 0000579B 09 2556 ADD HL,BC - 0000579C 7E 2557 LD A,(HL) - 0000579D 23 2558 INC HL - 0000579E 66 2559 LD H,(HL) - 0000579F 6F 2560 LD L,A - 000057A0 46 2561 LD B,(HL) - 000057A1 23 2562 INC HL - 000057A2 66 2563 LD H,(HL) - 000057A3 68 2564 LD L,B - 000057A4 E5 2565 PUSH HL - 000057A5 21 0E 00 2566 LD HL,14 - 000057A8 19 2567 ADD HL,DE - 000057A9 4E 2568 LD C,(HL) - 000057AA 23 2569 INC HL - 000057AB 46 2570 LD B,(HL) - 000057AC E1 2571 POP HL - 000057AD A7 2572 AND A - 000057AE ED 42 2573 SBC HL,BC - 000057B0 28 03 2574 JR Z,?0176 - 000057B2 2575 ?0175: - 000057B2 CD 66 55 2576 CALL LWRD ?0473 - 000057B5 2577 ?0176: - 000057B5 DD CB 0A 46 2578 BIT 0,(IX+10) - 000057B9 CA 4E 58 2579 JP Z,?0178 - 000057BC 2580 ?0177: - 000057BC 21 00 00 2581 LD HL,0 - 000057BF 39 2582 ADD HL,SP - 000057C0 E5 2583 PUSH HL - 000057C1 CD CD 53 2584 CALL LWRD ?0467 - 000057C4 E1 2585 POP HL - 000057C5 21 00 00 2586 LD HL,0 - 000057C8 39 2587 ADD HL,SP - 000057C9 CD 56 58 2588 CALL LWRD ?0457 - 000057CC CD FB 81 2589 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000057CF DD 6E 08 2590 LD L,(IX+8) - 000057D2 DD 66 09 2591 LD H,(IX+9) - 000057D5 E5 2592 PUSH HL - 000057D6 DD 6E 06 2593 LD L,(IX+6) - 000057D9 DD 66 07 2594 LD H,(IX+7) - 000057DC E5 2595 PUSH HL - 000057DD 21 04 00 2596 LD HL,4 - 000057E0 39 2597 ADD HL,SP - 000057E1 4E 2598 LD C,(HL) - 000057E2 23 2599 INC HL - 000057E3 46 2600 LD B,(HL) - 000057E4 C5 2601 PUSH BC - 000057E5 23 2602 INC HL - 000057E6 4E 2603 LD C,(HL) - 000057E7 23 2604 INC HL - 000057E8 46 2605 LD B,(HL) - 000057E9 DD CB 0A 4E 2606 BIT 1,(IX+10) - 000057ED 28 07 2607 JR Z,?0180 - 000057EF DD 5E 10 2608 LD E,(IX+16) - 000057F2 16 00 2609 LD D,0 - 000057F4 18 03 2610 JR ?0181 - 000057F6 2611 ?0180: - 000057F6 11 00 00 2612 LD DE,0 - 000057F9 2613 ?0181: - 000057F9 CD 3A 49 2614 CALL LWRD ?0471 - 000057FC E1 2615 POP HL - 000057FD E1 2616 POP HL - 000057FE E1 2617 POP HL - 000057FF DD 7E 0A 2618 LD A,(IX+10) - 00005802 E6 82 2619 AND 130 - 00005804 28 1C 2620 JR Z,?0183 - 00005806 DD 7E 0A 2621 LD A,(IX+10) - 00005809 E6 82 2622 AND 130 - 0000580B EE 82 2623 XOR 130 - 0000580D 28 13 2624 JR Z,?0183 - 0000580F 2625 ?0185: - 0000580F 2626 ?0184: - 0000580F 2627 ?0182: - 0000580F DD 4E 08 2628 LD C,(IX+8) - 00005812 DD 46 09 2629 LD B,(IX+9) - 00005815 DD 5E 06 2630 LD E,(IX+6) - 00005818 DD 56 07 2631 LD D,(IX+7) - 0000581B 3E 00 2632 LD A,BYTE3 FillRectNC - 0000581D 21 F7 47 2633 LD HL,LWRD FillRectNC - 00005820 18 11 2634 JR ?0353 - 00005822 2635 ?0183: - 00005822 DD 4E 08 2636 LD C,(IX+8) - 00005825 DD 46 09 2637 LD B,(IX+9) - 00005828 DD 5E 06 2638 LD E,(IX+6) - 0000582B DD 56 07 2639 LD D,(IX+7) - 0000582E 3E 00 2640 LD A,BYTE3 DrawRectNC - 00005830 21 6D 47 2641 LD HL,LWRD DrawRectNC - 00005833 2642 ?0353: - 00005833 CD FB 81 2643 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005836 2644 ?0186: - 00005836 21 00 00 2645 LD HL,0 - 00005839 39 2646 ADD HL,SP - 0000583A 4E 2647 LD C,(HL) - 0000583B 23 2648 INC HL - 0000583C 46 2649 LD B,(HL) - 0000583D C5 2650 PUSH BC - 0000583E 23 2651 INC HL - 0000583F 4E 2652 LD C,(HL) - 00005840 23 2653 INC HL - 00005841 46 2654 LD B,(HL) - 00005842 DD E5 2655 PUSH IX - 00005844 D1 2656 POP DE - 00005845 3E 00 2657 LD A,BYTE3 Button_drawtext - 00005847 21 C2 56 2658 LD HL,LWRD Button_drawtext - 0000584A CD FB 81 2659 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000584D E1 2660 POP HL - 0000584E 2661 ?0178: - 0000584E E1 2662 POP HL - 0000584F E1 2663 POP HL - 00005850 DD E1 2664 POP IX - 00005852 C1 2665 POP BC - 00005853 C3 A9 81 2666 JP LWRD ?BANK_FAST_LEAVE_L08 - 00005856 2667 ?0457: - 00005856 4E 2668 LD C,(HL) - 00005857 23 2669 INC HL - 00005858 46 2670 LD B,(HL) - 00005859 23 2671 INC HL - 0000585A 2672 ?0458: - 0000585A 5E 2673 LD E,(HL) - 0000585B 23 2674 INC HL - 0000585C 56 2675 LD D,(HL) - 0000585D 3E 00 2676 LD A,BYTE3 Move - 0000585F 21 EB 46 2677 LD HL,LWRD Move - 00005862 CD FB 81 2678 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005865 DD 4E 08 2679 LD C,(IX+8) - 00005868 DD 46 09 2680 LD B,(IX+9) - 0000586B DD 5E 06 2681 LD E,(IX+6) - 0000586E DD 56 07 2682 LD D,(IX+7) - 00005871 3E 00 2683 LD A,BYTE3 ClearRect - 00005873 21 2A 47 2684 LD HL,LWRD ClearRect - 00005876 C9 2685 RET - 00005877 2686 Button_add: - 00005877 CD EF 81 2687 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000587A C3 A3 81 2688 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000587D 2689 Button_new: - 0000587D CD 7A 82 2690 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005880 00 00 2691 DEFW 0 - 00005882 FD E5 2692 PUSH IY - 00005884 DD 6E 0C 2693 LD L,(IX+12) - 00005887 DD 66 0D 2694 LD H,(IX+13) - 0000588A E5 2695 PUSH HL - 0000588B DD 6E 0A 2696 LD L,(IX+10) - 0000588E DD 66 0B 2697 LD H,(IX+11) - 00005891 E5 2698 PUSH HL - 00005892 CD FD 55 2699 CALL LWRD ?0438 - 00005895 F1 2700 POP AF - 00005896 F1 2701 POP AF - 00005897 E5 2702 PUSH HL - 00005898 FD E1 2703 POP IY - 0000589A 01 0A 00 2704 LD BC,10 - 0000589D 09 2705 ADD HL,BC - 0000589E 7E 2706 LD A,(HL) - 0000589F F6 03 2707 OR 3 - 000058A1 77 2708 LD (HL),A - 000058A2 DD 46 0E 2709 LD B,(IX+14) - 000058A5 FD 70 10 2710 LD (IY+16),B - 000058A8 FD 36 17 0B 2711 LD (IY+23),LOW(Button_handler) - 000058AC FD 36 18 56 2712 LD (IY+24),HIGH(Button_handler) - 000058B0 FD 36 19 00 2713 LD (IY+25),BYTE3 Button_handler - 000058B4 FD 36 1A 7E 2714 LD (IY+26),LOW(Button_paint) - 000058B8 FD 36 1B 57 2715 LD (IY+27),HIGH(Button_paint) - 000058BC FD 36 1C 00 2716 LD (IY+28),BYTE3 Button_paint - 000058C0 FD 36 1D 77 2717 LD (IY+29),LOW(Button_add) - 000058C4 FD 36 1E 58 2718 LD (IY+30),HIGH(Button_add) - 000058C8 FD 36 1F 00 2719 LD (IY+31),BYTE3 Button_add - 000058CC C3 99 4C 2720 JP LWRD ?0418 - 000058CF 2721 ToggleButton_handler: - 000058CF CD EF 81 2722 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000058D2 FD E5 2723 PUSH IY - 000058D4 D5 2724 PUSH DE - 000058D5 FD E1 2725 POP IY - 000058D7 DD 6E 0A 2726 LD L,(IX+10) - 000058DA DD 66 0B 2727 LD H,(IX+11) - 000058DD E5 2728 PUSH HL - 000058DE 3E 00 2729 LD A,BYTE3 Window_handler - 000058E0 21 1A 51 2730 LD HL,LWRD Window_handler - 000058E3 CD FB 81 2731 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000058E6 E1 2732 POP HL - 000058E7 3E 03 2733 LD A,3 - 000058E9 DD AE 04 2734 XOR (IX+4) - 000058EC DD B6 05 2735 OR (IX+5) - 000058EF 20 5C 2736 JR NZ,?0192 - 000058F1 FD 4E 10 2737 LD C,(IY+16) - 000058F4 47 2738 LD B,A - 000058F5 DD 6E 0A 2739 LD L,(IX+10) - 000058F8 DD 66 0B 2740 LD H,(IX+11) - 000058FB ED 42 2741 SBC HL,BC - 000058FD 20 4E 2742 JR NZ,?0192 - 000058FF FD 7E 0A 2743 LD A,(IY+10) - 00005902 E6 03 2744 AND 3 - 00005904 28 47 2745 JR Z,?0192 - 00005906 2746 ?0190: - 00005906 2747 ?0189: - 00005906 2748 ?0187: - 00005906 FD 7E 0A 2749 LD A,(IY+10) - 00005909 EE 04 2750 XOR 4 - 0000590B FD 77 0A 2751 LD (IY+10),A - 0000590E DD 6E 0A 2752 LD L,(IX+10) - 00005911 DD 66 0B 2753 LD H,(IX+11) - 00005914 E5 2754 PUSH HL - 00005915 FD 5E 11 2755 LD E,(IY+17) - 00005918 FD 56 12 2756 LD D,(IY+18) - 0000591B FD 6E 11 2757 LD L,(IY+17) - 0000591E FD 66 12 2758 LD H,(IY+18) - 00005921 0E 17 2759 LD C,23 - 00005923 09 2760 ADD HL,BC - 00005924 4E 2761 LD C,(HL) - 00005925 23 2762 INC HL - 00005926 46 2763 LD B,(HL) - 00005927 23 2764 INC HL - 00005928 7E 2765 LD A,(HL) - 00005929 69 2766 LD L,C - 0000592A 60 2767 LD H,B - 0000592B 01 02 02 2768 LD BC,514 - 0000592E CD FB 81 2769 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005931 E1 2770 POP HL - 00005932 21 00 00 2771 LD HL,0 - 00005935 E5 2772 PUSH HL - 00005936 01 03 01 2773 LD BC,259 - 00005939 CD BE 53 2774 CALL LWRD ?0463 - 0000593C E1 2775 POP HL - 0000593D FD CB 0A 66 2776 BIT 4,(IY+10) - 00005941 28 0A 2777 JR Z,?0192 - 00005943 2778 ?0191: - 00005943 FD 4E 10 2779 LD C,(IY+16) - 00005946 06 00 2780 LD B,0 - 00005948 C5 2781 PUSH BC - 00005949 CD A6 56 2782 CALL LWRD ?0469 - 0000594C E1 2783 POP HL - 0000594D 2784 ?0192: - 0000594D 2785 ?0188: - 0000594D 21 01 02 2786 LD HL,513 - 00005950 DD 4E 04 2787 LD C,(IX+4) - 00005953 DD 46 05 2788 LD B,(IX+5) - 00005956 A7 2789 AND A - 00005957 ED 42 2790 SBC HL,BC - 00005959 20 0B 2791 JR NZ,?0194 - 0000595B 2792 ?0193: - 0000595B DD 6E 0A 2793 LD L,(IX+10) - 0000595E DD 66 0B 2794 LD H,(IX+11) - 00005961 E5 2795 PUSH HL - 00005962 CD 89 56 2796 CALL LWRD ?0465 - 00005965 E1 2797 POP HL - 00005966 2798 ?0194: - 00005966 FD E1 2799 POP IY - 00005968 C3 A3 81 2800 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000596B 2801 ToggleButton_paint: - 0000596B C5 2802 PUSH BC - 0000596C DD E5 2803 PUSH IX - 0000596E F5 2804 PUSH AF - 0000596F F5 2805 PUSH AF - 00005970 D5 2806 PUSH DE - 00005971 DD E1 2807 POP IX - 00005973 21 02 00 2808 LD HL,2 - 00005976 39 2809 ADD HL,SP - 00005977 AF 2810 XOR A - 00005978 77 2811 LD (HL),A - 00005979 23 2812 INC HL - 0000597A 77 2813 LD (HL),A - 0000597B 2B 2814 DEC HL - 0000597C 2B 2815 DEC HL - 0000597D 2B 2816 DEC HL - 0000597E 77 2817 LD (HL),A - 0000597F 23 2818 INC HL - 00005980 77 2819 LD (HL),A - 00005981 21 0A 00 2820 LD HL,10 - 00005984 ED 4B 3F 87 2821 LD BC,(global) - 00005988 09 2822 ADD HL,BC - 00005989 7E 2823 LD A,(HL) - 0000598A 23 2824 INC HL - 0000598B 66 2825 LD H,(HL) - 0000598C 6F 2826 LD L,A - 0000598D 46 2827 LD B,(HL) - 0000598E 23 2828 INC HL - 0000598F 66 2829 LD H,(HL) - 00005990 68 2830 LD L,B - 00005991 E5 2831 PUSH HL - 00005992 21 0E 00 2832 LD HL,14 - 00005995 19 2833 ADD HL,DE - 00005996 4E 2834 LD C,(HL) - 00005997 23 2835 INC HL - 00005998 46 2836 LD B,(HL) - 00005999 E1 2837 POP HL - 0000599A A7 2838 AND A - 0000599B ED 42 2839 SBC HL,BC - 0000599D 28 03 2840 JR Z,?0196 - 0000599F 2841 ?0195: - 0000599F CD 66 55 2842 CALL LWRD ?0473 - 000059A2 2843 ?0196: - 000059A2 DD CB 0A 46 2844 BIT 0,(IX+10) - 000059A6 CA 54 5A 2845 JP Z,?0198 - 000059A9 2846 ?0197: - 000059A9 21 00 00 2847 LD HL,0 - 000059AC 39 2848 ADD HL,SP - 000059AD E5 2849 PUSH HL - 000059AE CD CD 53 2850 CALL LWRD ?0467 - 000059B1 E1 2851 POP HL - 000059B2 21 00 00 2852 LD HL,0 - 000059B5 39 2853 ADD HL,SP - 000059B6 CD 56 58 2854 CALL LWRD ?0457 - 000059B9 CD FB 81 2855 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000059BC DD CB 0A 4E 2856 BIT 1,(IX+10) - 000059C0 28 36 2857 JR Z,?0200 - 000059C2 DD CB 0A 56 2858 BIT 2,(IX+10) - 000059C6 28 30 2859 JR Z,?0200 - 000059C8 2860 ?0202: - 000059C8 2861 ?0201: - 000059C8 2862 ?0199: - 000059C8 DD 4E 08 2863 LD C,(IX+8) - 000059CB DD 46 09 2864 LD B,(IX+9) - 000059CE DD 5E 06 2865 LD E,(IX+6) - 000059D1 DD 56 07 2866 LD D,(IX+7) - 000059D4 3E 00 2867 LD A,BYTE3 FillRectNC - 000059D6 21 F7 47 2868 LD HL,LWRD FillRectNC - 000059D9 CD FB 81 2869 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000059DC DD 6E 08 2870 LD L,(IX+8) - 000059DF DD 66 09 2871 LD H,(IX+9) - 000059E2 E5 2872 PUSH HL - 000059E3 DD 6E 06 2873 LD L,(IX+6) - 000059E6 DD 66 07 2874 LD H,(IX+7) - 000059E9 E5 2875 PUSH HL - 000059EA 21 04 00 2876 LD HL,4 - 000059ED 39 2877 ADD HL,SP - 000059EE 4E 2878 LD C,(HL) - 000059EF 23 2879 INC HL - 000059F0 46 2880 LD B,(HL) - 000059F1 C5 2881 PUSH BC - 000059F2 23 2882 INC HL - 000059F3 4E 2883 LD C,(HL) - 000059F4 23 2884 INC HL - 000059F5 46 2885 LD B,(HL) - 000059F6 18 34 2886 JR ?0357 - 000059F8 2887 ?0200: - 000059F8 DD 4E 08 2888 LD C,(IX+8) - 000059FB DD 46 09 2889 LD B,(IX+9) - 000059FE DD 5E 06 2890 LD E,(IX+6) - 00005A01 DD 56 07 2891 LD D,(IX+7) - 00005A04 3E 00 2892 LD A,BYTE3 DrawRectNC - 00005A06 21 6D 47 2893 LD HL,LWRD DrawRectNC - 00005A09 CD FB 81 2894 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005A0C DD 6E 08 2895 LD L,(IX+8) - 00005A0F DD 66 09 2896 LD H,(IX+9) - 00005A12 E5 2897 PUSH HL - 00005A13 DD 6E 06 2898 LD L,(IX+6) - 00005A16 DD 66 07 2899 LD H,(IX+7) - 00005A19 E5 2900 PUSH HL - 00005A1A 21 04 00 2901 LD HL,4 - 00005A1D 39 2902 ADD HL,SP - 00005A1E 4E 2903 LD C,(HL) - 00005A1F 23 2904 INC HL - 00005A20 46 2905 LD B,(HL) - 00005A21 C5 2906 PUSH BC - 00005A22 23 2907 INC HL - 00005A23 4E 2908 LD C,(HL) - 00005A24 23 2909 INC HL - 00005A25 46 2910 LD B,(HL) - 00005A26 DD CB 0A 4E 2911 BIT 1,(IX+10) - 00005A2A 28 07 2912 JR Z,?0205 - 00005A2C 2913 ?0357: - 00005A2C DD 5E 10 2914 LD E,(IX+16) - 00005A2F 16 00 2915 LD D,0 - 00005A31 18 03 2916 JR ?0206 - 00005A33 2917 ?0205: - 00005A33 11 00 00 2918 LD DE,0 - 00005A36 2919 ?0206: - 00005A36 CD 3A 49 2920 CALL LWRD ?0471 - 00005A39 E1 2921 POP HL - 00005A3A E1 2922 POP HL - 00005A3B E1 2923 POP HL - 00005A3C 2924 ?0203: - 00005A3C 21 00 00 2925 LD HL,0 - 00005A3F 39 2926 ADD HL,SP - 00005A40 4E 2927 LD C,(HL) - 00005A41 23 2928 INC HL - 00005A42 46 2929 LD B,(HL) - 00005A43 C5 2930 PUSH BC - 00005A44 23 2931 INC HL - 00005A45 4E 2932 LD C,(HL) - 00005A46 23 2933 INC HL - 00005A47 46 2934 LD B,(HL) - 00005A48 DD E5 2935 PUSH IX - 00005A4A D1 2936 POP DE - 00005A4B 3E 00 2937 LD A,BYTE3 Button_drawtext - 00005A4D 21 C2 56 2938 LD HL,LWRD Button_drawtext - 00005A50 CD FB 81 2939 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005A53 E1 2940 POP HL - 00005A54 2941 ?0198: - 00005A54 C3 4E 58 2942 JP LWRD ?0178 - 00005A57 2943 ToggleButton_new: - 00005A57 CD 7A 82 2944 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005A5A 00 00 2945 DEFW 0 - 00005A5C FD E5 2946 PUSH IY - 00005A5E DD 6E 0C 2947 LD L,(IX+12) - 00005A61 DD 66 0D 2948 LD H,(IX+13) - 00005A64 E5 2949 PUSH HL - 00005A65 DD 6E 0A 2950 LD L,(IX+10) - 00005A68 DD 66 0B 2951 LD H,(IX+11) - 00005A6B E5 2952 PUSH HL - 00005A6C CD FD 55 2953 CALL LWRD ?0438 - 00005A6F F1 2954 POP AF - 00005A70 F1 2955 POP AF - 00005A71 E5 2956 PUSH HL - 00005A72 FD E1 2957 POP IY - 00005A74 01 0A 00 2958 LD BC,10 - 00005A77 09 2959 ADD HL,BC - 00005A78 7E 2960 LD A,(HL) - 00005A79 F6 07 2961 OR 7 - 00005A7B 77 2962 LD (HL),A - 00005A7C DD 46 0E 2963 LD B,(IX+14) - 00005A7F FD 70 10 2964 LD (IY+16),B - 00005A82 FD 36 17 CF 2965 LD (IY+23),LOW(ToggleButton_handler) - 00005A86 FD 36 18 58 2966 LD (IY+24),HIGH(ToggleButton_handler) - 00005A8A FD 36 19 00 2967 LD (IY+25),BYTE3 ToggleButton_handler - 00005A8E FD 36 1A 6B 2968 LD (IY+26),LOW(ToggleButton_paint) - 00005A92 FD 36 1B 59 2969 LD (IY+27),HIGH(ToggleButton_paint) - 00005A96 FD 36 1C 00 2970 LD (IY+28),BYTE3 ToggleButton_paint - 00005A9A FD 36 1D 77 2971 LD (IY+29),LOW(Button_add) - 00005A9E FD 36 1E 58 2972 LD (IY+30),HIGH(Button_add) - 00005AA2 FD 36 1F 00 2973 LD (IY+31),BYTE3 Button_add - 00005AA6 C3 99 4C 2974 JP LWRD ?0418 - 00005AA9 2975 Dialog_handler: - 00005AA9 CD EF 81 2976 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00005AAC FD E5 2977 PUSH IY - 00005AAE D5 2978 PUSH DE - 00005AAF FD E1 2979 POP IY - 00005AB1 DD 6E 0A 2980 LD L,(IX+10) - 00005AB4 DD 66 0B 2981 LD H,(IX+11) - 00005AB7 E5 2982 PUSH HL - 00005AB8 3E 00 2983 LD A,BYTE3 Window_handler - 00005ABA 21 1A 51 2984 LD HL,LWRD Window_handler - 00005ABD CD FB 81 2985 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005AC0 E1 2986 POP HL - 00005AC1 21 01 02 2987 LD HL,513 - 00005AC4 DD 4E 04 2988 LD C,(IX+4) - 00005AC7 DD 46 05 2989 LD B,(IX+5) - 00005ACA A7 2990 AND A - 00005ACB ED 42 2991 SBC HL,BC - 00005ACD 20 40 2992 JR NZ,?0208 - 00005ACF 3E FF 2993 LD A,255 - 00005AD1 DD AE 0A 2994 XOR (IX+10) - 00005AD4 DD B6 0B 2995 OR (IX+11) - 00005AD7 20 36 2996 JR NZ,?0208 - 00005AD9 2997 ?0210: - 00005AD9 2998 ?0209: - 00005AD9 2999 ?0207: - 00005AD9 FD CB 0B 66 3000 BIT 4,(IY+11) - 00005ADD E5 3001 PUSH HL - 00005ADE 28 05 3002 JR Z,?0212 - 00005AE0 3003 ?0211: - 00005AE0 01 05 01 3004 LD BC,261 - 00005AE3 18 03 3005 JR ?0358 - 00005AE5 3006 ?0212: - 00005AE5 01 02 01 3007 LD BC,258 - 00005AE8 3008 ?0358: - 00005AE8 CD BE 53 3009 CALL LWRD ?0463 - 00005AEB E1 3010 POP HL - 00005AEC 3011 ?0213: - 00005AEC FD 4E 10 3012 LD C,(IY+16) - 00005AEF 06 00 3013 LD B,0 - 00005AF1 C5 3014 PUSH BC - 00005AF2 FD 5E 11 3015 LD E,(IY+17) - 00005AF5 FD 56 12 3016 LD D,(IY+18) - 00005AF8 FD 6E 11 3017 LD L,(IY+17) - 00005AFB FD 66 12 3018 LD H,(IY+18) - 00005AFE 0E 17 3019 LD C,23 - 00005B00 09 3020 ADD HL,BC - 00005B01 4E 3021 LD C,(HL) - 00005B02 23 3022 INC HL - 00005B03 46 3023 LD B,(HL) - 00005B04 23 3024 INC HL - 00005B05 7E 3025 LD A,(HL) - 00005B06 69 3026 LD L,C - 00005B07 60 3027 LD H,B - 00005B08 01 01 03 3028 LD BC,769 - 00005B0B CD FB 81 3029 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005B0E E1 3030 POP HL - 00005B0F 3031 ?0208: - 00005B0F 21 01 02 3032 LD HL,513 - 00005B12 DD 4E 04 3033 LD C,(IX+4) - 00005B15 DD 46 05 3034 LD B,(IX+5) - 00005B18 A7 3035 AND A - 00005B19 ED 42 3036 SBC HL,BC - 00005B1B 20 40 3037 JR NZ,?0215 - 00005B1D 3E FE 3038 LD A,254 - 00005B1F DD AE 0A 3039 XOR (IX+10) - 00005B22 DD B6 0B 3040 OR (IX+11) - 00005B25 20 36 3041 JR NZ,?0215 - 00005B27 3042 ?0217: - 00005B27 3043 ?0216: - 00005B27 3044 ?0214: - 00005B27 FD CB 0B 66 3045 BIT 4,(IY+11) - 00005B2B E5 3046 PUSH HL - 00005B2C 28 05 3047 JR Z,?0219 - 00005B2E 3048 ?0218: - 00005B2E 01 05 01 3049 LD BC,261 - 00005B31 18 03 3050 JR ?0359 - 00005B33 3051 ?0219: - 00005B33 01 02 01 3052 LD BC,258 - 00005B36 3053 ?0359: - 00005B36 CD BE 53 3054 CALL LWRD ?0463 - 00005B39 E1 3055 POP HL - 00005B3A 3056 ?0220: - 00005B3A FD 4E 10 3057 LD C,(IY+16) - 00005B3D 06 00 3058 LD B,0 - 00005B3F C5 3059 PUSH BC - 00005B40 FD 5E 11 3060 LD E,(IY+17) - 00005B43 FD 56 12 3061 LD D,(IY+18) - 00005B46 FD 6E 11 3062 LD L,(IY+17) - 00005B49 FD 66 12 3063 LD H,(IY+18) - 00005B4C 0E 17 3064 LD C,23 - 00005B4E 09 3065 ADD HL,BC - 00005B4F 4E 3066 LD C,(HL) - 00005B50 23 3067 INC HL - 00005B51 46 3068 LD B,(HL) - 00005B52 23 3069 INC HL - 00005B53 7E 3070 LD A,(HL) - 00005B54 69 3071 LD L,C - 00005B55 60 3072 LD H,B - 00005B56 01 02 03 3073 LD BC,770 - 00005B59 CD FB 81 3074 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005B5C E1 3075 POP HL - 00005B5D 3076 ?0215: - 00005B5D FD E1 3077 POP IY - 00005B5F C3 A3 81 3078 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005B62 3079 Dialog_new: - 00005B62 CD 7A 82 3080 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005B65 FE FF 3081 DEFW -2 - 00005B67 FD E5 3082 PUSH IY - 00005B69 DD 6E 0C 3083 LD L,(IX+12) - 00005B6C DD 66 0D 3084 LD H,(IX+13) - 00005B6F E5 3085 PUSH HL - 00005B70 DD 6E 0A 3086 LD L,(IX+10) - 00005B73 DD 66 0B 3087 LD H,(IX+11) - 00005B76 E5 3088 PUSH HL - 00005B77 CD FD 55 3089 CALL LWRD ?0438 - 00005B7A F1 3090 POP AF - 00005B7B F1 3091 POP AF - 00005B7C E5 3092 PUSH HL - 00005B7D FD E1 3093 POP IY - 00005B7F 01 0A 00 3094 LD BC,10 - 00005B82 09 3095 ADD HL,BC - 00005B83 CB C6 3096 SET 0,(HL) - 00005B85 DD 46 0E 3097 LD B,(IX+14) - 00005B88 FD 70 10 3098 LD (IY+16),B - 00005B8B FD 36 17 A9 3099 LD (IY+23),LOW(Dialog_handler) - 00005B8F FD 36 18 5A 3100 LD (IY+24),HIGH(Dialog_handler) - 00005B93 FD 36 19 00 3101 LD (IY+25),BYTE3 Dialog_handler - 00005B97 FD 36 1A E7 3102 LD (IY+26),LOW(Window_paint) - 00005B9B FD 36 1B 53 3103 LD (IY+27),HIGH(Window_paint) - 00005B9F FD 36 1C 00 3104 LD (IY+28),BYTE3 Window_paint - 00005BA3 FD 36 1D AB 3105 LD (IY+29),LOW(Window_add) - 00005BA7 FD 36 1E 55 3106 LD (IY+30),HIGH(Window_add) - 00005BAB FD 36 1F 00 3107 LD (IY+31),BYTE3 Window_add - 00005BAF 21 FF 00 3108 LD HL,255 - 00005BB2 E5 3109 PUSH HL - 00005BB3 2E 14 3110 LD L,20 - 00005BB5 E5 3111 PUSH HL - 00005BB6 2E 28 3112 LD L,40 - 00005BB8 E5 3113 PUSH HL - 00005BB9 21 E4 FF 3114 LD HL,65508 - 00005BBC CD 14 5C 3115 CALL LWRD ?0439 - 00005BBF F1 3116 POP AF - 00005BC0 F1 3117 POP AF - 00005BC1 F1 3118 POP AF - 00005BC2 DD 75 FE 3119 LD (IX-2),L - 00005BC5 DD 74 FF 3120 LD (IX-1),H - 00005BC8 01 20 00 3121 LD BC,32 - 00005BCB 09 3122 ADD HL,BC - 00005BCC E5 3123 PUSH HL - 00005BCD 11 03 00 3124 LD DE,3 - 00005BD0 CD 70 4A 3125 CALL LWRD ?0450 - 00005BD3 E1 3126 POP HL - 00005BD4 71 3127 LD (HL),C - 00005BD5 23 3128 INC HL - 00005BD6 70 3129 LD (HL),B - 00005BD7 01 ED 84 3130 LD BC,?0221 - 00005BDA CD 30 5C 3131 CALL LWRD ?0456 - 00005BDD CD FB 81 3132 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005BE0 21 FE 00 3133 LD HL,254 - 00005BE3 E5 3134 PUSH HL - 00005BE4 2E 14 3135 LD L,20 - 00005BE6 E5 3136 PUSH HL - 00005BE7 2E 28 3137 LD L,40 - 00005BE9 E5 3138 PUSH HL - 00005BEA 21 C8 FF 3139 LD HL,65480 - 00005BED CD 14 5C 3140 CALL LWRD ?0439 - 00005BF0 F1 3141 POP AF - 00005BF1 F1 3142 POP AF - 00005BF2 F1 3143 POP AF - 00005BF3 DD 75 FE 3144 LD (IX-2),L - 00005BF6 DD 74 FF 3145 LD (IX-1),H - 00005BF9 01 20 00 3146 LD BC,32 - 00005BFC 09 3147 ADD HL,BC - 00005BFD E5 3148 PUSH HL - 00005BFE 11 07 00 3149 LD DE,7 - 00005C01 CD 70 4A 3150 CALL LWRD ?0450 - 00005C04 E1 3151 POP HL - 00005C05 71 3152 LD (HL),C - 00005C06 23 3153 INC HL - 00005C07 70 3154 LD (HL),B - 00005C08 01 F0 84 3155 LD BC,?0222 - 00005C0B CD 30 5C 3156 CALL LWRD ?0456 - 00005C0E CD FB 81 3157 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005C11 C3 99 4C 3158 JP LWRD ?0418 - 00005C14 3159 ?0439: - 00005C14 DD 4E 0C 3160 LD C,(IX+12) - 00005C17 DD 46 0D 3161 LD B,(IX+13) - 00005C1A 09 3162 ADD HL,BC - 00005C1B 4D 3163 LD C,L - 00005C1C 44 3164 LD B,H - 00005C1D 21 D0 FF 3165 LD HL,65488 - 00005C20 DD 5E 0A 3166 LD E,(IX+10) - 00005C23 DD 56 0B 3167 LD D,(IX+11) - 00005C26 19 3168 ADD HL,DE - 00005C27 EB 3169 EX DE,HL - 00005C28 3170 ?0440: - 00005C28 3E 00 3171 LD A,BYTE3 Button_new - 00005C2A 21 7D 58 3172 LD HL,LWRD Button_new - 00005C2D C3 FB 81 3173 JP LWRD ?BANK_CALL_DIRECT_L08 - 00005C30 3174 ?0456: - 00005C30 DD 5E FE 3175 LD E,(IX-2) - 00005C33 DD 56 FF 3176 LD D,(IX-1) - 00005C36 3E 00 3177 LD A,BYTE3 Component_setlabel - 00005C38 21 A1 4C 3178 LD HL,LWRD Component_setlabel - 00005C3B CD FB 81 3179 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005C3E DD 4E FE 3180 LD C,(IX-2) - 00005C41 DD 46 FF 3181 LD B,(IX-1) - 00005C44 FD E5 3182 PUSH IY - 00005C46 D1 3183 POP DE - 00005C47 FD 7E 1F 3184 LD A,(IY+31) - 00005C4A FD 6E 1D 3185 LD L,(IY+29) - 00005C4D FD 66 1E 3186 LD H,(IY+30) - 00005C50 C9 3187 RET - 00005C51 3188 Display_handler: - 00005C51 CD EF 81 3189 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00005C54 FD E5 3190 PUSH IY - 00005C56 D5 3191 PUSH DE - 00005C57 FD E1 3192 POP IY - 00005C59 DD 6E 0A 3193 LD L,(IX+10) - 00005C5C DD 66 0B 3194 LD H,(IX+11) - 00005C5F E5 3195 PUSH HL - 00005C60 3E 00 3196 LD A,BYTE3 Button_handler - 00005C62 21 0B 56 3197 LD HL,LWRD Button_handler - 00005C65 CD FB 81 3198 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005C68 E1 3199 POP HL - 00005C69 21 03 02 3200 LD HL,515 - 00005C6C DD 4E 04 3201 LD C,(IX+4) - 00005C6F DD 46 05 3202 LD B,(IX+5) - 00005C72 A7 3203 AND A - 00005C73 ED 42 3204 SBC HL,BC - 00005C75 20 40 3205 JR NZ,?0224 - 00005C77 FD CB 0A 5E 3206 BIT 3,(IY+10) - 00005C7B 28 3A 3207 JR Z,?0224 - 00005C7D 3208 ?0226: - 00005C7D 3209 ?0225: - 00005C7D 3210 ?0223: - 00005C7D 3E 08 3211 LD A,8 - 00005C7F DD AE 0A 3212 XOR (IX+10) - 00005C82 DD B6 0B 3213 OR (IX+11) - 00005C85 FD 5E 20 3214 LD E,(IY+32) - 00005C88 FD 56 21 3215 LD D,(IY+33) - 00005C8B 3E 00 3216 LD A,BYTE3 strlen - 00005C8D 21 AB 73 3217 LD HL,LWRD strlen - 00005C90 20 0D 3218 JR NZ,?0228 - 00005C92 3219 ?0227: - 00005C92 CD 6A 4A 3220 CALL LWRD ?0448 - 00005C95 28 15 3221 JR Z,?0231 - 00005C97 3222 ?0229: - 00005C97 CD BC 5C 3223 CALL LWRD ?0445 - 00005C9A 2B 3224 DEC HL - 00005C9B 36 00 3225 LD (HL),0 - 00005C9D 3226 ?0230: - 00005C9D 18 0D 3227 JR ?0231 - 00005C9F 3228 ?0228: - 00005C9F CD C7 5C 3229 CALL LWRD ?0446 - 00005CA2 23 3230 INC HL - 00005CA3 36 00 3231 LD (HL),0 - 00005CA5 CD BC 5C 3232 CALL LWRD ?0445 - 00005CA8 DD 46 0A 3233 LD B,(IX+10) - 00005CAB 70 3234 LD (HL),B - 00005CAC 3235 ?0231: - 00005CAC 21 00 00 3236 LD HL,0 - 00005CAF E5 3237 PUSH HL - 00005CB0 01 03 01 3238 LD BC,259 - 00005CB3 CD BE 53 3239 CALL LWRD ?0463 - 00005CB6 E1 3240 POP HL - 00005CB7 3241 ?0224: - 00005CB7 FD E1 3242 POP IY - 00005CB9 C3 A3 81 3243 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005CBC 3244 ?0445: - 00005CBC FD 5E 20 3245 LD E,(IY+32) - 00005CBF FD 56 21 3246 LD D,(IY+33) - 00005CC2 3E 00 3247 LD A,BYTE3 strlen - 00005CC4 21 AB 73 3248 LD HL,LWRD strlen - 00005CC7 3249 ?0446: - 00005CC7 CD FB 81 3250 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005CCA FD 4E 20 3251 LD C,(IY+32) - 00005CCD FD 46 21 3252 LD B,(IY+33) - 00005CD0 09 3253 ADD HL,BC - 00005CD1 C9 3254 RET - 00005CD2 3255 Display_paint: - 00005CD2 C5 3256 PUSH BC - 00005CD3 FD E5 3257 PUSH IY - 00005CD5 DD E5 3258 PUSH IX - 00005CD7 21 B8 FF 3259 LD HL,65464 - 00005CDA 39 3260 ADD HL,SP - 00005CDB F9 3261 LD SP,HL - 00005CDC D5 3262 PUSH DE - 00005CDD DD E1 3263 POP IX - 00005CDF AF 3264 XOR A - 00005CE0 77 3265 LD (HL),A - 00005CE1 23 3266 INC HL - 00005CE2 77 3267 LD (HL),A - 00005CE3 23 3268 INC HL - 00005CE4 77 3269 LD (HL),A - 00005CE5 23 3270 INC HL - 00005CE6 77 3271 LD (HL),A - 00005CE7 21 0A 00 3272 LD HL,10 - 00005CEA ED 4B 3F 87 3273 LD BC,(global) - 00005CEE 09 3274 ADD HL,BC - 00005CEF 7E 3275 LD A,(HL) - 00005CF0 23 3276 INC HL - 00005CF1 66 3277 LD H,(HL) - 00005CF2 6F 3278 LD L,A - 00005CF3 46 3279 LD B,(HL) - 00005CF4 23 3280 INC HL - 00005CF5 66 3281 LD H,(HL) - 00005CF6 68 3282 LD L,B - 00005CF7 E5 3283 PUSH HL - 00005CF8 21 0E 00 3284 LD HL,14 - 00005CFB 19 3285 ADD HL,DE - 00005CFC 4E 3286 LD C,(HL) - 00005CFD 23 3287 INC HL - 00005CFE 46 3288 LD B,(HL) - 00005CFF E1 3289 POP HL - 00005D00 A7 3290 AND A - 00005D01 ED 42 3291 SBC HL,BC - 00005D03 28 03 3292 JR Z,?0233 - 00005D05 3293 ?0232: - 00005D05 CD 66 55 3294 CALL LWRD ?0473 - 00005D08 3295 ?0233: - 00005D08 DD CB 0A 46 3296 BIT 0,(IX+10) - 00005D0C CA 16 5E 3297 JP Z,?0248 - 00005D0F 3298 ?0234: - 00005D0F 21 02 00 3299 LD HL,2 - 00005D12 39 3300 ADD HL,SP - 00005D13 E5 3301 PUSH HL - 00005D14 2B 3302 DEC HL - 00005D15 2B 3303 DEC HL - 00005D16 CD CF 53 3304 CALL LWRD ?0468 - 00005D19 E1 3305 POP HL - 00005D1A 21 02 00 3306 LD HL,2 - 00005D1D 39 3307 ADD HL,SP - 00005D1E 4E 3308 LD C,(HL) - 00005D1F 23 3309 INC HL - 00005D20 46 3310 LD B,(HL) - 00005D21 2B 3311 DEC HL - 00005D22 2B 3312 DEC HL - 00005D23 2B 3313 DEC HL - 00005D24 CD 5A 58 3314 CALL LWRD ?0458 - 00005D27 CD FB 81 3315 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005D2A DD 6E 08 3316 LD L,(IX+8) - 00005D2D DD 66 09 3317 LD H,(IX+9) - 00005D30 E5 3318 PUSH HL - 00005D31 DD 6E 06 3319 LD L,(IX+6) - 00005D34 DD 66 07 3320 LD H,(IX+7) - 00005D37 E5 3321 PUSH HL - 00005D38 21 06 00 3322 LD HL,6 - 00005D3B 39 3323 ADD HL,SP - 00005D3C 4E 3324 LD C,(HL) - 00005D3D 23 3325 INC HL - 00005D3E 46 3326 LD B,(HL) - 00005D3F C5 3327 PUSH BC - 00005D40 2B 3328 DEC HL - 00005D41 2B 3329 DEC HL - 00005D42 2B 3330 DEC HL - 00005D43 4E 3331 LD C,(HL) - 00005D44 23 3332 INC HL - 00005D45 46 3333 LD B,(HL) - 00005D46 DD CB 0A 4E 3334 BIT 1,(IX+10) - 00005D4A 28 07 3335 JR Z,?0237 - 00005D4C DD 5E 10 3336 LD E,(IX+16) - 00005D4F 16 00 3337 LD D,0 - 00005D51 18 03 3338 JR ?0238 - 00005D53 3339 ?0237: - 00005D53 11 00 00 3340 LD DE,0 - 00005D56 3341 ?0238: - 00005D56 CD 3A 49 3342 CALL LWRD ?0471 - 00005D59 E1 3343 POP HL - 00005D5A E1 3344 POP HL - 00005D5B E1 3345 POP HL - 00005D5C DD CB 0A 7E 3346 BIT 7,(IX+10) - 00005D60 DD 4E 08 3347 LD C,(IX+8) - 00005D63 DD 46 09 3348 LD B,(IX+9) - 00005D66 DD 5E 06 3349 LD E,(IX+6) - 00005D69 DD 56 07 3350 LD D,(IX+7) - 00005D6C 20 07 3351 JR NZ,?0240 - 00005D6E 3352 ?0239: - 00005D6E 3E 00 3353 LD A,BYTE3 FillRectNC - 00005D70 21 F7 47 3354 LD HL,LWRD FillRectNC - 00005D73 18 05 3355 JR ?0364 - 00005D75 3356 ?0240: - 00005D75 3E 00 3357 LD A,BYTE3 DrawRectNC - 00005D77 21 6D 47 3358 LD HL,LWRD DrawRectNC - 00005D7A 3359 ?0364: - 00005D7A CD FB 81 3360 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005D7D 3361 ?0241: - 00005D7D DD 5E 20 3362 LD E,(IX+32) - 00005D80 DD 56 21 3363 LD D,(IX+33) - 00005D83 21 0A 00 3364 LD HL,10 - 00005D86 ED 4B 3F 87 3365 LD BC,(global) - 00005D8A 09 3366 ADD HL,BC - 00005D8B 46 3367 LD B,(HL) - 00005D8C 23 3368 INC HL - 00005D8D 66 3369 LD H,(HL) - 00005D8E 68 3370 LD L,B - 00005D8F 01 05 00 3371 LD BC,5 - 00005D92 09 3372 ADD HL,BC - 00005D93 4E 3373 LD C,(HL) - 00005D94 23 3374 INC HL - 00005D95 46 3375 LD B,(HL) - 00005D96 23 3376 INC HL - 00005D97 7E 3377 LD A,(HL) - 00005D98 69 3378 LD L,C - 00005D99 60 3379 LD H,B - 00005D9A CD 75 4A 3380 CALL LWRD ?0449 - 00005D9D DD 6E 08 3381 LD L,(IX+8) - 00005DA0 DD 66 09 3382 LD H,(IX+9) - 00005DA3 A7 3383 AND A - 00005DA4 ED 42 3384 SBC HL,BC - 00005DA6 EB 3385 EX DE,HL - 00005DA7 01 02 00 3386 LD BC,2 - 00005DAA CD EB 82 3387 CALL LWRD ?SS_DIV_L02 - 00005DAD 69 3388 LD L,C - 00005DAE 60 3389 LD H,B - 00005DAF 39 3390 ADD HL,SP - 00005DB0 46 3391 LD B,(HL) - 00005DB1 23 3392 INC HL - 00005DB2 66 3393 LD H,(HL) - 00005DB3 68 3394 LD L,B - 00005DB4 19 3395 ADD HL,DE - 00005DB5 01 07 00 3396 LD BC,7 - 00005DB8 09 3397 ADD HL,BC - 00005DB9 4D 3398 LD C,L - 00005DBA 44 3399 LD B,H - 00005DBB 21 00 00 3400 LD HL,0 - 00005DBE 39 3401 ADD HL,SP - 00005DBF 5E 3402 LD E,(HL) - 00005DC0 23 3403 INC HL - 00005DC1 56 3404 LD D,(HL) - 00005DC2 13 3405 INC DE - 00005DC3 13 3406 INC DE - 00005DC4 3E 00 3407 LD A,BYTE3 Move - 00005DC6 21 EB 46 3408 LD HL,LWRD Move - 00005DC9 CD FB 81 3409 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005DCC DD CB 0B 46 3410 BIT 0,(IX+11) - 00005DD0 28 36 3411 JR Z,?0243 - 00005DD2 3412 ?0242: - 00005DD2 FD 21 00 00 3413 LD IY,0 - 00005DD6 3414 ?0245: - 00005DD6 DD 5E 20 3415 LD E,(IX+32) - 00005DD9 DD 56 21 3416 LD D,(IX+33) - 00005DDC 3E 00 3417 LD A,BYTE3 strlen - 00005DDE 21 AB 73 3418 LD HL,LWRD strlen - 00005DE1 CD 75 4A 3419 CALL LWRD ?0449 - 00005DE4 FD E5 3420 PUSH IY - 00005DE6 E1 3421 POP HL - 00005DE7 A7 3422 AND A - 00005DE8 ED 42 3423 SBC HL,BC - 00005DEA 21 06 00 3424 LD HL,6 - 00005DED 30 0B 3425 JR NC,?0244 - 00005DEF 3426 ?0246: - 00005DEF 39 3427 ADD HL,SP - 00005DF0 FD E5 3428 PUSH IY - 00005DF2 C1 3429 POP BC - 00005DF3 09 3430 ADD HL,BC - 00005DF4 36 2A 3431 LD (HL),42 - 00005DF6 FD 23 3432 INC IY - 00005DF8 18 DC 3433 JR ?0245 - 00005DFA 3434 ?0244: - 00005DFA 39 3435 ADD HL,SP - 00005DFB FD E5 3436 PUSH IY - 00005DFD C1 3437 POP BC - 00005DFE 09 3438 ADD HL,BC - 00005DFF 36 00 3439 LD (HL),0 - 00005E01 21 06 00 3440 LD HL,6 - 00005E04 39 3441 ADD HL,SP - 00005E05 EB 3442 EX DE,HL - 00005E06 18 06 3443 JR ?0365 - 00005E08 3444 ?0243: - 00005E08 DD 5E 20 3445 LD E,(IX+32) - 00005E0B DD 56 21 3446 LD D,(IX+33) - 00005E0E 3447 ?0365: - 00005E0E 3E 00 3448 LD A,BYTE3 Text - 00005E10 21 81 48 3449 LD HL,LWRD Text - 00005E13 CD FB 81 3450 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005E16 3451 ?0248: - 00005E16 3452 ?0235: - 00005E16 21 48 00 3453 LD HL,72 - 00005E19 39 3454 ADD HL,SP - 00005E1A F9 3455 LD SP,HL - 00005E1B C3 A6 48 3456 JP LWRD ?0411 - 00005E1E 3457 Display_new: - 00005E1E CD 7A 82 3458 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005E21 00 00 3459 DEFW 0 - 00005E23 FD E5 3460 PUSH IY - 00005E25 DD 6E 0E 3461 LD L,(IX+14) - 00005E28 DD 66 0F 3462 LD H,(IX+15) - 00005E2B E5 3463 PUSH HL - 00005E2C DD 6E 0C 3464 LD L,(IX+12) - 00005E2F DD 66 0D 3465 LD H,(IX+13) - 00005E32 E5 3466 PUSH HL - 00005E33 DD 6E 0A 3467 LD L,(IX+10) - 00005E36 DD 66 0B 3468 LD H,(IX+11) - 00005E39 E5 3469 PUSH HL - 00005E3A DD 5E 02 3470 LD E,(IX+2) - 00005E3D DD 56 03 3471 LD D,(IX+3) - 00005E40 CD 28 5C 3472 CALL LWRD ?0440 - 00005E43 F1 3473 POP AF - 00005E44 F1 3474 POP AF - 00005E45 F1 3475 POP AF - 00005E46 E5 3476 PUSH HL - 00005E47 FD E1 3477 POP IY - 00005E49 01 0A 00 3478 LD BC,10 - 00005E4C 09 3479 ADD HL,BC - 00005E4D CB DE 3480 SET 3,(HL) - 00005E4F 01 F7 84 3481 LD BC,?0249 - 00005E52 FD E5 3482 PUSH IY - 00005E54 D1 3483 POP DE - 00005E55 3E 00 3484 LD A,BYTE3 Component_setlabel - 00005E57 21 A1 4C 3485 LD HL,LWRD Component_setlabel - 00005E5A CD FB 81 3486 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005E5D FD 36 1A D2 3487 LD (IY+26),LOW(Display_paint) - 00005E61 FD 36 1B 5C 3488 LD (IY+27),HIGH(Display_paint) - 00005E65 FD 36 1C 00 3489 LD (IY+28),BYTE3 Display_paint - 00005E69 FD 36 17 51 3490 LD (IY+23),LOW(Display_handler) - 00005E6D FD 36 18 5C 3491 LD (IY+24),HIGH(Display_handler) - 00005E71 FD 36 19 00 3492 LD (IY+25),BYTE3 Display_handler - 00005E75 C3 99 4C 3493 JP LWRD ?0418 - 00005E78 3494 Label_handler: - 00005E78 CD EF 81 3495 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00005E7B C3 A3 81 3496 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005E7E 3497 Label_paint: - 00005E7E C5 3498 PUSH BC - 00005E7F DD E5 3499 PUSH IX - 00005E81 F5 3500 PUSH AF - 00005E82 F5 3501 PUSH AF - 00005E83 D5 3502 PUSH DE - 00005E84 DD E1 3503 POP IX - 00005E86 21 02 00 3504 LD HL,2 - 00005E89 39 3505 ADD HL,SP - 00005E8A AF 3506 XOR A - 00005E8B 77 3507 LD (HL),A - 00005E8C 23 3508 INC HL - 00005E8D 77 3509 LD (HL),A - 00005E8E 2B 3510 DEC HL - 00005E8F 2B 3511 DEC HL - 00005E90 2B 3512 DEC HL - 00005E91 77 3513 LD (HL),A - 00005E92 23 3514 INC HL - 00005E93 77 3515 LD (HL),A - 00005E94 21 0A 00 3516 LD HL,10 - 00005E97 ED 4B 3F 87 3517 LD BC,(global) - 00005E9B 09 3518 ADD HL,BC - 00005E9C 7E 3519 LD A,(HL) - 00005E9D 23 3520 INC HL - 00005E9E 66 3521 LD H,(HL) - 00005E9F 6F 3522 LD L,A - 00005EA0 46 3523 LD B,(HL) - 00005EA1 23 3524 INC HL - 00005EA2 66 3525 LD H,(HL) - 00005EA3 68 3526 LD L,B - 00005EA4 E5 3527 PUSH HL - 00005EA5 21 0E 00 3528 LD HL,14 - 00005EA8 19 3529 ADD HL,DE - 00005EA9 4E 3530 LD C,(HL) - 00005EAA 23 3531 INC HL - 00005EAB 46 3532 LD B,(HL) - 00005EAC E1 3533 POP HL - 00005EAD A7 3534 AND A - 00005EAE ED 42 3535 SBC HL,BC - 00005EB0 28 03 3536 JR Z,?0251 - 00005EB2 3537 ?0250: - 00005EB2 CD 66 55 3538 CALL LWRD ?0473 - 00005EB5 3539 ?0251: - 00005EB5 DD CB 0A 46 3540 BIT 0,(IX+10) - 00005EB9 28 21 3541 JR Z,?0253 - 00005EBB 3542 ?0252: - 00005EBB 21 00 00 3543 LD HL,0 - 00005EBE 39 3544 ADD HL,SP - 00005EBF E5 3545 PUSH HL - 00005EC0 CD CD 53 3546 CALL LWRD ?0467 - 00005EC3 E1 3547 POP HL - 00005EC4 21 00 00 3548 LD HL,0 - 00005EC7 39 3549 ADD HL,SP - 00005EC8 4E 3550 LD C,(HL) - 00005EC9 23 3551 INC HL - 00005ECA 46 3552 LD B,(HL) - 00005ECB C5 3553 PUSH BC - 00005ECC 23 3554 INC HL - 00005ECD 4E 3555 LD C,(HL) - 00005ECE 23 3556 INC HL - 00005ECF 46 3557 LD B,(HL) - 00005ED0 DD E5 3558 PUSH IX - 00005ED2 D1 3559 POP DE - 00005ED3 3E 00 3560 LD A,BYTE3 Button_drawtext - 00005ED5 21 C2 56 3561 LD HL,LWRD Button_drawtext - 00005ED8 CD FB 81 3562 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005EDB E1 3563 POP HL - 00005EDC 3564 ?0253: - 00005EDC C3 4E 58 3565 JP LWRD ?0178 - 00005EDF 3566 Label_new: - 00005EDF CD 7A 82 3567 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005EE2 00 00 3568 DEFW 0 - 00005EE4 FD E5 3569 PUSH IY - 00005EE6 DD 6E 0C 3570 LD L,(IX+12) - 00005EE9 DD 66 0D 3571 LD H,(IX+13) - 00005EEC E5 3572 PUSH HL - 00005EED DD 6E 0A 3573 LD L,(IX+10) - 00005EF0 DD 66 0B 3574 LD H,(IX+11) - 00005EF3 E5 3575 PUSH HL - 00005EF4 CD FD 55 3576 CALL LWRD ?0438 - 00005EF7 F1 3577 POP AF - 00005EF8 F1 3578 POP AF - 00005EF9 E5 3579 PUSH HL - 00005EFA FD E1 3580 POP IY - 00005EFC 01 20 00 3581 LD BC,32 - 00005EFF 09 3582 ADD HL,BC - 00005F00 DD 4E 0E 3583 LD C,(IX+14) - 00005F03 71 3584 LD (HL),C - 00005F04 DD 46 0F 3585 LD B,(IX+15) - 00005F07 23 3586 INC HL - 00005F08 70 3587 LD (HL),B - 00005F09 FD 36 0A 01 3588 LD (IY+10),1 - 00005F0D FD 36 0B 00 3589 LD (IY+11),0 - 00005F11 FD 36 17 78 3590 LD (IY+23),LOW(Label_handler) - 00005F15 FD 36 18 5E 3591 LD (IY+24),HIGH(Label_handler) - 00005F19 FD 36 19 00 3592 LD (IY+25),BYTE3 Label_handler - 00005F1D FD 36 1A 7E 3593 LD (IY+26),LOW(Label_paint) - 00005F21 FD 36 1B 5E 3594 LD (IY+27),HIGH(Label_paint) - 00005F25 FD 36 1C 00 3595 LD (IY+28),BYTE3 Label_paint - 00005F29 FD 36 1D 77 3596 LD (IY+29),LOW(Button_add) - 00005F2D FD 36 1E 58 3597 LD (IY+30),HIGH(Button_add) - 00005F31 FD 36 1F 00 3598 LD (IY+31),BYTE3 Button_add - 00005F35 C3 99 4C 3599 JP LWRD ?0418 - 00005F38 3600 rootWindow_handler: - 00005F38 CD 7A 82 3601 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005F3B 00 00 3602 DEFW 0 - 00005F3D DD 6E 0A 3603 LD L,(IX+10) - 00005F40 DD 66 0B 3604 LD H,(IX+11) - 00005F43 E5 3605 PUSH HL - 00005F44 DD 5E 02 3606 LD E,(IX+2) - 00005F47 DD 56 03 3607 LD D,(IX+3) - 00005F4A 3E 00 3608 LD A,BYTE3 Window_handler - 00005F4C 21 1A 51 3609 LD HL,LWRD Window_handler - 00005F4F CD FB 81 3610 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005F52 E1 3611 POP HL - 00005F53 C3 A3 81 3612 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00005F56 3613 screenbuilder: - 00005F56 CD 7A 82 3614 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00005F59 CE FF 3615 DEFW 65486 - 00005F5B FD E5 3616 PUSH IY - 00005F5D DD 36 D8 00 3617 LD (IX-40),0 - 00005F61 21 00 00 3618 LD HL,0 - 00005F64 E5 3619 PUSH HL - 00005F65 C5 3620 PUSH BC - 00005F66 3E 00 3621 LD A,BYTE3 open - 00005F68 21 CD 7E 3622 LD HL,LWRD open - 00005F6B CD FB 81 3623 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005F6E F1 3624 POP AF - 00005F6F F1 3625 POP AF - 00005F70 DD 75 D4 3626 LD (IX-44),L - 00005F73 DD 74 D5 3627 LD (IX-43),H - 00005F76 DD 36 F0 2B 3628 LD (IX-16),43 - 00005F7A DD 36 F1 00 3629 LD (IX-15),0 - 00005F7E DD 36 F2 1A 3630 LD (IX-14),26 - 00005F82 DD 36 F3 00 3631 LD (IX-13),0 - 00005F86 3632 ?0256: - 00005F86 DD 36 F4 00 3633 LD (IX-12),0 - 00005F8A DD 7E D8 3634 LD A,(IX-40) - 00005F8D FE 73 3635 CP 115 - 00005F8F 20 18 3636 JR NZ,?0258 - 00005F91 3637 ?0257: - 00005F91 DD 6E D9 3638 LD L,(IX-39) - 00005F94 DD 66 DA 3639 LD H,(IX-38) - 00005F97 DD 75 F0 3640 LD (IX-16),L - 00005F9A DD 74 F1 3641 LD (IX-15),H - 00005F9D DD 6E DB 3642 LD L,(IX-37) - 00005FA0 DD 66 DC 3643 LD H,(IX-36) - 00005FA3 DD 75 F2 3644 LD (IX-14),L - 00005FA6 DD 74 F3 3645 LD (IX-13),H - 00005FA9 3646 ?0258: - 00005FA9 DD 7E D8 3647 LD A,(IX-40) - 00005FAC FE 42 3648 CP 66 - 00005FAE 28 07 3649 JR Z,?0261 - 00005FB0 DD 7E D8 3650 LD A,(IX-40) - 00005FB3 FE 4D 3651 CP 77 - 00005FB5 20 4F 3652 JR NZ,?0260 - 00005FB7 3653 ?0261: - 00005FB7 3654 ?0262: - 00005FB7 3655 ?0259: - 00005FB7 DD 4E DD 3656 LD C,(IX-35) - 00005FBA 06 00 3657 LD B,0 - 00005FBC C5 3658 PUSH BC - 00005FBD CD 16 63 3659 CALL LWRD ?0482 - 00005FC0 D5 3660 PUSH DE - 00005FC1 DD 4E DB 3661 LD C,(IX-37) - 00005FC4 DD 5E F0 3662 LD E,(IX-16) - 00005FC7 DD 56 F1 3663 LD D,(IX-15) - 00005FCA CD 1F 63 3664 CALL LWRD ?0483 - 00005FCD D5 3665 PUSH DE - 00005FCE DD 4E DA 3666 LD C,(IX-38) - 00005FD1 DD 5E F2 3667 LD E,(IX-14) - 00005FD4 DD 56 F3 3668 LD D,(IX-13) - 00005FD7 CD AE 81 3669 CALL LWRD ?S_MUL_L02 - 00005FDA D5 3670 PUSH DE - 00005FDB DD 5E D9 3671 LD E,(IX-39) - 00005FDE 50 3672 LD D,B - 00005FDF DD 4E F0 3673 LD C,(IX-16) - 00005FE2 DD 46 F1 3674 LD B,(IX-15) - 00005FE5 CD AE 81 3675 CALL LWRD ?S_MUL_L02 - 00005FE8 3E 00 3676 LD A,BYTE3 Button_new - 00005FEA 21 7D 58 3677 LD HL,LWRD Button_new - 00005FED C1 3678 POP BC - 00005FEE CD FB 81 3679 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00005FF1 F1 3680 POP AF - 00005FF2 F1 3681 POP AF - 00005FF3 F1 3682 POP AF - 00005FF4 E5 3683 PUSH HL - 00005FF5 FD E1 3684 POP IY - 00005FF7 DD 7E D8 3685 LD A,(IX-40) - 00005FFA FE 4D 3686 CP 77 - 00005FFC 20 04 3687 JR NZ,?0264 - 00005FFE 3688 ?0263: - 00005FFE FD CB 0A F6 3689 SET 6,(IY+10) - 00006002 3690 ?0264: - 00006002 DD 36 F4 01 3691 LD (IX-12),1 - 00006006 3692 ?0260: - 00006006 DD 7E D8 3693 LD A,(IX-40) - 00006009 FE 54 3694 CP 84 - 0000600B 20 44 3695 JR NZ,?0266 - 0000600D 3696 ?0265: - 0000600D DD 4E DD 3697 LD C,(IX-35) - 00006010 06 00 3698 LD B,0 - 00006012 C5 3699 PUSH BC - 00006013 CD 16 63 3700 CALL LWRD ?0482 - 00006016 D5 3701 PUSH DE - 00006017 DD 4E DB 3702 LD C,(IX-37) - 0000601A DD 5E F0 3703 LD E,(IX-16) - 0000601D DD 56 F1 3704 LD D,(IX-15) - 00006020 CD 1F 63 3705 CALL LWRD ?0483 - 00006023 D5 3706 PUSH DE - 00006024 DD 4E DA 3707 LD C,(IX-38) - 00006027 DD 5E F2 3708 LD E,(IX-14) - 0000602A DD 56 F3 3709 LD D,(IX-13) - 0000602D CD AE 81 3710 CALL LWRD ?S_MUL_L02 - 00006030 D5 3711 PUSH DE - 00006031 DD 5E D9 3712 LD E,(IX-39) - 00006034 50 3713 LD D,B - 00006035 DD 4E F0 3714 LD C,(IX-16) - 00006038 DD 46 F1 3715 LD B,(IX-15) - 0000603B CD AE 81 3716 CALL LWRD ?S_MUL_L02 - 0000603E 3E 00 3717 LD A,BYTE3 ToggleButton_new - 00006040 21 57 5A 3718 LD HL,LWRD ToggleButton_new - 00006043 C1 3719 POP BC - 00006044 CD FB 81 3720 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006047 F1 3721 POP AF - 00006048 F1 3722 POP AF - 00006049 F1 3723 POP AF - 0000604A E5 3724 PUSH HL - 0000604B FD E1 3725 POP IY - 0000604D DD 36 F4 01 3726 LD (IX-12),1 - 00006051 3727 ?0266: - 00006051 DD 7E D8 3728 LD A,(IX-40) - 00006054 FE 44 3729 CP 68 - 00006056 20 44 3730 JR NZ,?0268 - 00006058 3731 ?0267: - 00006058 DD 4E DD 3732 LD C,(IX-35) - 0000605B 06 00 3733 LD B,0 - 0000605D C5 3734 PUSH BC - 0000605E CD 16 63 3735 CALL LWRD ?0482 - 00006061 D5 3736 PUSH DE - 00006062 DD 4E DB 3737 LD C,(IX-37) - 00006065 DD 5E F0 3738 LD E,(IX-16) - 00006068 DD 56 F1 3739 LD D,(IX-15) - 0000606B CD 1F 63 3740 CALL LWRD ?0483 - 0000606E D5 3741 PUSH DE - 0000606F DD 4E DA 3742 LD C,(IX-38) - 00006072 DD 5E F2 3743 LD E,(IX-14) - 00006075 DD 56 F3 3744 LD D,(IX-13) - 00006078 CD AE 81 3745 CALL LWRD ?S_MUL_L02 - 0000607B D5 3746 PUSH DE - 0000607C DD 5E D9 3747 LD E,(IX-39) - 0000607F 50 3748 LD D,B - 00006080 DD 4E F0 3749 LD C,(IX-16) - 00006083 DD 46 F1 3750 LD B,(IX-15) - 00006086 CD AE 81 3751 CALL LWRD ?S_MUL_L02 - 00006089 3E 00 3752 LD A,BYTE3 Display_new - 0000608B 21 1E 5E 3753 LD HL,LWRD Display_new - 0000608E C1 3754 POP BC - 0000608F CD FB 81 3755 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006092 F1 3756 POP AF - 00006093 F1 3757 POP AF - 00006094 F1 3758 POP AF - 00006095 E5 3759 PUSH HL - 00006096 FD E1 3760 POP IY - 00006098 DD 36 F4 01 3761 LD (IX-12),1 - 0000609C 3762 ?0268: - 0000609C DD 7E D8 3763 LD A,(IX-40) - 0000609F FE 4C 3764 CP 76 - 000060A1 20 47 3765 JR NZ,?0270 - 000060A3 3766 ?0269: - 000060A3 21 0C 00 3767 LD HL,12 - 000060A6 39 3768 ADD HL,SP - 000060A7 01 12 00 3769 LD BC,18 - 000060AA 09 3770 ADD HL,BC - 000060AB E5 3771 PUSH HL - 000060AC CD 16 63 3772 CALL LWRD ?0482 - 000060AF D5 3773 PUSH DE - 000060B0 DD 4E DB 3774 LD C,(IX-37) - 000060B3 DD 5E F0 3775 LD E,(IX-16) - 000060B6 DD 56 F1 3776 LD D,(IX-15) - 000060B9 CD 1F 63 3777 CALL LWRD ?0483 - 000060BC D5 3778 PUSH DE - 000060BD DD 4E DA 3779 LD C,(IX-38) - 000060C0 DD 5E F2 3780 LD E,(IX-14) - 000060C3 DD 56 F3 3781 LD D,(IX-13) - 000060C6 CD AE 81 3782 CALL LWRD ?S_MUL_L02 - 000060C9 D5 3783 PUSH DE - 000060CA DD 5E D9 3784 LD E,(IX-39) - 000060CD 50 3785 LD D,B - 000060CE DD 4E F0 3786 LD C,(IX-16) - 000060D1 DD 46 F1 3787 LD B,(IX-15) - 000060D4 CD AE 81 3788 CALL LWRD ?S_MUL_L02 - 000060D7 3E 00 3789 LD A,BYTE3 Label_new - 000060D9 21 DF 5E 3790 LD HL,LWRD Label_new - 000060DC C1 3791 POP BC - 000060DD CD FB 81 3792 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000060E0 F1 3793 POP AF - 000060E1 F1 3794 POP AF - 000060E2 F1 3795 POP AF - 000060E3 E5 3796 PUSH HL - 000060E4 FD E1 3797 POP IY - 000060E6 DD 36 F4 01 3798 LD (IX-12),1 - 000060EA 3799 ?0270: - 000060EA DD 7E D8 3800 LD A,(IX-40) - 000060ED FE 41 3801 CP 65 - 000060EF 20 51 3802 JR NZ,?0272 - 000060F1 3803 ?0271: - 000060F1 21 26 00 3804 LD HL,38 - 000060F4 DD 4E 02 3805 LD C,(IX+2) - 000060F7 DD 46 03 3806 LD B,(IX+3) - 000060FA 09 3807 ADD HL,BC - 000060FB E5 3808 PUSH HL - 000060FC 21 2B 00 3809 LD HL,43 - 000060FF 39 3810 ADD HL,SP - 00006100 EB 3811 EX DE,HL - 00006101 E1 3812 POP HL - 00006102 73 3813 LD (HL),E - 00006103 23 3814 INC HL - 00006104 72 3815 LD (HL),D - 00006105 DD 6E DE 3816 LD L,(IX-34) - 00006108 DD 66 DF 3817 LD H,(IX-33) - 0000610B DD 75 F8 3818 LD (IX-8),L - 0000610E DD 74 F9 3819 LD (IX-7),H - 00006111 DD 6E E0 3820 LD L,(IX-32) - 00006114 DD 66 E1 3821 LD H,(IX-31) - 00006117 DD 75 FA 3822 LD (IX-6),L - 0000611A DD 74 FB 3823 LD (IX-5),H - 0000611D 21 16 00 3824 LD HL,22 - 00006120 39 3825 ADD HL,SP - 00006121 4E 3826 LD C,(HL) - 00006122 23 3827 INC HL - 00006123 46 3828 LD B,(HL) - 00006124 23 3829 INC HL - 00006125 5E 3830 LD E,(HL) - 00006126 23 3831 INC HL - 00006127 56 3832 LD D,(HL) - 00006128 DD 71 FC 3833 LD (IX-4),C - 0000612B DD 70 FD 3834 LD (IX-3),B - 0000612E DD 73 FE 3835 LD (IX-2),E - 00006131 DD 72 FF 3836 LD (IX-1),D - 00006134 DD 5E 02 3837 LD E,(IX+2) - 00006137 DD 56 03 3838 LD D,(IX+3) - 0000613A 3E 00 3839 LD A,BYTE3 root_actionhandler - 0000613C 21 26 63 3840 LD HL,LWRD root_actionhandler - 0000613F CD FB 81 3841 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006142 3842 ?0272: - 00006142 DD 7E D8 3843 LD A,(IX-40) - 00006145 FE 53 3844 CP 83 - 00006147 20 71 3845 JR NZ,?0274 - 00006149 3846 ?0273: - 00006149 21 0C 00 3847 LD HL,12 - 0000614C 39 3848 ADD HL,SP - 0000614D 4D 3849 LD C,L - 0000614E 44 3850 LD B,H - 0000614F DD 5E D4 3851 LD E,(IX-44) - 00006152 DD 56 D5 3852 LD D,(IX-43) - 00006155 3E 00 3853 LD A,BYTE3 read_stringtable - 00006157 21 5E 66 3854 LD HL,LWRD read_stringtable - 0000615A CD FB 81 3855 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000615D 21 26 00 3856 LD HL,38 - 00006160 DD 4E 02 3857 LD C,(IX+2) - 00006163 DD 46 03 3858 LD B,(IX+3) - 00006166 09 3859 ADD HL,BC - 00006167 E5 3860 PUSH HL - 00006168 11 04 00 3861 LD DE,4 - 0000616B CD 0E 63 3862 CALL LWRD ?0454 - 0000616E EB 3863 EX DE,HL - 0000616F E1 3864 POP HL - 00006170 73 3865 LD (HL),E - 00006171 23 3866 INC HL - 00006172 72 3867 LD (HL),D - 00006173 21 26 00 3868 LD HL,38 - 00006176 09 3869 ADD HL,BC - 00006177 56 3870 LD D,(HL) - 00006178 DD 72 F5 3871 LD (IX-11),D - 0000617B 23 3872 INC HL - 0000617C 66 3873 LD H,(HL) - 0000617D DD 74 F6 3874 LD (IX-10),H - 00006180 21 24 00 3875 LD HL,36 - 00006183 09 3876 ADD HL,BC - 00006184 36 04 3877 LD (HL),4 - 00006186 23 3878 INC HL - 00006187 36 00 3879 LD (HL),0 - 00006189 6A 3880 LD L,D - 0000618A DD 66 F6 3881 LD H,(IX-10) - 0000618D 23 3882 INC HL - 0000618E 23 3883 INC HL - 0000618F E5 3884 PUSH HL - 00006190 21 08 00 3885 LD HL,8 - 00006193 ED 4B 3F 87 3886 LD BC,(global) - 00006197 09 3887 ADD HL,BC - 00006198 5E 3888 LD E,(HL) - 00006199 23 3889 INC HL - 0000619A 56 3890 LD D,(HL) - 0000619B E1 3891 POP HL - 0000619C 73 3892 LD (HL),E - 0000619D 23 3893 INC HL - 0000619E 72 3894 LD (HL),D - 0000619F 21 06 00 3895 LD HL,6 - 000061A2 ED 4B 3F 87 3896 LD BC,(global) - 000061A6 09 3897 ADD HL,BC - 000061A7 46 3898 LD B,(HL) - 000061A8 23 3899 INC HL - 000061A9 66 3900 LD H,(HL) - 000061AA 68 3901 LD L,B - 000061AB E5 3902 PUSH HL - 000061AC DD 6E F5 3903 LD L,(IX-11) - 000061AF DD 66 F6 3904 LD H,(IX-10) - 000061B2 C1 3905 POP BC - 000061B3 71 3906 LD (HL),C - 000061B4 23 3907 INC HL - 000061B5 70 3908 LD (HL),B - 000061B6 DD 36 F4 00 3909 LD (IX-12),0 - 000061BA 3910 ?0274: - 000061BA AF 3911 XOR A - 000061BB DD B6 F4 3912 OR (IX-12) - 000061BE CA BA 62 3913 JP Z,?0276 - 000061C1 3914 ?0275: - 000061C1 DD 7E DE 3915 LD A,(IX-34) - 000061C4 DD B6 DF 3916 OR (IX-33) - 000061C7 28 69 3917 JR Z,?0278 - 000061C9 3918 ?0277: - 000061C9 FD CB 0A EE 3919 SET 5,(IY+10) - 000061CD FD 36 24 0B 3920 LD (IY+36),11 - 000061D1 FD 36 25 00 3921 LD (IY+37),0 - 000061D5 11 0B 00 3922 LD DE,11 - 000061D8 CD 0E 63 3923 CALL LWRD ?0454 - 000061DB FD 75 26 3924 LD (IY+38),L - 000061DE FD 74 27 3925 LD (IY+39),H - 000061E1 FD 6E 26 3926 LD L,(IY+38) - 000061E4 DD 75 D0 3927 LD (IX-48),L - 000061E7 FD 66 27 3928 LD H,(IY+39) - 000061EA DD 74 D1 3929 LD (IX-47),H - 000061ED 36 26 3930 LD (HL),LOW(root_actionhandler) - 000061EF 23 3931 INC HL - 000061F0 36 63 3932 LD (HL),HIGH(root_actionhandler) - 000061F2 23 3933 INC HL - 000061F3 36 00 3934 LD (HL),BYTE3 root_actionhandler - 000061F5 DD 6E D0 3935 LD L,(IX-48) - 000061F8 DD 66 D1 3936 LD H,(IX-47) - 000061FB 23 3937 INC HL - 000061FC 23 3938 INC HL - 000061FD 23 3939 INC HL - 000061FE DD 4E DE 3940 LD C,(IX-34) - 00006201 71 3941 LD (HL),C - 00006202 DD 46 DF 3942 LD B,(IX-33) - 00006205 23 3943 INC HL - 00006206 70 3944 LD (HL),B - 00006207 21 05 00 3945 LD HL,5 - 0000620A DD 4E D0 3946 LD C,(IX-48) - 0000620D DD 46 D1 3947 LD B,(IX-47) - 00006210 09 3948 ADD HL,BC - 00006211 DD 5E E0 3949 LD E,(IX-32) - 00006214 73 3950 LD (HL),E - 00006215 DD 56 E1 3951 LD D,(IX-31) - 00006218 23 3952 INC HL - 00006219 72 3953 LD (HL),D - 0000621A 21 07 00 3954 LD HL,7 - 0000621D 09 3955 ADD HL,BC - 0000621E E5 3956 PUSH HL - 0000621F 21 18 00 3957 LD HL,24 - 00006222 39 3958 ADD HL,SP - 00006223 5E 3959 LD E,(HL) - 00006224 23 3960 INC HL - 00006225 56 3961 LD D,(HL) - 00006226 23 3962 INC HL - 00006227 4E 3963 LD C,(HL) - 00006228 23 3964 INC HL - 00006229 46 3965 LD B,(HL) - 0000622A E1 3966 POP HL - 0000622B 73 3967 LD (HL),E - 0000622C 23 3968 INC HL - 0000622D 72 3969 LD (HL),D - 0000622E 23 3970 INC HL - 0000622F 71 3971 LD (HL),C - 00006230 23 3972 INC HL - 00006231 70 3973 LD (HL),B - 00006232 3974 ?0278: - 00006232 DD 7E E6 3975 LD A,(IX-26) - 00006235 DD B6 E7 3976 OR (IX-25) - 00006238 28 0C 3977 JR Z,?0280 - 0000623A 3978 ?0279: - 0000623A DD 6E E6 3979 LD L,(IX-26) - 0000623D FD 75 0A 3980 LD (IY+10),L - 00006240 DD 66 E7 3981 LD H,(IX-25) - 00006243 FD 74 0B 3982 LD (IY+11),H - 00006246 3983 ?0280: - 00006246 DD 6E E8 3984 LD L,(IX-24) - 00006249 FD 75 0E 3985 LD (IY+14),L - 0000624C DD 66 E9 3986 LD H,(IX-23) - 0000624F FD 74 0F 3987 LD (IY+15),H - 00006252 DD 6E EA 3988 LD L,(IX-22) - 00006255 FD 75 20 3989 LD (IY+32),L - 00006258 DD 7E EB 3990 LD A,(IX-21) - 0000625B E6 0F 3991 AND 15 - 0000625D FD 77 21 3992 LD (IY+33),A - 00006260 FD 7E 20 3993 LD A,(IY+32) - 00006263 FD B6 21 3994 OR (IY+33) - 00006266 20 16 3995 JR NZ,?0282 - 00006268 3996 ?0281: - 00006268 11 14 00 3997 LD DE,20 - 0000626B CD 0E 63 3998 CALL LWRD ?0454 - 0000626E FD 75 20 3999 LD (IY+32),L - 00006271 FD 74 21 4000 LD (IY+33),H - 00006274 FD 6E 20 4001 LD L,(IY+32) - 00006277 FD 66 21 4002 LD H,(IY+33) - 0000627A 36 00 4003 LD (HL),0 - 0000627C 18 04 4004 JR ?0283 - 0000627E 4005 ?0282: - 0000627E FD CB 0B F6 4006 SET 6,(IY+11) - 00006282 4007 ?0283: - 00006282 DD 7E EB 4008 LD A,(IX-21) - 00006285 2E 00 4009 LD L,0 - 00006287 4D 4010 LD C,L - 00006288 E6 F0 4011 AND 240 - 0000628A 47 4012 LD B,A - 0000628B 26 10 4013 LD H,16 - 0000628D ED 42 4014 SBC HL,BC - 0000628F 30 10 4015 JR NC,?0285 - 00006291 4016 ?0284: - 00006291 DD 6E EA 4017 LD L,(IX-22) - 00006294 DD 7E EB 4018 LD A,(IX-21) - 00006297 E6 0F 4019 AND 15 - 00006299 67 4020 LD H,A - 0000629A 23 4021 INC HL - 0000629B FD 75 22 4022 LD (IY+34),L - 0000629E FD 74 23 4023 LD (IY+35),H - 000062A1 4024 ?0285: - 000062A1 FD E5 4025 PUSH IY - 000062A3 DD 5E 02 4026 LD E,(IX+2) - 000062A6 4B 4027 LD C,E - 000062A7 DD 56 03 4028 LD D,(IX+3) - 000062AA 42 4029 LD B,D - 000062AB 21 1D 00 4030 LD HL,29 - 000062AE 09 4031 ADD HL,BC - 000062AF 4E 4032 LD C,(HL) - 000062B0 23 4033 INC HL - 000062B1 46 4034 LD B,(HL) - 000062B2 23 4035 INC HL - 000062B3 7E 4036 LD A,(HL) - 000062B4 69 4037 LD L,C - 000062B5 60 4038 LD H,B - 000062B6 C1 4039 POP BC - 000062B7 CD FB 81 4040 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000062BA 4041 ?0276: - 000062BA 21 14 00 4042 LD HL,20 - 000062BD E5 4043 PUSH HL - 000062BE 2E 0E 4044 LD L,14 - 000062C0 39 4045 ADD HL,SP - 000062C1 4D 4046 LD C,L - 000062C2 44 4047 LD B,H - 000062C3 DD 5E D4 4048 LD E,(IX-44) - 000062C6 DD 56 D5 4049 LD D,(IX-43) - 000062C9 CD 06 63 4050 CALL LWRD ?0441 - 000062CC F1 4051 POP AF - 000062CD 3E 14 4052 LD A,20 - 000062CF AD 4053 XOR L - 000062D0 B4 4054 OR H - 000062D1 CA 86 5F 4055 JP Z,?0256 - 000062D4 4056 ?0254: - 000062D4 DD 5E D4 4057 LD E,(IX-44) - 000062D7 DD 56 D5 4058 LD D,(IX-43) - 000062DA 3E 00 4059 LD A,BYTE3 close - 000062DC 21 96 73 4060 LD HL,LWRD close - 000062DF CD FB 81 4061 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000062E2 DD 5E 02 4062 LD E,(IX+2) - 000062E5 DD 56 03 4063 LD D,(IX+3) - 000062E8 3E 00 4064 LD A,BYTE3 Component_linkstringtable - 000062EA 21 67 50 4065 LD HL,LWRD Component_linkstringtable - 000062ED CD FB 81 4066 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000062F0 DD 5E 02 4067 LD E,(IX+2) - 000062F3 4B 4068 LD C,E - 000062F4 DD 56 03 4069 LD D,(IX+3) - 000062F7 42 4070 LD B,D - 000062F8 21 1A 00 4071 LD HL,26 - 000062FB 09 4072 ADD HL,BC - 000062FC 4E 4073 LD C,(HL) - 000062FD 23 4074 INC HL - 000062FE 46 4075 LD B,(HL) - 000062FF 23 4076 INC HL - 00006300 7E 4077 LD A,(HL) - 00006301 69 4078 LD L,C - 00006302 60 4079 LD H,B - 00006303 C3 67 57 4080 JP LWRD ?0424 - 00006306 4081 ?0441: - 00006306 3E 01 4082 LD A,BYTE3 _read - 00006308 21 5C 42 4083 LD HL,LWRD _read - 0000630B C3 FB 81 4084 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000630E 4085 ?0454: - 0000630E 3E 01 4086 LD A,BYTE3 malloc - 00006310 21 00 40 4087 LD HL,LWRD malloc - 00006313 C3 FB 81 4088 JP LWRD ?BANK_CALL_DIRECT_L08 - 00006316 4089 ?0482: - 00006316 DD 4E DC 4090 LD C,(IX-36) - 00006319 DD 5E F2 4091 LD E,(IX-14) - 0000631C DD 56 F3 4092 LD D,(IX-13) - 0000631F 4093 ?0483: - 0000631F CD AE 81 4094 CALL LWRD ?S_MUL_L02 - 00006322 1B 4095 DEC DE - 00006323 1B 4096 DEC DE - 00006324 1B 4097 DEC DE - 00006325 C9 4098 RET - 00006326 4099 root_actionhandler: - 00006326 CD 7A 82 4100 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00006329 EA FF 4101 DEFW 65514 - 0000632B FD E5 4102 PUSH IY - 0000632D DD 6E 02 4103 LD L,(IX+2) - 00006330 DD 66 03 4104 LD H,(IX+3) - 00006333 E5 4105 PUSH HL - 00006334 FD E1 4106 POP IY - 00006336 21 06 00 4107 LD HL,6 - 00006339 39 4108 ADD HL,SP - 0000633A EB 4109 EX DE,HL - 0000633B 21 D5 84 4110 LD HL,?0286 - 0000633E 01 0E 00 4111 LD BC,14 - 00006341 ED B0 4112 LDIR - 00006343 FD 6E 26 4113 LD L,(IY+38) - 00006346 DD 75 EA 4114 LD (IX-22),L - 00006349 FD 66 27 4115 LD H,(IY+39) - 0000634C DD 74 EB 4116 LD (IX-21),H - 0000634F 23 4117 INC HL - 00006350 23 4118 INC HL - 00006351 23 4119 INC HL - 00006352 3E 01 4120 LD A,1 - 00006354 AE 4121 XOR (HL) - 00006355 23 4122 INC HL - 00006356 B6 4123 OR (HL) - 00006357 20 08 4124 JR NZ,?0288 - 00006359 4125 ?0287: - 00006359 C5 4126 PUSH BC - 0000635A 01 01 04 4127 LD BC,1025 - 0000635D CD BE 53 4128 CALL LWRD ?0463 - 00006360 E1 4129 POP HL - 00006361 4130 ?0288: - 00006361 DD 6E EA 4131 LD L,(IX-22) - 00006364 DD 66 EB 4132 LD H,(IX-21) - 00006367 23 4133 INC HL - 00006368 23 4134 INC HL - 00006369 23 4135 INC HL - 0000636A 46 4136 LD B,(HL) - 0000636B 23 4137 INC HL - 0000636C 66 4138 LD H,(HL) - 0000636D 68 4139 LD L,B - 0000636E CB 85 4140 RES 0,L - 00006370 3E 02 4141 LD A,2 - 00006372 AD 4142 XOR L - 00006373 B4 4143 OR H - 00006374 C2 91 64 4144 JP NZ,?0290 - 00006377 4145 ?0289: - 00006377 6F 4146 LD L,A - 00006378 67 4147 LD H,A - 00006379 E5 4148 PUSH HL - 0000637A E5 4149 PUSH HL - 0000637B 01 01 00 4150 LD BC,1 - 0000637E FD 5E 11 4151 LD E,(IY+17) - 00006381 FD 56 12 4152 LD D,(IY+18) - 00006384 3E 00 4153 LD A,BYTE3 Component_changestate_children - 00006386 21 FE 4F 4154 LD HL,LWRD Component_changestate_children - 00006389 CD FB 81 4155 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000638C E1 4156 POP HL - 0000638D E1 4157 POP HL - 0000638E FD 6E 11 4158 LD L,(IY+17) - 00006391 FD 66 12 4159 LD H,(IY+18) - 00006394 01 08 00 4160 LD BC,8 - 00006397 09 4161 ADD HL,BC - 00006398 4E 4162 LD C,(HL) - 00006399 23 4163 INC HL - 0000639A 46 4164 LD B,(HL) - 0000639B C5 4165 PUSH BC - 0000639C FD 6E 11 4166 LD L,(IY+17) - 0000639F FD 66 12 4167 LD H,(IY+18) - 000063A2 01 06 00 4168 LD BC,6 - 000063A5 09 4169 ADD HL,BC - 000063A6 4E 4170 LD C,(HL) - 000063A7 23 4171 INC HL - 000063A8 46 4172 LD B,(HL) - 000063A9 C5 4173 PUSH BC - 000063AA 01 00 00 4174 LD BC,0 - 000063AD 59 4175 LD E,C - 000063AE 50 4176 LD D,B - 000063AF 3E 00 4177 LD A,BYTE3 Window_new - 000063B1 21 B9 55 4178 LD HL,LWRD Window_new - 000063B4 CD FB 81 4179 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000063B7 F1 4180 POP AF - 000063B8 F1 4181 POP AF - 000063B9 DD 75 EC 4182 LD (IX-20),L - 000063BC DD 74 ED 4183 LD (IX-19),H - 000063BF 01 0A 00 4184 LD BC,10 - 000063C2 09 4185 ADD HL,BC - 000063C3 36 03 4186 LD (HL),3 - 000063C5 23 4187 INC HL - 000063C6 70 4188 LD (HL),B - 000063C7 DD 6E EA 4189 LD L,(IX-22) - 000063CA DD 66 EB 4190 LD H,(IX-21) - 000063CD 23 4191 INC HL - 000063CE 23 4192 INC HL - 000063CF 23 4193 INC HL - 000063D0 CB 46 4194 BIT 0,(HL) - 000063D2 28 0C 4195 JR Z,?0292 - 000063D4 4196 ?0291: - 000063D4 69 4197 LD L,C - 000063D5 60 4198 LD H,B - 000063D6 DD 4E EC 4199 LD C,(IX-20) - 000063D9 DD 46 ED 4200 LD B,(IX-19) - 000063DC 09 4201 ADD HL,BC - 000063DD 23 4202 INC HL - 000063DE CB EE 4203 SET 5,(HL) - 000063E0 4204 ?0292: - 000063E0 21 17 00 4205 LD HL,23 - 000063E3 DD 4E EC 4206 LD C,(IX-20) - 000063E6 DD 46 ED 4207 LD B,(IX-19) - 000063E9 09 4208 ADD HL,BC - 000063EA 36 38 4209 LD (HL),LOW(rootWindow_handler) - 000063EC 23 4210 INC HL - 000063ED 36 5F 4211 LD (HL),HIGH(rootWindow_handler) - 000063EF 23 4212 INC HL - 000063F0 36 00 4213 LD (HL),BYTE3 rootWindow_handler - 000063F2 21 1A 00 4214 LD HL,26 - 000063F5 09 4215 ADD HL,BC - 000063F6 36 74 4216 LD (HL),LOW(Root_paint) - 000063F8 23 4217 INC HL - 000063F9 36 55 4218 LD (HL),HIGH(Root_paint) - 000063FB 23 4219 INC HL - 000063FC 36 00 4220 LD (HL),BYTE3 Root_paint - 000063FE 21 07 00 4221 LD HL,7 - 00006401 DD 5E EA 4222 LD E,(IX-22) - 00006404 DD 56 EB 4223 LD D,(IX-21) - 00006407 19 4224 ADD HL,DE - 00006408 5E 4225 LD E,(HL) - 00006409 EB 4226 EX DE,HL - 0000640A DD 75 F3 4227 LD (IX-13),L - 0000640D 21 07 00 4228 LD HL,7 - 00006410 DD 4E EA 4229 LD C,(IX-22) - 00006413 DD 46 EB 4230 LD B,(IX-21) - 00006416 09 4231 ADD HL,BC - 00006417 5E 4232 LD E,(HL) - 00006418 23 4233 INC HL - 00006419 56 4234 LD D,(HL) - 0000641A 23 4235 INC HL - 0000641B 4E 4236 LD C,(HL) - 0000641C 23 4237 INC HL - 0000641D 46 4238 LD B,(HL) - 0000641E EB 4239 EX DE,HL - 0000641F 3E 08 4240 LD A,8 - 00006421 CD 15 83 4241 CALL LWRD ?SL_RSH_L03 - 00006424 DD 75 F4 4242 LD (IX-12),L - 00006427 21 07 00 4243 LD HL,7 - 0000642A DD 4E EA 4244 LD C,(IX-22) - 0000642D DD 46 EB 4245 LD B,(IX-21) - 00006430 09 4246 ADD HL,BC - 00006431 5E 4247 LD E,(HL) - 00006432 23 4248 INC HL - 00006433 56 4249 LD D,(HL) - 00006434 23 4250 INC HL - 00006435 4E 4251 LD C,(HL) - 00006436 23 4252 INC HL - 00006437 46 4253 LD B,(HL) - 00006438 EB 4254 EX DE,HL - 00006439 3E 10 4255 LD A,16 - 0000643B CD 15 83 4256 CALL LWRD ?SL_RSH_L03 - 0000643E DD 75 F5 4257 LD (IX-11),L - 00006441 21 07 00 4258 LD HL,7 - 00006444 DD 4E EA 4259 LD C,(IX-22) - 00006447 DD 46 EB 4260 LD B,(IX-21) - 0000644A 09 4261 ADD HL,BC - 0000644B 5E 4262 LD E,(HL) - 0000644C 23 4263 INC HL - 0000644D 56 4264 LD D,(HL) - 0000644E 23 4265 INC HL - 0000644F 4E 4266 LD C,(HL) - 00006450 23 4267 INC HL - 00006451 46 4268 LD B,(HL) - 00006452 EB 4269 EX DE,HL - 00006453 3E 18 4270 LD A,24 - 00006455 CD 15 83 4271 CALL LWRD ?SL_RSH_L03 - 00006458 DD 75 F6 4272 LD (IX-10),L - 0000645B 21 06 00 4273 LD HL,6 - 0000645E 39 4274 ADD HL,SP - 0000645F 4D 4275 LD C,L - 00006460 44 4276 LD B,H - 00006461 DD 5E EC 4277 LD E,(IX-20) - 00006464 DD 56 ED 4278 LD D,(IX-19) - 00006467 3E 00 4279 LD A,BYTE3 screenbuilder - 00006469 21 56 5F 4280 LD HL,LWRD screenbuilder - 0000646C CD FB 81 4281 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000646F DD 4E EC 4282 LD C,(IX-20) - 00006472 DD 46 ED 4283 LD B,(IX-19) - 00006475 C5 4284 PUSH BC - 00006476 FD 5E 11 4285 LD E,(IY+17) - 00006479 FD 56 12 4286 LD D,(IY+18) - 0000647C FD 6E 11 4287 LD L,(IY+17) - 0000647F FD 66 12 4288 LD H,(IY+18) - 00006482 01 1D 00 4289 LD BC,29 - 00006485 09 4290 ADD HL,BC - 00006486 4E 4291 LD C,(HL) - 00006487 23 4292 INC HL - 00006488 46 4293 LD B,(HL) - 00006489 23 4294 INC HL - 0000648A 7E 4295 LD A,(HL) - 0000648B 69 4296 LD L,C - 0000648C 60 4297 LD H,B - 0000648D C1 4298 POP BC - 0000648E CD FB 81 4299 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006491 4300 ?0290: - 00006491 DD 6E EA 4301 LD L,(IX-22) - 00006494 DD 66 EB 4302 LD H,(IX-21) - 00006497 23 4303 INC HL - 00006498 23 4304 INC HL - 00006499 23 4305 INC HL - 0000649A 3E 04 4306 LD A,4 - 0000649C AE 4307 XOR (HL) - 0000649D 23 4308 INC HL - 0000649E B6 4309 OR (HL) - 0000649F C2 2F 66 4310 JP NZ,?0294 - 000064A2 4311 ?0293: - 000064A2 21 01 00 4312 LD HL,1 - 000064A5 E5 4313 PUSH HL - 000064A6 FD 6E 11 4314 LD L,(IY+17) - 000064A9 FD 66 12 4315 LD H,(IY+18) - 000064AC 01 08 00 4316 LD BC,8 - 000064AF 09 4317 ADD HL,BC - 000064B0 46 4318 LD B,(HL) - 000064B1 23 4319 INC HL - 000064B2 66 4320 LD H,(HL) - 000064B3 68 4321 LD L,B - 000064B4 01 F6 FF 4322 LD BC,65526 - 000064B7 09 4323 ADD HL,BC - 000064B8 E5 4324 PUSH HL - 000064B9 FD 6E 11 4325 LD L,(IY+17) - 000064BC FD 66 12 4326 LD H,(IY+18) - 000064BF 01 06 00 4327 LD BC,6 - 000064C2 09 4328 ADD HL,BC - 000064C3 46 4329 LD B,(HL) - 000064C4 23 4330 INC HL - 000064C5 66 4331 LD H,(HL) - 000064C6 68 4332 LD L,B - 000064C7 01 F6 FF 4333 LD BC,65526 - 000064CA 09 4334 ADD HL,BC - 000064CB E5 4335 PUSH HL - 000064CC 01 05 00 4336 LD BC,5 - 000064CF 59 4337 LD E,C - 000064D0 50 4338 LD D,B - 000064D1 3E 00 4339 LD A,BYTE3 Dialog_new - 000064D3 21 62 5B 4340 LD HL,LWRD Dialog_new - 000064D6 CD FB 81 4341 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000064D9 F1 4342 POP AF - 000064DA F1 4343 POP AF - 000064DB F1 4344 POP AF - 000064DC DD 75 EC 4345 LD (IX-20),L - 000064DF DD 74 ED 4346 LD (IX-19),H - 000064E2 01 0A 00 4347 LD BC,10 - 000064E5 09 4348 ADD HL,BC - 000064E6 36 03 4349 LD (HL),3 - 000064E8 23 4350 INC HL - 000064E9 36 10 4351 LD (HL),16 - 000064EB 21 0E 00 4352 LD HL,14 - 000064EE DD 4E EC 4353 LD C,(IX-20) - 000064F1 DD 46 ED 4354 LD B,(IX-19) - 000064F4 09 4355 ADD HL,BC - 000064F5 36 30 4356 LD (HL),48 - 000064F7 23 4357 INC HL - 000064F8 36 00 4358 LD (HL),0 - 000064FA AF 4359 XOR A - 000064FB DD 77 FE 4360 LD (IX-2),A - 000064FE DD 77 FF 4361 LD (IX-1),A - 00006501 4362 ?0296: - 00006501 21 05 00 4363 LD HL,5 - 00006504 DD 4E EA 4364 LD C,(IX-22) - 00006507 DD 46 EB 4365 LD B,(IX-21) - 0000650A 09 4366 ADD HL,BC - 0000650B 5E 4367 LD E,(HL) - 0000650C 23 4368 INC HL - 0000650D 56 4369 LD D,(HL) - 0000650E 06 0C 4370 LD B,12 - 00006510 CD 87 83 4371 CALL LWRD ?SS_RSH_L02 - 00006513 4B 4372 LD C,E - 00006514 42 4373 LD B,D - 00006515 DD 6E FE 4374 LD L,(IX-2) - 00006518 DD 66 FF 4375 LD H,(IX-1) - 0000651B CD C8 82 4376 CALL LWRD ?SS_CMP_L02 - 0000651E 30 04 4377 JR NC,?0367 - 00006520 3E 01 4378 LD A,1 - 00006522 18 01 4379 JR ?0368 - 00006524 4380 ?0367: - 00006524 AF 4381 XOR A - 00006525 4382 ?0368: - 00006525 E6 0F 4383 AND 15 - 00006527 CA C3 65 4384 JP Z,?0295 - 0000652A 4385 ?0297: - 0000652A 21 05 00 4386 LD HL,5 - 0000652D DD 4E EA 4387 LD C,(IX-22) - 00006530 DD 46 EB 4388 LD B,(IX-21) - 00006533 09 4389 ADD HL,BC - 00006534 46 4390 LD B,(HL) - 00006535 23 4391 INC HL - 00006536 7E 4392 LD A,(HL) - 00006537 68 4393 LD L,B - 00006538 E6 0F 4394 AND 15 - 0000653A 67 4395 LD H,A - 0000653B DD 4E FE 4396 LD C,(IX-2) - 0000653E DD 46 FF 4397 LD B,(IX-1) - 00006541 09 4398 ADD HL,BC - 00006542 29 4399 ADD HL,HL - 00006543 E5 4400 PUSH HL - 00006544 21 08 00 4401 LD HL,8 - 00006547 ED 5B 3F 87 4402 LD DE,(global) - 0000654B 19 4403 ADD HL,DE - 0000654C 5E 4404 LD E,(HL) - 0000654D 23 4405 INC HL - 0000654E 56 4406 LD D,(HL) - 0000654F E1 4407 POP HL - 00006550 19 4408 ADD HL,DE - 00006551 2B 4409 DEC HL - 00006552 2B 4410 DEC HL - 00006553 5E 4411 LD E,(HL) - 00006554 23 4412 INC HL - 00006555 56 4413 LD D,(HL) - 00006556 D5 4414 PUSH DE - 00006557 21 10 00 4415 LD HL,16 - 0000655A E5 4416 PUSH HL - 0000655B 2E 06 4417 LD L,6 - 0000655D DD 5E EC 4418 LD E,(IX-20) - 00006560 DD 56 ED 4419 LD D,(IX-19) - 00006563 19 4420 ADD HL,DE - 00006564 6E 4421 LD L,(HL) - 00006565 26 00 4422 LD H,0 - 00006567 01 F0 FF 4423 LD BC,65520 - 0000656A 09 4424 ADD HL,BC - 0000656B E5 4425 PUSH HL - 0000656C DD 6E FE 4426 LD L,(IX-2) - 0000656F DD 66 FF 4427 LD H,(IX-1) - 00006572 29 4428 ADD HL,HL - 00006573 29 4429 ADD HL,HL - 00006574 4D 4430 LD C,L - 00006575 44 4431 LD B,H - 00006576 29 4432 ADD HL,HL - 00006577 09 4433 ADD HL,BC - 00006578 01 14 00 4434 LD BC,20 - 0000657B 09 4435 ADD HL,BC - 0000657C 4D 4436 LD C,L - 0000657D 44 4437 LD B,H - 0000657E 11 08 00 4438 LD DE,8 - 00006581 3E 00 4439 LD A,BYTE3 Label_new - 00006583 21 DF 5E 4440 LD HL,LWRD Label_new - 00006586 CD FB 81 4441 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006589 F1 4442 POP AF - 0000658A F1 4443 POP AF - 0000658B F1 4444 POP AF - 0000658C DD 75 FC 4445 LD (IX-4),L - 0000658F DD 74 FD 4446 LD (IX-3),H - 00006592 01 0E 00 4447 LD BC,14 - 00006595 09 4448 ADD HL,BC - 00006596 36 30 4449 LD (HL),48 - 00006598 23 4450 INC HL - 00006599 70 4451 LD (HL),B - 0000659A DD 4E FC 4452 LD C,(IX-4) - 0000659D DD 46 FD 4453 LD B,(IX-3) - 000065A0 C5 4454 PUSH BC - 000065A1 DD 5E EC 4455 LD E,(IX-20) - 000065A4 4B 4456 LD C,E - 000065A5 DD 56 ED 4457 LD D,(IX-19) - 000065A8 42 4458 LD B,D - 000065A9 21 1D 00 4459 LD HL,29 - 000065AC 09 4460 ADD HL,BC - 000065AD 4E 4461 LD C,(HL) - 000065AE 23 4462 INC HL - 000065AF 46 4463 LD B,(HL) - 000065B0 23 4464 INC HL - 000065B1 7E 4465 LD A,(HL) - 000065B2 69 4466 LD L,C - 000065B3 60 4467 LD H,B - 000065B4 C1 4468 POP BC - 000065B5 CD FB 81 4469 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000065B8 DD 34 FE 4470 INC (IX-2) - 000065BB 20 03 4471 JR NZ,?0369 - 000065BD DD 34 FF 4472 INC (IX-1) - 000065C0 4473 ?0369: - 000065C0 C3 01 65 4474 JP LWRD ?0296 - 000065C3 4475 ?0295: - 000065C3 01 F8 84 4476 LD BC,?0299 - 000065C6 DD 5E EC 4477 LD E,(IX-20) - 000065C9 DD 56 ED 4478 LD D,(IX-19) - 000065CC 3E 00 4479 LD A,BYTE3 Component_setlabel - 000065CE 21 A1 4C 4480 LD HL,LWRD Component_setlabel - 000065D1 CD FB 81 4481 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000065D4 01 FF 00 4482 LD BC,255 - 000065D7 CD 50 66 4483 CALL LWRD ?0476 - 000065DA 01 0E 00 4484 LD BC,14 - 000065DD 09 4485 ADD HL,BC - 000065DE 36 30 4486 LD (HL),48 - 000065E0 23 4487 INC HL - 000065E1 70 4488 LD (HL),B - 000065E2 0E FE 4489 LD C,254 - 000065E4 CD 50 66 4490 CALL LWRD ?0476 - 000065E7 EB 4491 EX DE,HL - 000065E8 CD D7 4F 4492 CALL LWRD ?0453 - 000065EB DD 4E EC 4493 LD C,(IX-20) - 000065EE DD 46 ED 4494 LD B,(IX-19) - 000065F1 C5 4495 PUSH BC - 000065F2 FD 5E 11 4496 LD E,(IY+17) - 000065F5 FD 56 12 4497 LD D,(IY+18) - 000065F8 FD 6E 11 4498 LD L,(IY+17) - 000065FB FD 66 12 4499 LD H,(IY+18) - 000065FE 01 1D 00 4500 LD BC,29 - 00006601 09 4501 ADD HL,BC - 00006602 4E 4502 LD C,(HL) - 00006603 23 4503 INC HL - 00006604 46 4504 LD B,(HL) - 00006605 23 4505 INC HL - 00006606 7E 4506 LD A,(HL) - 00006607 69 4507 LD L,C - 00006608 60 4508 LD H,B - 00006609 C1 4509 POP BC - 0000660A CD FB 81 4510 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000660D 21 00 00 4511 LD HL,0 - 00006610 E5 4512 PUSH HL - 00006611 FD 5E 11 4513 LD E,(IY+17) - 00006614 FD 56 12 4514 LD D,(IY+18) - 00006617 FD 6E 11 4515 LD L,(IY+17) - 0000661A FD 66 12 4516 LD H,(IY+18) - 0000661D 01 17 00 4517 LD BC,23 - 00006620 09 4518 ADD HL,BC - 00006621 4E 4519 LD C,(HL) - 00006622 23 4520 INC HL - 00006623 46 4521 LD B,(HL) - 00006624 23 4522 INC HL - 00006625 7E 4523 LD A,(HL) - 00006626 69 4524 LD L,C - 00006627 60 4525 LD H,B - 00006628 01 03 01 4526 LD BC,259 - 0000662B CD FB 81 4527 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000662E E1 4528 POP HL - 0000662F 4529 ?0294: - 0000662F 21 10 00 4530 LD HL,16 - 00006632 ED 4B 3F 87 4531 LD BC,(global) - 00006636 09 4532 ADD HL,BC - 00006637 7E 4533 LD A,(HL) - 00006638 23 4534 INC HL - 00006639 B6 4535 OR (HL) - 0000663A 23 4536 INC HL - 0000663B B6 4537 OR (HL) - 0000663C 28 0D 4538 JR Z,?0301 - 0000663E 4539 ?0300: - 0000663E FD E5 4540 PUSH IY - 00006640 D1 4541 POP DE - 00006641 21 10 00 4542 LD HL,16 - 00006644 ED 4B 3F 87 4543 LD BC,(global) - 00006648 CD DC 53 4544 CALL LWRD ?0475 - 0000664B 4545 ?0301: - 0000664B FD E1 4546 POP IY - 0000664D C3 A3 81 4547 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00006650 4548 ?0476: - 00006650 DD 5E EC 4549 LD E,(IX-20) - 00006653 DD 56 ED 4550 LD D,(IX-19) - 00006656 3E 00 4551 LD A,BYTE3 Component_find - 00006658 21 D6 4D 4552 LD HL,LWRD Component_find - 0000665B C3 FB 81 4553 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000665E 4554 read_stringtable: - 0000665E CD 7A 82 4555 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00006661 F8 FF 4556 DEFW -8 - 00006663 FD E5 4557 PUSH IY - 00006665 03 4558 INC BC - 00006666 0A 4559 LD A,(BC) - 00006667 DD 77 FE 4560 LD (IX-2),A - 0000666A 03 4561 INC BC - 0000666B 0A 4562 LD A,(BC) - 0000666C DD 77 FF 4563 LD (IX-1),A - 0000666F 03 4564 INC BC - 00006670 69 4565 LD L,C - 00006671 60 4566 LD H,B - 00006672 4E 4567 LD C,(HL) - 00006673 DD 71 FC 4568 LD (IX-4),C - 00006676 23 4569 INC HL - 00006677 46 4570 LD B,(HL) - 00006678 DD 70 FD 4571 LD (IX-3),B - 0000667B DD 6E FE 4572 LD L,(IX-2) - 0000667E 67 4573 LD H,A - 0000667F 29 4574 ADD HL,HL - 00006680 EB 4575 EX DE,HL - 00006681 CD 0E 63 4576 CALL LWRD ?0454 - 00006684 DD 75 FA 4577 LD (IX-6),L - 00006687 DD 74 FB 4578 LD (IX-5),H - 0000668A 59 4579 LD E,C - 0000668B 50 4580 LD D,B - 0000668C CD 16 4B 4581 CALL LWRD ?0447 - 0000668F C5 4582 PUSH BC - 00006690 4D 4583 LD C,L - 00006691 44 4584 LD B,H - 00006692 DD 5E 02 4585 LD E,(IX+2) - 00006695 DD 56 03 4586 LD D,(IX+3) - 00006698 CD 06 63 4587 CALL LWRD ?0441 - 0000669B F1 4588 POP AF - 0000669C 11 00 00 4589 LD DE,0 - 0000669F AF 4590 XOR A - 000066A0 DD 77 F8 4591 LD (IX-8),A - 000066A3 DD 77 F9 4592 LD (IX-7),A - 000066A6 4593 ?0303: - 000066A6 DD 4E FC 4594 LD C,(IX-4) - 000066A9 DD 46 FD 4595 LD B,(IX-3) - 000066AC 6B 4596 LD L,E - 000066AD 62 4597 LD H,D - 000066AE CD C8 82 4598 CALL LWRD ?SS_CMP_L02 - 000066B1 30 35 4599 JR NC,?0302 - 000066B3 CD 24 67 4600 CALL LWRD ?0479 - 000066B6 30 30 4601 JR NC,?0302 - 000066B8 4602 ?0306: - 000066B8 4603 ?0305: - 000066B8 4604 ?0304: - 000066B8 23 4605 INC HL - 000066B9 DD 75 F8 4606 LD (IX-8),L - 000066BC DD 74 F9 4607 LD (IX-7),H - 000066BF 2B 4608 DEC HL - 000066C0 29 4609 ADD HL,HL - 000066C1 DD 4E FA 4610 LD C,(IX-6) - 000066C4 DD 46 FB 4611 LD B,(IX-5) - 000066C7 09 4612 ADD HL,BC - 000066C8 E5 4613 PUSH HL - 000066C9 FD E5 4614 PUSH IY - 000066CB E1 4615 POP HL - 000066CC 19 4616 ADD HL,DE - 000066CD 4D 4617 LD C,L - 000066CE 44 4618 LD B,H - 000066CF E1 4619 POP HL - 000066D0 71 4620 LD (HL),C - 000066D1 23 4621 INC HL - 000066D2 70 4622 LD (HL),B - 000066D3 4623 ?0308: - 000066D3 FD E5 4624 PUSH IY - 000066D5 E1 4625 POP HL - 000066D6 19 4626 ADD HL,DE - 000066D7 7E 4627 LD A,(HL) - 000066D8 B7 4628 OR A - 000066D9 28 03 4629 JR Z,?0307 - 000066DB 4630 ?0309: - 000066DB 13 4631 INC DE - 000066DC 18 F5 4632 JR ?0308 - 000066DE 4633 ?0307: - 000066DE 6B 4634 LD L,E - 000066DF 62 4635 LD H,D - 000066E0 13 4636 INC DE - 000066E1 FD E5 4637 PUSH IY - 000066E3 C1 4638 POP BC - 000066E4 09 4639 ADD HL,BC - 000066E5 77 4640 LD (HL),A - 000066E6 18 BE 4641 JR ?0303 - 000066E8 4642 ?0302: - 000066E8 CD 24 67 4643 CALL LWRD ?0479 - 000066EB 30 13 4644 JR NC,?0311 - 000066ED 4645 ?0310: - 000066ED 29 4646 ADD HL,HL - 000066EE DD 4E FA 4647 LD C,(IX-6) - 000066F1 DD 46 FB 4648 LD B,(IX-5) - 000066F4 09 4649 ADD HL,BC - 000066F5 E5 4650 PUSH HL - 000066F6 FD E5 4651 PUSH IY - 000066F8 E1 4652 POP HL - 000066F9 19 4653 ADD HL,DE - 000066FA 4D 4654 LD C,L - 000066FB 44 4655 LD B,H - 000066FC E1 4656 POP HL - 000066FD 71 4657 LD (HL),C - 000066FE 23 4658 INC HL - 000066FF 70 4659 LD (HL),B - 00006700 4660 ?0311: - 00006700 21 06 00 4661 LD HL,6 - 00006703 ED 4B 3F 87 4662 LD BC,(global) - 00006707 09 4663 ADD HL,BC - 00006708 FD E5 4664 PUSH IY - 0000670A C1 4665 POP BC - 0000670B 71 4666 LD (HL),C - 0000670C 23 4667 INC HL - 0000670D 70 4668 LD (HL),B - 0000670E 21 08 00 4669 LD HL,8 - 00006711 ED 4B 3F 87 4670 LD BC,(global) - 00006715 09 4671 ADD HL,BC - 00006716 DD 4E FA 4672 LD C,(IX-6) - 00006719 71 4673 LD (HL),C - 0000671A DD 46 FB 4674 LD B,(IX-5) - 0000671D 23 4675 INC HL - 0000671E 70 4676 LD (HL),B - 0000671F FD E1 4677 POP IY - 00006721 C3 A3 81 4678 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00006724 4679 ?0479: - 00006724 DD 4E FE 4680 LD C,(IX-2) - 00006727 DD 46 FF 4681 LD B,(IX-1) - 0000672A DD 6E F8 4682 LD L,(IX-8) - 0000672D DD 66 F9 4683 LD H,(IX-7) - 00006730 C3 C8 82 4684 JP LWRD ?SS_CMP_L02 - 00006733 4685 gui_globals: - 00006733 2A 3F 87 4686 LD HL,(global) - 00006736 C3 A9 81 4687 JP LWRD ?BANK_FAST_LEAVE_L08 - 00006739 4688 GUIinit: - 00006739 C5 4689 PUSH BC - 0000673A D5 4690 PUSH DE - 0000673B 11 13 00 4691 LD DE,19 - 0000673E CD 0E 63 4692 CALL LWRD ?0454 - 00006741 22 3F 87 4693 LD (global),HL - 00006744 AF 4694 XOR A - 00006745 77 4695 LD (HL),A - 00006746 23 4696 INC HL - 00006747 77 4697 LD (HL),A - 00006748 21 04 00 4698 LD HL,4 - 0000674B ED 4B 3F 87 4699 LD BC,(global) - 0000674F 09 4700 ADD HL,BC - 00006750 77 4701 LD (HL),A - 00006751 23 4702 INC HL - 00006752 77 4703 LD (HL),A - 00006753 21 0A 00 4704 LD HL,10 - 00006756 ED 4B 3F 87 4705 LD BC,(global) - 0000675A 09 4706 ADD HL,BC - 0000675B 77 4707 LD (HL),A - 0000675C 23 4708 INC HL - 0000675D 77 4709 LD (HL),A - 0000675E 21 0C 00 4710 LD HL,12 - 00006761 ED 4B 3F 87 4711 LD BC,(global) - 00006765 09 4712 ADD HL,BC - 00006766 77 4713 LD (HL),A - 00006767 23 4714 INC HL - 00006768 77 4715 LD (HL),A - 00006769 21 08 00 4716 LD HL,8 - 0000676C ED 4B 3F 87 4717 LD BC,(global) - 00006770 09 4718 ADD HL,BC - 00006771 77 4719 LD (HL),A - 00006772 23 4720 INC HL - 00006773 77 4721 LD (HL),A - 00006774 21 06 00 4722 LD HL,6 - 00006777 ED 4B 3F 87 4723 LD BC,(global) - 0000677B 09 4724 ADD HL,BC - 0000677C 77 4725 LD (HL),A - 0000677D 23 4726 INC HL - 0000677E 77 4727 LD (HL),A - 0000677F 21 10 00 4728 LD HL,16 - 00006782 ED 4B 3F 87 4729 LD BC,(global) - 00006786 09 4730 ADD HL,BC - 00006787 77 4731 LD (HL),A - 00006788 23 4732 INC HL - 00006789 77 4733 LD (HL),A - 0000678A 23 4734 INC HL - 0000678B 77 4735 LD (HL),A - 0000678C 3E 00 4736 LD A,BYTE3 GraphicsOpen - 0000678E 21 48 46 4737 LD HL,LWRD GraphicsOpen - 00006791 CD FB 81 4738 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006794 21 00 00 4739 LD HL,0 - 00006797 E5 4740 PUSH HL - 00006798 E5 4741 PUSH HL - 00006799 0E 00 4742 LD C,BYTE3 stringheight01 - 0000679B C5 4743 PUSH BC - 0000679C 21 B8 4B 4744 LD HL,LWRD stringheight01 - 0000679F E5 4745 PUSH HL - 000067A0 0E 00 4746 LD C,BYTE3 stringwidth0 - 000067A2 C5 4747 PUSH BC - 000067A3 21 D4 4B 4748 LD HL,LWRD stringwidth0 - 000067A6 E5 4749 PUSH HL - 000067A7 11 30 00 4750 LD DE,48 - 000067AA CD 58 68 4751 CALL LWRD ?0484 - 000067AD 21 0C 00 4752 LD HL,12 - 000067B0 39 4753 ADD HL,SP - 000067B1 F9 4754 LD SP,HL - 000067B2 21 00 00 4755 LD HL,0 - 000067B5 E5 4756 PUSH HL - 000067B6 E5 4757 PUSH HL - 000067B7 0E 00 4758 LD C,BYTE3 stringheight01 - 000067B9 C5 4759 PUSH BC - 000067BA 21 B8 4B 4760 LD HL,LWRD stringheight01 - 000067BD E5 4761 PUSH HL - 000067BE 0E 00 4762 LD C,BYTE3 stringwidth1 - 000067C0 C5 4763 PUSH BC - 000067C1 21 E5 4B 4764 LD HL,LWRD stringwidth1 - 000067C4 E5 4765 PUSH HL - 000067C5 11 31 00 4766 LD DE,49 - 000067C8 CD 58 68 4767 CALL LWRD ?0484 - 000067CB 21 0C 00 4768 LD HL,12 - 000067CE 39 4769 ADD HL,SP - 000067CF F9 4770 LD SP,HL - 000067D0 21 00 00 4771 LD HL,0 - 000067D3 E5 4772 PUSH HL - 000067D4 E5 4773 PUSH HL - 000067D5 0E 00 4774 LD C,BYTE3 stringheight2 - 000067D7 C5 4775 PUSH BC - 000067D8 21 CB 4B 4776 LD HL,LWRD stringheight2 - 000067DB E5 4777 PUSH HL - 000067DC 0E 00 4778 LD C,BYTE3 stringwidth2 - 000067DE C5 4779 PUSH BC - 000067DF 21 EE 4B 4780 LD HL,LWRD stringwidth2 - 000067E2 E5 4781 PUSH HL - 000067E3 11 32 00 4782 LD DE,50 - 000067E6 CD 58 68 4783 CALL LWRD ?0484 - 000067E9 21 0C 00 4784 LD HL,12 - 000067EC 39 4785 ADD HL,SP - 000067ED F9 4786 LD SP,HL - 000067EE 21 0E 00 4787 LD HL,14 - 000067F1 ED 4B 3F 87 4788 LD BC,(global) - 000067F5 09 4789 ADD HL,BC - 000067F6 E5 4790 PUSH HL - 000067F7 11 80 00 4791 LD DE,128 - 000067FA D5 4792 PUSH DE - 000067FB 5A 4793 LD E,D - 000067FC D5 4794 PUSH DE - 000067FD 4B 4795 LD C,E - 000067FE 42 4796 LD B,D - 000067FF 3E 00 4797 LD A,BYTE3 Window_new - 00006801 21 B9 55 4798 LD HL,LWRD Window_new - 00006804 CD FB 81 4799 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006807 F1 4800 POP AF - 00006808 F1 4801 POP AF - 00006809 4D 4802 LD C,L - 0000680A 44 4803 LD B,H - 0000680B E1 4804 POP HL - 0000680C 71 4805 LD (HL),C - 0000680D 23 4806 INC HL - 0000680E 70 4807 LD (HL),B - 0000680F 21 0E 00 4808 LD HL,14 - 00006812 ED 4B 3F 87 4809 LD BC,(global) - 00006816 09 4810 ADD HL,BC - 00006817 56 4811 LD D,(HL) - 00006818 23 4812 INC HL - 00006819 66 4813 LD H,(HL) - 0000681A 6A 4814 LD L,D - 0000681B 11 0A 00 4815 LD DE,10 - 0000681E 19 4816 ADD HL,DE - 0000681F 36 01 4817 LD (HL),1 - 00006821 23 4818 INC HL - 00006822 72 4819 LD (HL),D - 00006823 21 0E 00 4820 LD HL,14 - 00006826 ED 4B 3F 87 4821 LD BC,(global) - 0000682A 09 4822 ADD HL,BC - 0000682B 56 4823 LD D,(HL) - 0000682C 23 4824 INC HL - 0000682D 66 4825 LD H,(HL) - 0000682E 6A 4826 LD L,D - 0000682F 11 17 00 4827 LD DE,23 - 00006832 19 4828 ADD HL,DE - 00006833 36 38 4829 LD (HL),LOW(rootWindow_handler) - 00006835 23 4830 INC HL - 00006836 36 5F 4831 LD (HL),HIGH(rootWindow_handler) - 00006838 23 4832 INC HL - 00006839 36 00 4833 LD (HL),BYTE3 rootWindow_handler - 0000683B 21 0E 00 4834 LD HL,14 - 0000683E ED 4B 3F 87 4835 LD BC,(global) - 00006842 09 4836 ADD HL,BC - 00006843 46 4837 LD B,(HL) - 00006844 23 4838 INC HL - 00006845 66 4839 LD H,(HL) - 00006846 68 4840 LD L,B - 00006847 01 1A 00 4841 LD BC,26 - 0000684A 09 4842 ADD HL,BC - 0000684B 36 74 4843 LD (HL),LOW(Root_paint) - 0000684D 23 4844 INC HL - 0000684E 36 55 4845 LD (HL),HIGH(Root_paint) - 00006850 23 4846 INC HL - 00006851 36 00 4847 LD (HL),BYTE3 Root_paint - 00006853 D1 4848 POP DE - 00006854 C1 4849 POP BC - 00006855 C3 A9 81 4850 JP LWRD ?BANK_FAST_LEAVE_L08 - 00006858 4851 ?0484: - 00006858 3E 00 4852 LD A,BYTE3 loadFont - 0000685A 21 7B 4A 4853 LD HL,LWRD loadFont - 0000685D C3 FB 81 4854 JP LWRD ?BANK_CALL_DIRECT_L08 - 00006860 4855 GUIunit: - 00006860 C5 4856 PUSH BC - 00006861 D5 4857 PUSH DE - 00006862 21 0E 00 4858 LD HL,14 - 00006865 ED 4B 3F 87 4859 LD BC,(global) - 00006869 09 4860 ADD HL,BC - 0000686A 5E 4861 LD E,(HL) - 0000686B 23 4862 INC HL - 0000686C 56 4863 LD D,(HL) - 0000686D CD D7 4F 4864 CALL LWRD ?0453 - 00006870 3E 00 4865 LD A,BYTE3 ClearScreen - 00006872 21 05 49 4866 LD HL,LWRD ClearScreen - 00006875 CD FB 81 4867 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006878 3E 00 4868 LD A,BYTE3 GraphicsClose - 0000687A 21 D6 46 4869 LD HL,LWRD GraphicsClose - 0000687D CD FB 81 4870 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006880 D1 4871 POP DE - 00006881 C1 4872 POP BC - 00006882 C3 A9 81 4873 JP LWRD ?BANK_FAST_LEAVE_L08 - 00006885 4874 GUIgo: - 00006885 CD 7A 82 4875 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00006888 FE FF 4876 DEFW 65534 - 0000688A DD 4E 02 4877 LD C,(IX+2) - 0000688D DD 46 03 4878 LD B,(IX+3) - 00006890 21 0E 00 4879 LD HL,14 - 00006893 ED 5B 3F 87 4880 LD DE,(global) - 00006897 19 4881 ADD HL,DE - 00006898 5E 4882 LD E,(HL) - 00006899 23 4883 INC HL - 0000689A 56 4884 LD D,(HL) - 0000689B 3E 00 4885 LD A,BYTE3 screenbuilder - 0000689D 21 56 5F 4886 LD HL,LWRD screenbuilder - 000068A0 CD FB 81 4887 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000068A3 4888 ?0313: - 000068A3 21 04 00 4889 LD HL,4 - 000068A6 ED 4B 3F 87 4890 LD BC,(global) - 000068AA 09 4891 ADD HL,BC - 000068AB 7E 4892 LD A,(HL) - 000068AC 23 4893 INC HL - 000068AD B6 4894 OR (HL) - 000068AE C2 43 69 4895 JP NZ,?0312 - 000068B1 4896 ?0314: - 000068B1 21 01 00 4897 LD HL,1 - 000068B4 E5 4898 PUSH HL - 000068B5 23 4899 INC HL - 000068B6 39 4900 ADD HL,SP - 000068B7 4D 4901 LD C,L - 000068B8 44 4902 LD B,H - 000068B9 2A 3F 87 4903 LD HL,(global) - 000068BC 23 4904 INC HL - 000068BD 23 4905 INC HL - 000068BE 5E 4906 LD E,(HL) - 000068BF 23 4907 INC HL - 000068C0 56 4908 LD D,(HL) - 000068C1 CD 06 63 4909 CALL LWRD ?0441 - 000068C4 F1 4910 POP AF - 000068C5 3E 01 4911 LD A,1 - 000068C7 AD 4912 XOR L - 000068C8 B4 4913 OR H - 000068C9 20 D8 4914 JR NZ,?0313 - 000068CB 4915 ?0315: - 000068CB DD 4E FE 4916 LD C,(IX-2) - 000068CE 47 4917 LD B,A - 000068CF C5 4918 PUSH BC - 000068D0 21 04 85 4919 LD HL,?0317 - 000068D3 E5 4920 PUSH HL - 000068D4 3E 00 4921 LD A,BYTE3 printf - 000068D6 21 91 72 4922 LD HL,LWRD printf - 000068D9 CD FB 81 4923 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000068DC F1 4924 POP AF - 000068DD F1 4925 POP AF - 000068DE AF 4926 XOR A - 000068DF DD B6 FE 4927 OR (IX-2) - 000068E2 28 29 4928 JR Z,?0319 - 000068E4 4929 ?0318: - 000068E4 4F 4930 LD C,A - 000068E5 C5 4931 PUSH BC - 000068E6 21 0E 00 4932 LD HL,14 - 000068E9 ED 5B 3F 87 4933 LD DE,(global) - 000068ED 19 4934 ADD HL,DE - 000068EE 5E 4935 LD E,(HL) - 000068EF 23 4936 INC HL - 000068F0 56 4937 LD D,(HL) - 000068F1 21 0E 00 4938 LD HL,14 - 000068F4 ED 4B 3F 87 4939 LD BC,(global) - 000068F8 09 4940 ADD HL,BC - 000068F9 46 4941 LD B,(HL) - 000068FA 23 4942 INC HL - 000068FB 66 4943 LD H,(HL) - 000068FC 68 4944 LD L,B - 000068FD 01 17 00 4945 LD BC,23 - 00006900 09 4946 ADD HL,BC - 00006901 4E 4947 LD C,(HL) - 00006902 23 4948 INC HL - 00006903 46 4949 LD B,(HL) - 00006904 23 4950 INC HL - 00006905 7E 4951 LD A,(HL) - 00006906 69 4952 LD L,C - 00006907 60 4953 LD H,B - 00006908 01 01 00 4954 LD BC,1 - 0000690B 18 29 4955 JR ?0370 - 0000690D 4956 ?0319: - 0000690D DD 4E FF 4957 LD C,(IX-1) - 00006910 C5 4958 PUSH BC - 00006911 21 0E 00 4959 LD HL,14 - 00006914 ED 5B 3F 87 4960 LD DE,(global) - 00006918 19 4961 ADD HL,DE - 00006919 5E 4962 LD E,(HL) - 0000691A 23 4963 INC HL - 0000691B 56 4964 LD D,(HL) - 0000691C 21 0E 00 4965 LD HL,14 - 0000691F ED 4B 3F 87 4966 LD BC,(global) - 00006923 09 4967 ADD HL,BC - 00006924 46 4968 LD B,(HL) - 00006925 23 4969 INC HL - 00006926 66 4970 LD H,(HL) - 00006927 68 4971 LD L,B - 00006928 01 17 00 4972 LD BC,23 - 0000692B 09 4973 ADD HL,BC - 0000692C 4E 4974 LD C,(HL) - 0000692D 23 4975 INC HL - 0000692E 46 4976 LD B,(HL) - 0000692F 23 4977 INC HL - 00006930 7E 4978 LD A,(HL) - 00006931 69 4979 LD L,C - 00006932 60 4980 LD H,B - 00006933 01 02 00 4981 LD BC,2 - 00006936 4982 ?0370: - 00006936 CD FB 81 4983 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006939 E1 4984 POP HL - 0000693A 4985 ?0320: - 0000693A DD 46 FE 4986 LD B,(IX-2) - 0000693D DD 70 FF 4987 LD (IX-1),B - 00006940 4988 ?0316: - 00006940 C3 A3 68 4989 JP LWRD ?0313 - 00006943 4990 ?0312: - 00006943 C3 A3 81 4991 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000045C9 94 GraphicsOpen: + 000045C9 CD 88 81 95 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000045CC F8 FF 96 DEFW 65528 + 000045CE 21 06 00 97 LD HL,6 + 000045D1 39 98 ADD HL,SP + 000045D2 EB 99 EX DE,HL + 000045D3 21 81 84 100 LD HL,?0000 + 000045D6 01 02 00 101 LD BC,2 + 000045D9 ED B0 102 LDIR + 000045DB 2A C0 86 103 LD HL,(global) + 000045DE 23 104 INC HL + 000045DF 23 105 INC HL + 000045E0 E5 106 PUSH HL + 000045E1 03 107 INC BC + 000045E2 03 108 INC BC + 000045E3 C5 109 PUSH BC + 000045E4 01 B5 84 110 LD BC,?0001 + 000045E7 C5 111 PUSH BC + 000045E8 3E 01 112 LD A,BYTE3 open + 000045EA 21 AD 42 113 LD HL,LWRD open + 000045ED CD 5E 81 114 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000045F0 F1 115 POP AF + 000045F1 F1 116 POP AF + 000045F2 4D 117 LD C,L + 000045F3 44 118 LD B,H + 000045F4 E1 119 POP HL + 000045F5 71 120 LD (HL),C + 000045F6 23 121 INC HL + 000045F7 70 122 LD (HL),B + 000045F8 21 00 00 123 LD HL,0 + 000045FB 39 124 ADD HL,SP + 000045FC E5 125 PUSH HL + 000045FD 21 00 00 126 LD HL,0 + 00004600 E5 127 PUSH HL + 00004601 2A C0 86 128 LD HL,(global) + 00004604 23 129 INC HL + 00004605 23 130 INC HL + 00004606 4E 131 LD C,(HL) + 00004607 23 132 INC HL + 00004608 46 133 LD B,(HL) + 00004609 C5 134 PUSH BC + 0000460A 3E 00 135 LD A,BYTE3 ioctl + 0000460C 21 68 73 136 LD HL,LWRD ioctl + 0000460F CD 5E 81 137 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004612 F1 138 POP AF + 00004613 F1 139 POP AF + 00004614 F1 140 POP AF + 00004615 DD 36 FC 60 141 LD (IX-4),96 + 00004619 DD 36 FD 00 142 LD (IX-3),0 + 0000461D 21 00 00 143 LD HL,0 + 00004620 39 144 ADD HL,SP + 00004621 E5 145 PUSH HL + 00004622 21 01 00 146 LD HL,1 + 00004625 E5 147 PUSH HL + 00004626 2A C0 86 148 LD HL,(global) + 00004629 23 149 INC HL + 0000462A 23 150 INC HL + 0000462B 4E 151 LD C,(HL) + 0000462C 23 152 INC HL + 0000462D 46 153 LD B,(HL) + 0000462E C5 154 PUSH BC + 0000462F 3E 00 155 LD A,BYTE3 ioctl + 00004631 21 68 73 156 LD HL,LWRD ioctl + 00004634 CD 5E 81 157 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004637 F1 158 POP AF + 00004638 F1 159 POP AF + 00004639 F1 160 POP AF + 0000463A 21 02 00 161 LD HL,2 + 0000463D E5 162 PUSH HL + 0000463E 2E 08 163 LD L,8 + 00004640 164 ?0372: + 00004640 39 165 ADD HL,SP + 00004641 4D 166 LD C,L + 00004642 167 ?0427: + 00004642 44 168 LD B,H + 00004643 2A C0 86 169 LD HL,(global) + 00004646 170 ?0428: + 00004646 23 171 INC HL + 00004647 23 172 INC HL + 00004648 173 ?0429: + 00004648 5E 174 LD E,(HL) + 00004649 23 175 INC HL + 0000464A 176 ?0430: + 0000464A 56 177 LD D,(HL) + 0000464B 3E 00 178 LD A,BYTE3 _write + 0000464D 179 ?0431: + 0000464D 21 D1 6D 180 LD HL,LWRD _write + 00004650 CD 5E 81 181 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004653 F1 182 POP AF + 00004654 C3 1F 81 183 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004657 184 GraphicsClose: + 00004657 D5 185 PUSH DE + 00004658 2A C0 86 186 LD HL,(global) + 0000465B 23 187 INC HL + 0000465C 23 188 INC HL + 0000465D 5E 189 LD E,(HL) + 0000465E 23 190 INC HL + 0000465F 56 191 LD D,(HL) + 00004660 3E 00 192 LD A,BYTE3 close + 00004662 21 2B 72 193 LD HL,LWRD close + 00004665 CD 5E 81 194 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004668 D1 195 POP DE + 00004669 C3 25 81 196 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000466C 197 Move: + 0000466C CD 88 81 198 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000466F FC FF 199 DEFW 65532 + 00004671 21 00 00 200 LD HL,0 + 00004674 39 201 ADD HL,SP + 00004675 EB 202 EX DE,HL + 00004676 21 83 84 203 LD HL,?0002 + 00004679 01 04 00 204 LD BC,4 + 0000467C ED B0 205 LDIR + 0000467E DD 46 02 206 LD B,(IX+2) + 00004681 DD 70 FE 207 LD (IX-2),B + 00004684 DD 46 04 208 LD B,(IX+4) + 00004687 DD 70 FF 209 LD (IX-1),B + 0000468A 21 04 00 210 LD HL,4 + 0000468D E5 211 PUSH HL + 0000468E 2B 212 DEC HL + 0000468F 2B 213 DEC HL + 00004690 C3 40 46 214 JP LWRD ?0372 + 00004693 4D 215 LD C,L + 00004694 216 ?0381: + 00004694 C3 42 46 217 JP LWRD ?0427 + 00004697 2A C0 86 218 LD HL,(global) + 0000469A 23 219 INC HL + 0000469B 23 220 INC HL + 0000469C 221 ?0432: + 0000469C 5E 222 LD E,(HL) + 0000469D 23 223 INC HL + 0000469E 224 ?0433: + 0000469E 56 225 LD D,(HL) + 0000469F 3E 00 226 LD A,BYTE3 _write + 000046A1 227 ?0434: + 000046A1 C3 4D 46 228 JP LWRD ?0431 + 000046A4 CD 5E 81 229 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000046A7 F1 230 POP AF + 000046A8 C3 1F 81 231 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000046AB 232 ClearRect: + 000046AB CD 88 81 233 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000046AE FC FF 234 DEFW 65532 + 000046B0 21 00 00 235 LD HL,0 + 000046B3 39 236 ADD HL,SP + 000046B4 EB 237 EX DE,HL + 000046B5 21 87 84 238 LD HL,?0003 + 000046B8 01 04 00 239 LD BC,4 + 000046BB ED B0 240 LDIR + 000046BD DD 46 02 241 LD B,(IX+2) + 000046C0 DD 70 FE 242 LD (IX-2),B + 000046C3 DD 46 04 243 LD B,(IX+4) + 000046C6 DD 70 FF 244 LD (IX-1),B + 000046C9 21 04 00 245 LD HL,4 + 000046CC E5 246 PUSH HL + 000046CD 2B 247 DEC HL + 000046CE 2B 248 DEC HL + 000046CF C3 40 46 249 JP LWRD ?0372 + 000046D2 4D 250 LD C,L + 000046D3 C3 94 46 251 JP LWRD ?0381 + 000046D6 2A C0 86 252 LD HL,(global) + 000046D9 253 ?0389: + 000046D9 C3 46 46 254 JP LWRD ?0428 + 000046DC 23 255 INC HL + 000046DD C3 9C 46 256 JP LWRD ?0432 + 000046E0 23 257 INC HL + 000046E1 56 258 LD D,(HL) + 000046E2 3E 00 259 LD A,BYTE3 _write + 000046E4 260 ?0435: + 000046E4 C3 4D 46 261 JP LWRD ?0431 + 000046E7 CD 5E 81 262 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000046EA F1 263 POP AF + 000046EB C3 1F 81 264 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000046EE 265 DrawRectNC: + 000046EE CD 88 81 266 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000046F1 FC FF 267 DEFW 65532 + 000046F3 21 00 00 268 LD HL,0 + 000046F6 39 269 ADD HL,SP + 000046F7 EB 270 EX DE,HL + 000046F8 21 8B 84 271 LD HL,?0004 + 000046FB 01 04 00 272 LD BC,4 + 000046FE ED B0 273 LDIR + 00004700 DD 46 02 274 LD B,(IX+2) + 00004703 DD 70 FE 275 LD (IX-2),B + 00004706 DD 46 04 276 LD B,(IX+4) + 00004709 DD 70 FF 277 LD (IX-1),B + 0000470C 21 04 00 278 LD HL,4 + 0000470F E5 279 PUSH HL + 00004710 2B 280 DEC HL + 00004711 2B 281 DEC HL + 00004712 C3 40 46 282 JP LWRD ?0372 + 00004715 4D 283 LD C,L + 00004716 C3 94 46 284 JP LWRD ?0381 + 00004719 2A C0 86 285 LD HL,(global) + 0000471C C3 D9 46 286 JP LWRD ?0389 + 0000471F 23 287 INC HL + 00004720 288 ?0396: + 00004720 C3 48 46 289 JP LWRD ?0429 + 00004723 23 290 INC HL + 00004724 C3 9E 46 291 JP LWRD ?0433 + 00004727 3E 00 292 LD A,BYTE3 _write + 00004729 C3 E4 46 293 JP LWRD ?0435 + 0000472C CD 5E 81 294 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000472F F1 295 POP AF + 00004730 C3 1F 81 296 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004733 297 FillRect: + 00004733 CD 88 81 298 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004736 FC FF 299 DEFW 65532 + 00004738 21 00 00 300 LD HL,0 + 0000473B 39 301 ADD HL,SP + 0000473C EB 302 EX DE,HL + 0000473D 21 8F 84 303 LD HL,?0005 + 00004740 01 04 00 304 LD BC,4 + 00004743 ED B0 305 LDIR + 00004745 DD 46 02 306 LD B,(IX+2) + 00004748 DD 70 FE 307 LD (IX-2),B + 0000474B DD 46 04 308 LD B,(IX+4) + 0000474E DD 70 FF 309 LD (IX-1),B + 00004751 21 04 00 310 LD HL,4 + 00004754 E5 311 PUSH HL + 00004755 2B 312 DEC HL + 00004756 2B 313 DEC HL + 00004757 C3 40 46 314 JP LWRD ?0372 + 0000475A 4D 315 LD C,L + 0000475B C3 94 46 316 JP LWRD ?0381 + 0000475E 2A C0 86 317 LD HL,(global) + 00004761 C3 D9 46 318 JP LWRD ?0389 + 00004764 23 319 INC HL + 00004765 C3 20 47 320 JP LWRD ?0396 + 00004768 23 321 INC HL + 00004769 322 ?0402: + 00004769 C3 4A 46 323 JP LWRD ?0430 + 0000476C 3E 00 324 LD A,BYTE3 _write + 0000476E C3 A1 46 325 JP LWRD ?0434 + 00004771 CD 5E 81 326 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004774 F1 327 POP AF + 00004775 C3 1F 81 328 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004778 329 FillRectNC: + 00004778 CD 88 81 330 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000477B FC FF 331 DEFW 65532 + 0000477D 21 00 00 332 LD HL,0 + 00004780 39 333 ADD HL,SP + 00004781 EB 334 EX DE,HL + 00004782 21 93 84 335 LD HL,?0006 + 00004785 01 04 00 336 LD BC,4 + 00004788 ED B0 337 LDIR + 0000478A DD 46 02 338 LD B,(IX+2) + 0000478D DD 70 FE 339 LD (IX-2),B + 00004790 DD 46 04 340 LD B,(IX+4) + 00004793 DD 70 FF 341 LD (IX-1),B + 00004796 21 04 00 342 LD HL,4 + 00004799 E5 343 PUSH HL + 0000479A 2B 344 DEC HL + 0000479B 2B 345 DEC HL + 0000479C C3 40 46 346 JP LWRD ?0372 + 0000479F 4D 347 LD C,L + 000047A0 C3 94 46 348 JP LWRD ?0381 + 000047A3 2A C0 86 349 LD HL,(global) + 000047A6 C3 D9 46 350 JP LWRD ?0389 + 000047A9 23 351 INC HL + 000047AA C3 20 47 352 JP LWRD ?0396 + 000047AD 23 353 INC HL + 000047AE C3 69 47 354 JP LWRD ?0402 + 000047B1 3E 00 355 LD A,BYTE3 _write + 000047B3 356 ?0407: + 000047B3 C3 4D 46 357 JP LWRD ?0431 + 000047B6 CD 5E 81 358 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000047B9 F1 359 POP AF + 000047BA C3 1F 81 360 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000047BD 361 GrayRect: + 000047BD CD 88 81 362 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000047C0 FC FF 363 DEFW 65532 + 000047C2 21 00 00 364 LD HL,0 + 000047C5 39 365 ADD HL,SP + 000047C6 EB 366 EX DE,HL + 000047C7 21 97 84 367 LD HL,?0007 + 000047CA 01 04 00 368 LD BC,4 + 000047CD ED B0 369 LDIR + 000047CF DD 46 02 370 LD B,(IX+2) + 000047D2 DD 70 FE 371 LD (IX-2),B + 000047D5 DD 46 04 372 LD B,(IX+4) + 000047D8 DD 70 FF 373 LD (IX-1),B + 000047DB 21 04 00 374 LD HL,4 + 000047DE E5 375 PUSH HL + 000047DF 2B 376 DEC HL + 000047E0 2B 377 DEC HL + 000047E1 C3 40 46 378 JP LWRD ?0372 + 000047E4 4D 379 LD C,L + 000047E5 C3 94 46 380 JP LWRD ?0381 + 000047E8 2A C0 86 381 LD HL,(global) + 000047EB C3 D9 46 382 JP LWRD ?0389 + 000047EE 23 383 INC HL + 000047EF C3 20 47 384 JP LWRD ?0396 + 000047F2 23 385 INC HL + 000047F3 C3 69 47 386 JP LWRD ?0402 + 000047F6 3E 00 387 LD A,BYTE3 _write + 000047F8 C3 B3 47 388 JP LWRD ?0407 + 000047FB CD 5E 81 389 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000047FE F1 390 POP AF + 000047FF C3 1F 81 391 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004802 392 Text: + 00004802 C5 393 PUSH BC + 00004803 FD E5 394 PUSH IY + 00004805 DD E5 395 PUSH IX + 00004807 D5 396 PUSH DE + 00004808 DD E1 397 POP IX + 0000480A 3E 00 398 LD A,BYTE3 strlen + 0000480C 21 40 72 399 LD HL,LWRD strlen + 0000480F CD 5E 81 400 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004812 E5 401 PUSH HL + 00004813 DD E5 402 PUSH IX + 00004815 C1 403 POP BC + 00004816 2A C0 86 404 LD HL,(global) + 00004819 23 405 INC HL + 0000481A 23 406 INC HL + 0000481B 5E 407 LD E,(HL) + 0000481C 23 408 INC HL + 0000481D 56 409 LD D,(HL) + 0000481E 3E 00 410 LD A,BYTE3 _write + 00004820 21 D1 6D 411 LD HL,LWRD _write + 00004823 CD 5E 81 412 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004826 F1 413 POP AF + 00004827 414 ?0411: + 00004827 DD E1 415 POP IX + 00004829 FD E1 416 POP IY + 0000482B C1 417 POP BC + 0000482C C3 25 81 418 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000482F 419 TouchRegion: + 0000482F CD 88 81 420 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004832 F8 FF 421 DEFW 65528 + 00004834 21 00 00 422 LD HL,0 + 00004837 39 423 ADD HL,SP + 00004838 EB 424 EX DE,HL + 00004839 21 9B 84 425 LD HL,?0008 + 0000483C 01 07 00 426 LD BC,7 + 0000483F ED B0 427 LDIR + 00004841 DD 46 02 428 LD B,(IX+2) + 00004844 DD 70 FA 429 LD (IX-6),B + 00004847 DD 46 04 430 LD B,(IX+4) + 0000484A DD 70 FB 431 LD (IX-5),B + 0000484D DD 46 0A 432 LD B,(IX+10) + 00004850 DD 70 FC 433 LD (IX-4),B + 00004853 DD 46 0C 434 LD B,(IX+12) + 00004856 DD 70 FD 435 LD (IX-3),B + 00004859 DD 46 0E 436 LD B,(IX+14) + 0000485C DD 70 FE 437 LD (IX-2),B + 0000485F 21 07 00 438 LD HL,7 + 00004862 E5 439 PUSH HL + 00004863 2E 02 440 LD L,2 + 00004865 C3 40 46 441 JP LWRD ?0372 + 00004868 4D 442 LD C,L + 00004869 C3 94 46 443 JP LWRD ?0381 + 0000486C 2A C0 86 444 LD HL,(global) + 0000486F C3 D9 46 445 JP LWRD ?0389 + 00004872 23 446 INC HL + 00004873 C3 20 47 447 JP LWRD ?0396 + 00004876 23 448 INC HL + 00004877 C3 69 47 449 JP LWRD ?0402 + 0000487A 3E 00 450 LD A,BYTE3 _write + 0000487C C3 B3 47 451 JP LWRD ?0407 + 0000487F CD 5E 81 452 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004882 F1 453 POP AF + 00004883 C3 1F 81 454 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004886 455 ClearScreen: + 00004886 C5 456 PUSH BC + 00004887 D5 457 PUSH DE + 00004888 CD A0 48 458 CALL LWRD ?0461 + 0000488B CD 5E 81 459 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000488E 21 80 00 460 LD HL,128 + 00004891 E5 461 PUSH HL + 00004892 6C 462 LD L,H + 00004893 E5 463 PUSH HL + 00004894 E5 464 PUSH HL + 00004895 CD B8 48 465 CALL LWRD ?0470 + 00004898 E1 466 POP HL + 00004899 E1 467 POP HL + 0000489A E1 468 POP HL + 0000489B D1 469 POP DE + 0000489C C1 470 POP BC + 0000489D C3 25 81 471 JP LWRD ?BANK_FAST_LEAVE_L08 + 000048A0 472 ?0461: + 000048A0 01 00 00 473 LD BC,0 + 000048A3 59 474 LD E,C + 000048A4 50 475 LD D,B + 000048A5 3E 00 476 LD A,BYTE3 Move + 000048A7 21 6C 46 477 LD HL,LWRD Move + 000048AA CD 5E 81 478 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000048AD 01 80 00 479 LD BC,128 + 000048B0 58 480 LD E,B + 000048B1 50 481 LD D,B + 000048B2 3E 00 482 LD A,BYTE3 ClearRect + 000048B4 21 AB 46 483 LD HL,LWRD ClearRect + 000048B7 C9 484 RET + 000048B8 485 ?0470: + 000048B8 4D 486 LD C,L + 000048B9 44 487 LD B,H + 000048BA EB 488 EX DE,HL + 000048BB 489 ?0471: + 000048BB 3E 00 490 LD A,BYTE3 TouchRegion + 000048BD 21 2F 48 491 LD HL,LWRD TouchRegion + 000048C0 C3 5E 81 492 JP LWRD ?BANK_CALL_DIRECT_L08 + 000048C3 493 EnableScreen: + 000048C3 CD 88 81 494 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000048C6 FC FF 495 DEFW 65532 + 000048C8 21 00 00 496 LD HL,0 + 000048CB 39 497 ADD HL,SP + 000048CC EB 498 EX DE,HL + 000048CD 21 A2 84 499 LD HL,?0009 + 000048D0 01 03 00 500 LD BC,3 + 000048D3 ED B0 501 LDIR + 000048D5 DD 46 02 502 LD B,(IX+2) + 000048D8 DD 70 FE 503 LD (IX-2),B + 000048DB 21 03 00 504 LD HL,3 + 000048DE E5 505 PUSH HL + 000048DF 2B 506 DEC HL + 000048E0 C3 40 46 507 JP LWRD ?0372 + 000048E3 4D 508 LD C,L + 000048E4 C3 94 46 509 JP LWRD ?0381 + 000048E7 2A C0 86 510 LD HL,(global) + 000048EA C3 D9 46 511 JP LWRD ?0389 + 000048ED 23 512 INC HL + 000048EE C3 20 47 513 JP LWRD ?0396 + 000048F1 23 514 INC HL + 000048F2 C3 69 47 515 JP LWRD ?0402 + 000048F5 3E 00 516 LD A,BYTE3 _write + 000048F7 C3 B3 47 517 JP LWRD ?0407 + 000048FA CD 5E 81 518 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000048FD F1 519 POP AF + 000048FE C3 1F 81 520 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004901 521 grSetFont: + 00004901 CD 88 81 522 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004904 FE FF 523 DEFW 65534 + 00004906 21 00 00 524 LD HL,0 + 00004909 39 525 ADD HL,SP + 0000490A EB 526 EX DE,HL + 0000490B 21 A5 84 527 LD HL,?0010 + 0000490E 01 02 00 528 LD BC,2 + 00004911 ED B0 529 LDIR + 00004913 DD 46 02 530 LD B,(IX+2) + 00004916 DD 70 FF 531 LD (IX-1),B + 00004919 21 02 00 532 LD HL,2 + 0000491C E5 533 PUSH HL + 0000491D C3 40 46 534 JP LWRD ?0372 + 00004920 4D 535 LD C,L + 00004921 C3 94 46 536 JP LWRD ?0381 + 00004924 2A C0 86 537 LD HL,(global) + 00004927 C3 D9 46 538 JP LWRD ?0389 + 0000492A 23 539 INC HL + 0000492B C3 20 47 540 JP LWRD ?0396 + 0000492E 23 541 INC HL + 0000492F C3 69 47 542 JP LWRD ?0402 + 00004932 3E 00 543 LD A,BYTE3 _write + 00004934 C3 B3 47 544 JP LWRD ?0407 + 00004937 CD 5E 81 545 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000493A F1 546 POP AF + 0000493B C3 1F 81 547 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000493E 548 fontSearch: + 0000493E CD 88 81 549 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004941 00 00 550 DEFW 0 + 00004943 21 0C 00 551 LD HL,12 + 00004946 ED 4B C0 86 552 LD BC,(global) + 0000494A 09 553 ADD HL,BC + 0000494B 554 ?0321: + 0000494B 46 555 LD B,(HL) + 0000494C 23 556 INC HL + 0000494D 66 557 LD H,(HL) + 0000494E 68 558 LD L,B + 0000494F EB 559 EX DE,HL + 00004950 560 ?0012: + 00004950 7B 561 LD A,E + 00004951 B2 562 OR D + 00004952 28 16 563 JR Z,?0011 + 00004954 6B 564 LD L,E + 00004955 62 565 LD H,D + 00004956 46 566 LD B,(HL) + 00004957 23 567 INC HL + 00004958 66 568 LD H,(HL) + 00004959 68 569 LD L,B + 0000495A DD 4E 02 570 LD C,(IX+2) + 0000495D DD 46 03 571 LD B,(IX+3) + 00004960 ED 42 572 SBC HL,BC + 00004962 28 06 573 JR Z,?0011 + 00004964 574 ?0015: + 00004964 575 ?0014: + 00004964 576 ?0013: + 00004964 21 08 00 577 LD HL,8 + 00004967 19 578 ADD HL,DE + 00004968 18 E1 579 JR ?0321 + 0000496A 580 ?0011: + 0000496A EB 581 EX DE,HL + 0000496B C3 1F 81 582 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000496E 583 setCurrentFont: + 0000496E CD 52 81 584 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004971 3E 00 585 LD A,BYTE3 fontSearch + 00004973 21 3E 49 586 LD HL,LWRD fontSearch + 00004976 CD EB 49 587 CALL LWRD ?0448 + 00004979 28 29 588 JR Z,?0017 + 0000497B 589 ?0016: + 0000497B DD 5E 02 590 LD E,(IX+2) + 0000497E DD 56 03 591 LD D,(IX+3) + 00004981 3E 00 592 LD A,BYTE3 grSetFont + 00004983 21 01 49 593 LD HL,LWRD grSetFont + 00004986 CD 5E 81 594 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004989 21 0A 00 595 LD HL,10 + 0000498C ED 4B C0 86 596 LD BC,(global) + 00004990 09 597 ADD HL,BC + 00004991 E5 598 PUSH HL + 00004992 DD 5E 02 599 LD E,(IX+2) + 00004995 DD 56 03 600 LD D,(IX+3) + 00004998 3E 00 601 LD A,BYTE3 fontSearch + 0000499A 21 3E 49 602 LD HL,LWRD fontSearch + 0000499D CD F6 49 603 CALL LWRD ?0449 + 000049A0 E1 604 POP HL + 000049A1 71 605 LD (HL),C + 000049A2 23 606 INC HL + 000049A3 70 607 LD (HL),B + 000049A4 608 ?0017: + 000049A4 C3 1F 81 609 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000049A7 610 ?0443: + 000049A7 ED 4B C0 86 611 LD BC,(global) + 000049AB 09 612 ADD HL,BC + 000049AC 46 613 LD B,(HL) + 000049AD 23 614 INC HL + 000049AE 66 615 LD H,(HL) + 000049AF 68 616 LD L,B + 000049B0 617 ?0442: + 000049B0 23 618 INC HL + 000049B1 23 619 INC HL + 000049B2 4E 620 LD C,(HL) + 000049B3 23 621 INC HL + 000049B4 46 622 LD B,(HL) + 000049B5 23 623 INC HL + 000049B6 7E 624 LD A,(HL) + 000049B7 69 625 LD L,C + 000049B8 60 626 LD H,B + 000049B9 CD 5E 81 627 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000049BC 4D 628 LD C,L + 000049BD 44 629 LD B,H + 000049BE FD 6E 06 630 LD L,(IY+6) + 000049C1 FD 66 07 631 LD H,(IY+7) + 000049C4 A7 632 AND A + 000049C5 ED 42 633 SBC HL,BC + 000049C7 EB 634 EX DE,HL + 000049C8 01 02 00 635 LD BC,2 + 000049CB CD C1 81 636 CALL LWRD ?SS_DIV_L02 + 000049CE DD 6E 04 637 LD L,(IX+4) + 000049D1 DD 66 05 638 LD H,(IX+5) + 000049D4 19 639 ADD HL,DE + 000049D5 EB 640 EX DE,HL + 000049D6 3E 00 641 LD A,BYTE3 Move + 000049D8 21 6C 46 642 LD HL,LWRD Move + 000049DB C9 643 RET + 000049DC 644 ?0444: + 000049DC CD 5E 81 645 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000049DF 4D 646 LD C,L + 000049E0 44 647 LD B,H + 000049E1 FD 6E 08 648 LD L,(IY+8) + 000049E4 FD 66 09 649 LD H,(IY+9) + 000049E7 A7 650 AND A + 000049E8 ED 42 651 SBC HL,BC + 000049EA C9 652 RET + 000049EB 653 ?0448: + 000049EB CD 5E 81 654 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000049EE 7D 655 LD A,L + 000049EF B4 656 OR H + 000049F0 C9 657 RET + 000049F1 658 ?0450: + 000049F1 3E 01 659 LD A,BYTE3 malloc + 000049F3 21 D8 42 660 LD HL,LWRD malloc + 000049F6 661 ?0449: + 000049F6 CD 5E 81 662 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000049F9 4D 663 LD C,L + 000049FA 44 664 LD B,H + 000049FB C9 665 RET + 000049FC 666 loadFont: + 000049FC CD 88 81 667 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000049FF FC FF 668 DEFW 65532 + 00004A01 FD E5 669 PUSH IY + 00004A03 11 0E 00 670 LD DE,14 + 00004A06 CD 97 4A 671 CALL LWRD ?0447 + 00004A09 DD 4E 02 672 LD C,(IX+2) + 00004A0C 71 673 LD (HL),C + 00004A0D DD 46 03 674 LD B,(IX+3) + 00004A10 23 675 INC HL + 00004A11 70 676 LD (HL),B + 00004A12 DD 46 0C 677 LD B,(IX+12) + 00004A15 DD 6E 0A 678 LD L,(IX+10) + 00004A18 FD 75 02 679 LD (IY+2),L + 00004A1B DD 66 0B 680 LD H,(IX+11) + 00004A1E FD 74 03 681 LD (IY+3),H + 00004A21 FD 70 04 682 LD (IY+4),B + 00004A24 DD 46 10 683 LD B,(IX+16) + 00004A27 DD 6E 0E 684 LD L,(IX+14) + 00004A2A FD 75 05 685 LD (IY+5),L + 00004A2D DD 66 0F 686 LD H,(IX+15) + 00004A30 FD 74 06 687 LD (IY+6),H + 00004A33 FD 70 07 688 LD (IY+7),B + 00004A36 AF 689 XOR A + 00004A37 FD 77 08 690 LD (IY+8),A + 00004A3A FD 77 09 691 LD (IY+9),A + 00004A3D DD 6E 12 692 LD L,(IX+18) + 00004A40 FD 75 0A 693 LD (IY+10),L + 00004A43 DD 66 13 694 LD H,(IX+19) + 00004A46 FD 74 0B 695 LD (IY+11),H + 00004A49 DD 6E 14 696 LD L,(IX+20) + 00004A4C FD 75 0C 697 LD (IY+12),L + 00004A4F DD 66 15 698 LD H,(IX+21) + 00004A52 FD 74 0D 699 LD (IY+13),H + 00004A55 21 0C 00 700 LD HL,12 + 00004A58 ED 4B C0 86 701 LD BC,(global) + 00004A5C 09 702 ADD HL,BC + 00004A5D 7E 703 LD A,(HL) + 00004A5E 23 704 INC HL + 00004A5F B6 705 OR (HL) + 00004A60 21 0C 00 706 LD HL,12 + 00004A63 ED 4B C0 86 707 LD BC,(global) + 00004A67 09 708 ADD HL,BC + 00004A68 20 10 709 JR NZ,?0019 + 00004A6A 710 ?0018: + 00004A6A FD E5 711 PUSH IY + 00004A6C C1 712 POP BC + 00004A6D 71 713 LD (HL),C + 00004A6E 23 714 INC HL + 00004A6F 70 715 LD (HL),B + 00004A70 21 0A 00 716 LD HL,10 + 00004A73 ED 4B C0 86 717 LD BC,(global) + 00004A77 09 718 ADD HL,BC + 00004A78 18 12 719 JR ?0021 + 00004A7A 720 ?0019: + 00004A7A 46 721 LD B,(HL) + 00004A7B 23 722 INC HL + 00004A7C 66 723 LD H,(HL) + 00004A7D 68 724 LD L,B + 00004A7E EB 725 EX DE,HL + 00004A7F 726 ?0022: + 00004A7F 21 08 00 727 LD HL,8 + 00004A82 19 728 ADD HL,DE + 00004A83 7E 729 LD A,(HL) + 00004A84 23 730 INC HL + 00004A85 B6 731 OR (HL) + 00004A86 21 08 00 732 LD HL,8 + 00004A89 19 733 ADD HL,DE + 00004A8A 20 EE 734 JR NZ,?0019 + 00004A8C 735 ?0023: + 00004A8C 736 ?0021: + 00004A8C FD E5 737 PUSH IY + 00004A8E C1 738 POP BC + 00004A8F 71 739 LD (HL),C + 00004A90 23 740 INC HL + 00004A91 70 741 LD (HL),B + 00004A92 742 ?0020: + 00004A92 FD E1 743 POP IY + 00004A94 C3 1F 81 744 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004A97 745 ?0447: + 00004A97 3E 01 746 LD A,BYTE3 malloc + 00004A99 21 D8 42 747 LD HL,LWRD malloc + 00004A9C CD 5E 81 748 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A9F E5 749 PUSH HL + 00004AA0 FD E1 750 POP IY + 00004AA2 C9 751 RET + 00004AA3 752 stringwidth: + 00004AA3 FD E5 753 PUSH IY + 00004AA5 DD E5 754 PUSH IX + 00004AA7 C5 755 PUSH BC + 00004AA8 D5 756 PUSH DE + 00004AA9 DD 21 00 00 757 LD IX,0 + 00004AAD FD 21 00 00 758 LD IY,0 + 00004AB1 759 ?0025: + 00004AB1 FD E5 760 PUSH IY + 00004AB3 21 02 00 761 LD HL,2 + 00004AB6 39 762 ADD HL,SP + 00004AB7 4E 763 LD C,(HL) + 00004AB8 23 764 INC HL + 00004AB9 46 765 LD B,(HL) + 00004ABA E1 766 POP HL + 00004ABB 09 767 ADD HL,BC + 00004ABC 7E 768 LD A,(HL) + 00004ABD B7 769 OR A + 00004ABE 28 50 770 JR Z,?0024 + 00004AC0 771 ?0026: + 00004AC0 FD E5 772 PUSH IY + 00004AC2 E1 773 POP HL + 00004AC3 09 774 ADD HL,BC + 00004AC4 5E 775 LD E,(HL) + 00004AC5 CD 40 81 776 CALL LWRD ?C_V_SWITCH_L06 + 00004AC8 0A 00 777 DEFW 10 + 00004ACA 21 778 DEFB 33 + 00004ACB 2C 779 DEFB 44 + 00004ACC 2E 780 DEFB 46 + 00004ACD 31 781 DEFB 49 + 00004ACE 49 782 DEFB 73 + 00004ACF 69 783 DEFB 105 + 00004AD0 6A 784 DEFB 106 + 00004AD1 6B 785 DEFB 107 + 00004AD2 6C 786 DEFB 108 + 00004AD3 72 787 DEFB 114 + 00004AD4 FE 4A 788 DEFW ?0032 + 00004AD6 F9 4A 789 DEFW ?0031 + 00004AD8 EF 4A 790 DEFW ?0029 + 00004ADA F9 4A 791 DEFW ?0031 + 00004ADC F9 4A 792 DEFW ?0031 + 00004ADE EA 4A 793 DEFW ?0028 + 00004AE0 EA 4A 794 DEFW ?0028 + 00004AE2 F4 4A 795 DEFW ?0030 + 00004AE4 F4 4A 796 DEFW ?0030 + 00004AE6 F4 4A 797 DEFW ?0030 + 00004AE8 EA 4A 798 DEFW ?0028 + 00004AEA 799 ?0028: + 00004AEA 01 02 00 800 LD BC,2 + 00004AED 18 12 801 JR ?0331 + 00004AEF 802 ?0029: + 00004AEF 01 03 00 803 LD BC,3 + 00004AF2 18 0D 804 JR ?0331 + 00004AF4 805 ?0030: + 00004AF4 01 04 00 806 LD BC,4 + 00004AF7 18 08 807 JR ?0331 + 00004AF9 808 ?0031: + 00004AF9 01 05 00 809 LD BC,5 + 00004AFC 18 03 810 JR ?0331 + 00004AFE 811 ?0032: + 00004AFE 01 06 00 812 LD BC,6 + 00004B01 813 ?0331: + 00004B01 DD 09 814 ADD IX,BC + 00004B03 815 ?0027: + 00004B03 21 02 00 816 LD HL,2 + 00004B06 39 817 ADD HL,SP + 00004B07 4E 818 LD C,(HL) + 00004B08 23 819 INC HL + 00004B09 46 820 LD B,(HL) + 00004B0A DD 09 821 ADD IX,BC + 00004B0C FD 23 822 INC IY + 00004B0E 18 A1 823 JR ?0025 + 00004B10 824 ?0024: + 00004B10 DD E5 825 PUSH IX + 00004B12 E1 826 POP HL + 00004B13 F1 827 POP AF + 00004B14 F1 828 POP AF + 00004B15 DD E1 829 POP IX + 00004B17 FD E1 830 POP IY + 00004B19 C3 25 81 831 JP LWRD ?BANK_FAST_LEAVE_L08 + 00004B1C 832 stringheight: + 00004B1C CD 52 81 833 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B1F 7B 834 LD A,E + 00004B20 FE 80 835 CP 128 + 00004B22 30 06 836 JR NC,?0034 + 00004B24 837 ?0033: + 00004B24 21 07 00 838 LD HL,7 + 00004B27 09 839 ADD HL,BC + 00004B28 18 0C 840 JR ?0036 + 00004B2A 841 ?0034: + 00004B2A FE CC 842 CP 204 + 00004B2C 38 08 843 JR C,?0036 + 00004B2E 3E DF 844 LD A,223 + 00004B30 BB 845 CP E + 00004B31 38 03 846 JR C,?0036 + 00004B33 847 ?0038: + 00004B33 848 ?0037: + 00004B33 849 ?0035: + 00004B33 69 850 LD L,C + 00004B34 60 851 LD H,B + 00004B35 23 852 INC HL + 00004B36 853 ?0036: + 00004B36 854 ?0039: + 00004B36 C3 1F 81 855 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004B39 856 stringheight01: + 00004B39 CD 52 81 857 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B3C 01 00 00 858 LD BC,0 + 00004B3F 859 ?0415: + 00004B3F 1A 860 LD A,(DE) + 00004B40 5F 861 LD E,A + 00004B41 3E 00 862 LD A,BYTE3 stringheight + 00004B43 21 1C 4B 863 LD HL,LWRD stringheight + 00004B46 CD 5E 81 864 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004B49 C3 1F 81 865 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004B4C 866 stringheight2: + 00004B4C CD 52 81 867 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B4F 01 05 00 868 LD BC,5 + 00004B52 C3 3F 4B 869 JP LWRD ?0415 + 00004B55 870 stringwidth0: + 00004B55 CD 52 81 871 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B58 01 00 00 872 LD BC,0 + 00004B5B 873 ?0416: + 00004B5B 3E 00 874 LD A,BYTE3 stringwidth + 00004B5D 21 A3 4A 875 LD HL,LWRD stringwidth + 00004B60 CD 5E 81 876 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004B63 C3 1F 81 877 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004B66 878 stringwidth1: + 00004B66 CD 52 81 879 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B69 01 02 00 880 LD BC,2 + 00004B6C C3 5B 4B 881 JP LWRD ?0416 + 00004B6F 882 stringwidth2: + 00004B6F CD 52 81 883 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004B72 01 03 00 884 LD BC,3 + 00004B75 C3 5B 4B 885 JP LWRD ?0416 + 00004B78 886 Component_new: + 00004B78 CD 88 81 887 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004B7B 00 00 888 DEFW 0 + 00004B7D FD E5 889 PUSH IY + 00004B7F 11 28 00 890 LD DE,40 + 00004B82 CD 97 4A 891 CALL LWRD ?0447 + 00004B85 2A C0 86 892 LD HL,(global) + 00004B88 5E 893 LD E,(HL) + 00004B89 23 894 INC HL + 00004B8A 56 895 LD D,(HL) + 00004B8B 13 896 INC DE + 00004B8C 72 897 LD (HL),D + 00004B8D 2B 898 DEC HL + 00004B8E 73 899 LD (HL),E + 00004B8F FD E5 900 PUSH IY + 00004B91 E1 901 POP HL + 00004B92 73 902 LD (HL),E + 00004B93 23 903 INC HL + 00004B94 72 904 LD (HL),D + 00004B95 DD 6E 02 905 LD L,(IX+2) + 00004B98 FD 75 02 906 LD (IY+2),L + 00004B9B DD 66 03 907 LD H,(IX+3) + 00004B9E FD 74 03 908 LD (IY+3),H + 00004BA1 FD 71 04 909 LD (IY+4),C + 00004BA4 FD 70 05 910 LD (IY+5),B + 00004BA7 DD 6E 0A 911 LD L,(IX+10) + 00004BAA FD 75 06 912 LD (IY+6),L + 00004BAD DD 66 0B 913 LD H,(IX+11) + 00004BB0 FD 74 07 914 LD (IY+7),H + 00004BB3 DD 6E 0C 915 LD L,(IX+12) + 00004BB6 FD 75 08 916 LD (IY+8),L + 00004BB9 DD 66 0D 917 LD H,(IX+13) + 00004BBC FD 74 09 918 LD (IY+9),H + 00004BBF AF 919 XOR A + 00004BC0 FD 77 0A 920 LD (IY+10),A + 00004BC3 FD 77 0B 921 LD (IY+11),A + 00004BC6 FD 77 0C 922 LD (IY+12),A + 00004BC9 FD 77 0D 923 LD (IY+13),A + 00004BCC FD 77 0E 924 LD (IY+14),A + 00004BCF FD 77 0F 925 LD (IY+15),A + 00004BD2 FD 77 10 926 LD (IY+16),A + 00004BD5 FD 77 11 927 LD (IY+17),A + 00004BD8 FD 77 12 928 LD (IY+18),A + 00004BDB FD 77 13 929 LD (IY+19),A + 00004BDE FD 77 14 930 LD (IY+20),A + 00004BE1 FD 77 15 931 LD (IY+21),A + 00004BE4 FD 77 16 932 LD (IY+22),A + 00004BE7 FD 77 17 933 LD (IY+23),A + 00004BEA FD 77 18 934 LD (IY+24),A + 00004BED FD 77 19 935 LD (IY+25),A + 00004BF0 FD 77 1A 936 LD (IY+26),A + 00004BF3 FD 77 1B 937 LD (IY+27),A + 00004BF6 FD 77 1C 938 LD (IY+28),A + 00004BF9 FD 77 1D 939 LD (IY+29),A + 00004BFC FD 77 1E 940 LD (IY+30),A + 00004BFF FD 77 1F 941 LD (IY+31),A + 00004C02 FD 77 24 942 LD (IY+36),A + 00004C05 FD 77 25 943 LD (IY+37),A + 00004C08 FD 77 26 944 LD (IY+38),A + 00004C0B FD 77 27 945 LD (IY+39),A + 00004C0E FD 77 20 946 LD (IY+32),A + 00004C11 FD 77 21 947 LD (IY+33),A + 00004C14 FD 77 22 948 LD (IY+34),A + 00004C17 FD 77 23 949 LD (IY+35),A + 00004C1A 950 ?0418: + 00004C1A FD E5 951 PUSH IY + 00004C1C E1 952 POP HL + 00004C1D FD E1 953 POP IY + 00004C1F C3 1F 81 954 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004C22 955 Component_setlabel: + 00004C22 CD 88 81 956 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004C25 00 00 957 DEFW 0 + 00004C27 FD E5 958 PUSH IY + 00004C29 DD 6E 02 959 LD L,(IX+2) + 00004C2C DD 66 03 960 LD H,(IX+3) + 00004C2F E5 961 PUSH HL + 00004C30 FD E1 962 POP IY + 00004C32 11 00 00 963 LD DE,0 + 00004C35 964 ?0041: + 00004C35 DD 6E 04 965 LD L,(IX+4) + 00004C38 DD 66 05 966 LD H,(IX+5) + 00004C3B 19 967 ADD HL,DE + 00004C3C 7E 968 LD A,(HL) + 00004C3D B7 969 OR A + 00004C3E 28 21 970 JR Z,?0040 + 00004C40 01 14 80 971 LD BC,32788 + 00004C43 6B 972 LD L,E + 00004C44 62 973 LD H,D + 00004C45 78 974 LD A,B + 00004C46 AC 975 XOR H + 00004C47 67 976 LD H,A + 00004C48 ED 42 977 SBC HL,BC + 00004C4A 30 15 978 JR NC,?0040 + 00004C4C 979 ?0044: + 00004C4C 980 ?0043: + 00004C4C 981 ?0042: + 00004C4C FD 6E 20 982 LD L,(IY+32) + 00004C4F FD 66 21 983 LD H,(IY+33) + 00004C52 19 984 ADD HL,DE + 00004C53 E5 985 PUSH HL + 00004C54 DD 6E 04 986 LD L,(IX+4) + 00004C57 DD 66 05 987 LD H,(IX+5) + 00004C5A 19 988 ADD HL,DE + 00004C5B 46 989 LD B,(HL) + 00004C5C E1 990 POP HL + 00004C5D 70 991 LD (HL),B + 00004C5E 13 992 INC DE + 00004C5F 18 D4 993 JR ?0041 + 00004C61 994 ?0040: + 00004C61 FD 6E 20 995 LD L,(IY+32) + 00004C64 FD 66 21 996 LD H,(IY+33) + 00004C67 19 997 ADD HL,DE + 00004C68 36 00 998 LD (HL),0 + 00004C6A FD E1 999 POP IY + 00004C6C C3 1F 81 1000 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004C6F 1001 Component_add: + 00004C6F CD 88 81 1002 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004C72 00 00 1003 DEFW 0 + 00004C74 FD E5 1004 PUSH IY + 00004C76 59 1005 LD E,C + 00004C77 50 1006 LD D,B + 00004C78 21 15 00 1007 LD HL,21 + 00004C7B DD 4E 02 1008 LD C,(IX+2) + 00004C7E DD 46 03 1009 LD B,(IX+3) + 00004C81 09 1010 ADD HL,BC + 00004C82 7E 1011 LD A,(HL) + 00004C83 23 1012 INC HL + 00004C84 66 1013 LD H,(HL) + 00004C85 6F 1014 LD L,A + 00004C86 E5 1015 PUSH HL + 00004C87 FD E1 1016 POP IY + 00004C89 21 15 00 1017 LD HL,21 + 00004C8C 09 1018 ADD HL,BC + 00004C8D 7E 1019 LD A,(HL) + 00004C8E 23 1020 INC HL + 00004C8F B6 1021 OR (HL) + 00004C90 20 09 1022 JR NZ,?0046 + 00004C92 1023 ?0045: + 00004C92 21 15 00 1024 LD HL,21 + 00004C95 09 1025 ADD HL,BC + 00004C96 73 1026 LD (HL),E + 00004C97 23 1027 INC HL + 00004C98 72 1028 LD (HL),D + 00004C99 18 19 1029 JR ?0335 + 00004C9B 1030 ?0046: + 00004C9B 1031 ?0049: + 00004C9B FD 7E 13 1032 LD A,(IY+19) + 00004C9E FD B6 14 1033 OR (IY+20) + 00004CA1 28 0B 1034 JR Z,?0048 + 00004CA3 1035 ?0050: + 00004CA3 FD 6E 13 1036 LD L,(IY+19) + 00004CA6 FD 66 14 1037 LD H,(IY+20) + 00004CA9 E5 1038 PUSH HL + 00004CAA FD E1 1039 POP IY + 00004CAC 18 ED 1040 JR ?0046 + 00004CAE 1041 ?0048: + 00004CAE FD 73 13 1042 LD (IY+19),E + 00004CB1 FD 72 14 1043 LD (IY+20),D + 00004CB4 1044 ?0335: + 00004CB4 21 13 00 1045 LD HL,19 + 00004CB7 19 1046 ADD HL,DE + 00004CB8 77 1047 LD (HL),A + 00004CB9 23 1048 INC HL + 00004CBA 77 1049 LD (HL),A + 00004CBB 1050 ?0047: + 00004CBB 21 11 00 1051 LD HL,17 + 00004CBE 19 1052 ADD HL,DE + 00004CBF DD 4E 02 1053 LD C,(IX+2) + 00004CC2 71 1054 LD (HL),C + 00004CC3 DD 46 03 1055 LD B,(IX+3) + 00004CC6 23 1056 INC HL + 00004CC7 70 1057 LD (HL),B + 00004CC8 FD E1 1058 POP IY + 00004CCA C3 1F 81 1059 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004CCD 1060 Component_paint: + 00004CCD C5 1061 PUSH BC + 00004CCE FD E5 1062 PUSH IY + 00004CD0 DD E5 1063 PUSH IX + 00004CD2 21 15 00 1064 LD HL,21 + 00004CD5 19 1065 ADD HL,DE + 00004CD6 46 1066 LD B,(HL) + 00004CD7 23 1067 INC HL + 00004CD8 66 1068 LD H,(HL) + 00004CD9 68 1069 LD L,B + 00004CDA E5 1070 PUSH HL + 00004CDB DD E1 1071 POP IX + 00004CDD CD 09 4D 1072 CALL LWRD ?0477 + 00004CE0 1073 ?0052: + 00004CE0 DD E5 1074 PUSH IX + 00004CE2 E1 1075 POP HL + 00004CE3 7D 1076 LD A,L + 00004CE4 B4 1077 OR H + 00004CE5 28 1A 1078 JR Z,?0051 + 00004CE7 1079 ?0053: + 00004CE7 DD E5 1080 PUSH IX + 00004CE9 D1 1081 POP DE + 00004CEA DD 7E 1C 1082 LD A,(IX+28) + 00004CED DD 6E 1A 1083 LD L,(IX+26) + 00004CF0 DD 66 1B 1084 LD H,(IX+27) + 00004CF3 CD 5E 81 1085 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004CF6 DD 6E 13 1086 LD L,(IX+19) + 00004CF9 DD 66 14 1087 LD H,(IX+20) + 00004CFC E5 1088 PUSH HL + 00004CFD DD E1 1089 POP IX + 00004CFF 18 DF 1090 JR ?0052 + 00004D01 1091 ?0051: + 00004D01 1E 01 1092 LD E,1 + 00004D03 CD 0B 4D 1093 CALL LWRD ?0478 + 00004D06 C3 27 48 1094 JP LWRD ?0411 + 00004D09 1095 ?0477: + 00004D09 1E 00 1096 LD E,0 + 00004D0B 1097 ?0478: + 00004D0B 3E 00 1098 LD A,BYTE3 EnableScreen + 00004D0D 21 C3 48 1099 LD HL,LWRD EnableScreen + 00004D10 C3 5E 81 1100 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004D13 1101 Component_findXY: + 00004D13 CD 88 81 1102 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004D16 00 00 1103 DEFW 0 + 00004D18 FD E5 1104 PUSH IY + 00004D1A DD 6E 02 1105 LD L,(IX+2) + 00004D1D DD 66 03 1106 LD H,(IX+3) + 00004D20 E5 1107 PUSH HL + 00004D21 FD E1 1108 POP IY + 00004D23 1109 ?0056: + 00004D23 DD 6E 04 1110 LD L,(IX+4) + 00004D26 DD 66 05 1111 LD H,(IX+5) + 00004D29 7E 1112 LD A,(HL) + 00004D2A FD 86 02 1113 ADD A,(IY+2) + 00004D2D 77 1114 LD (HL),A + 00004D2E 23 1115 INC HL + 00004D2F 7E 1116 LD A,(HL) + 00004D30 FD 8E 03 1117 ADC A,(IY+3) + 00004D33 77 1118 LD (HL),A + 00004D34 DD 6E 0A 1119 LD L,(IX+10) + 00004D37 DD 66 0B 1120 LD H,(IX+11) + 00004D3A 7E 1121 LD A,(HL) + 00004D3B FD 86 04 1122 ADD A,(IY+4) + 00004D3E 77 1123 LD (HL),A + 00004D3F 23 1124 INC HL + 00004D40 7E 1125 LD A,(HL) + 00004D41 FD 8E 05 1126 ADC A,(IY+5) + 00004D44 77 1127 LD (HL),A + 00004D45 FD 6E 11 1128 LD L,(IY+17) + 00004D48 FD 66 12 1129 LD H,(IY+18) + 00004D4B E5 1130 PUSH HL + 00004D4C FD E1 1131 POP IY + 00004D4E 7D 1132 LD A,L + 00004D4F B4 1133 OR H + 00004D50 20 D1 1134 JR NZ,?0056 + 00004D52 1135 ?0054: + 00004D52 FD E1 1136 POP IY + 00004D54 C3 1F 81 1137 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004D57 1138 Component_find: + 00004D57 CD 88 81 1139 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004D5A 00 00 1140 DEFW 0 + 00004D5C 21 15 00 1141 LD HL,21 + 00004D5F DD 4E 02 1142 LD C,(IX+2) + 00004D62 DD 46 03 1143 LD B,(IX+3) + 00004D65 09 1144 ADD HL,BC + 00004D66 1145 ?0336: + 00004D66 46 1146 LD B,(HL) + 00004D67 23 1147 INC HL + 00004D68 66 1148 LD H,(HL) + 00004D69 68 1149 LD L,B + 00004D6A EB 1150 EX DE,HL + 00004D6B 1151 ?0058: + 00004D6B 7B 1152 LD A,E + 00004D6C B2 1153 OR D + 00004D6D 28 1B 1154 JR Z,?0057 + 00004D6F 1155 ?0059: + 00004D6F 21 10 00 1156 LD HL,16 + 00004D72 19 1157 ADD HL,DE + 00004D73 4E 1158 LD C,(HL) + 00004D74 06 00 1159 LD B,0 + 00004D76 DD 6E 04 1160 LD L,(IX+4) + 00004D79 DD 66 05 1161 LD H,(IX+5) + 00004D7C A7 1162 AND A + 00004D7D ED 42 1163 SBC HL,BC + 00004D7F 20 03 1164 JR NZ,?0061 + 00004D81 1165 ?0060: + 00004D81 EB 1166 EX DE,HL + 00004D82 18 08 1167 JR ?0062 + 00004D84 1168 ?0061: + 00004D84 21 13 00 1169 LD HL,19 + 00004D87 19 1170 ADD HL,DE + 00004D88 18 DC 1171 JR ?0336 + 00004D8A 1172 ?0057: + 00004D8A 6F 1173 LD L,A + 00004D8B 67 1174 LD H,A + 00004D8C 1175 ?0062: + 00004D8C C3 1F 81 1176 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004D8F 1177 Component_delete: + 00004D8F CD 88 81 1178 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004D92 F8 FF 1179 DEFW 65528 + 00004D94 FD E5 1180 PUSH IY + 00004D96 DD 6E 02 1181 LD L,(IX+2) + 00004D99 DD 66 03 1182 LD H,(IX+3) + 00004D9C E5 1183 PUSH HL + 00004D9D FD E1 1184 POP IY + 00004D9F FD 6E 15 1185 LD L,(IY+21) + 00004DA2 DD 75 F8 1186 LD (IX-8),L + 00004DA5 FD 66 16 1187 LD H,(IY+22) + 00004DA8 DD 74 F9 1188 LD (IX-7),H + 00004DAB FD E5 1189 PUSH IY + 00004DAD E1 1190 POP HL + 00004DAE 7D 1191 LD A,L + 00004DAF B4 1192 OR H + 00004DB0 CA 42 4F 1193 JP Z,?0064 + 00004DB3 1194 ?0063: + 00004DB3 1195 ?0066: + 00004DB3 DD 7E F8 1196 LD A,(IX-8) + 00004DB6 DD B6 F9 1197 OR (IX-7) + 00004DB9 28 11 1198 JR Z,?0065 + 00004DBB 1199 ?0067: + 00004DBB DD 5E F8 1200 LD E,(IX-8) + 00004DBE DD 56 F9 1201 LD D,(IX-7) + 00004DC1 CD 58 4F 1202 CALL LWRD ?0453 + 00004DC4 DD 75 F8 1203 LD (IX-8),L + 00004DC7 DD 74 F9 1204 LD (IX-7),H + 00004DCA 18 E7 1205 JR ?0063 + 00004DCC 1206 ?0065: + 00004DCC FD 7E 11 1207 LD A,(IY+17) + 00004DCF FD B6 12 1208 OR (IY+18) + 00004DD2 CA 5E 4E 1209 JP Z,?0079 + 00004DD5 1210 ?0068: + 00004DD5 FD 6E 11 1211 LD L,(IY+17) + 00004DD8 FD 66 12 1212 LD H,(IY+18) + 00004DDB 01 15 00 1213 LD BC,21 + 00004DDE 09 1214 ADD HL,BC + 00004DDF 46 1215 LD B,(HL) + 00004DE0 23 1216 INC HL + 00004DE1 66 1217 LD H,(HL) + 00004DE2 68 1218 LD L,B + 00004DE3 FD E5 1219 PUSH IY + 00004DE5 C1 1220 POP BC + 00004DE6 A7 1221 AND A + 00004DE7 ED 42 1222 SBC HL,BC + 00004DE9 FD 6E 11 1223 LD L,(IY+17) + 00004DEC FD 66 12 1224 LD H,(IY+18) + 00004DEF 01 15 00 1225 LD BC,21 + 00004DF2 09 1226 ADD HL,BC + 00004DF3 20 09 1227 JR NZ,?0071 + 00004DF5 1228 ?0070: + 00004DF5 E5 1229 PUSH HL + 00004DF6 FD 6E 11 1230 LD L,(IY+17) + 00004DF9 FD 66 12 1231 LD H,(IY+18) + 00004DFC 18 50 1232 JR ?0339 + 00004DFE 1233 ?0071: + 00004DFE 46 1234 LD B,(HL) + 00004DFF 23 1235 INC HL + 00004E00 66 1236 LD H,(HL) + 00004E01 68 1237 LD L,B + 00004E02 1238 ?0338: + 00004E02 DD 75 F8 1239 LD (IX-8),L + 00004E05 DD 74 F9 1240 LD (IX-7),H + 00004E08 1241 ?0074: + 00004E08 21 13 00 1242 LD HL,19 + 00004E0B DD 4E F8 1243 LD C,(IX-8) + 00004E0E DD 46 F9 1244 LD B,(IX-7) + 00004E11 09 1245 ADD HL,BC + 00004E12 46 1246 LD B,(HL) + 00004E13 23 1247 INC HL + 00004E14 66 1248 LD H,(HL) + 00004E15 68 1249 LD L,B + 00004E16 FD E5 1250 PUSH IY + 00004E18 C1 1251 POP BC + 00004E19 A7 1252 AND A + 00004E1A ED 42 1253 SBC HL,BC + 00004E1C 28 19 1254 JR Z,?0073 + 00004E1E 21 13 00 1255 LD HL,19 + 00004E21 DD 4E F8 1256 LD C,(IX-8) + 00004E24 DD 46 F9 1257 LD B,(IX-7) + 00004E27 09 1258 ADD HL,BC + 00004E28 7E 1259 LD A,(HL) + 00004E29 23 1260 INC HL + 00004E2A B6 1261 OR (HL) + 00004E2B 28 0A 1262 JR Z,?0073 + 00004E2D 1263 ?0077: + 00004E2D 1264 ?0076: + 00004E2D 1265 ?0075: + 00004E2D 21 13 00 1266 LD HL,19 + 00004E30 09 1267 ADD HL,BC + 00004E31 56 1268 LD D,(HL) + 00004E32 23 1269 INC HL + 00004E33 66 1270 LD H,(HL) + 00004E34 6A 1271 LD L,D + 00004E35 18 CB 1272 JR ?0338 + 00004E37 1273 ?0073: + 00004E37 21 13 00 1274 LD HL,19 + 00004E3A DD 4E F8 1275 LD C,(IX-8) + 00004E3D DD 46 F9 1276 LD B,(IX-7) + 00004E40 09 1277 ADD HL,BC + 00004E41 7E 1278 LD A,(HL) + 00004E42 23 1279 INC HL + 00004E43 B6 1280 OR (HL) + 00004E44 28 18 1281 JR Z,?0079 + 00004E46 1282 ?0078: + 00004E46 21 13 00 1283 LD HL,19 + 00004E49 09 1284 ADD HL,BC + 00004E4A E5 1285 PUSH HL + 00004E4B 21 13 00 1286 LD HL,19 + 00004E4E 1287 ?0339: + 00004E4E 09 1288 ADD HL,BC + 00004E4F 46 1289 LD B,(HL) + 00004E50 23 1290 INC HL + 00004E51 66 1291 LD H,(HL) + 00004E52 68 1292 LD L,B + 00004E53 01 13 00 1293 LD BC,19 + 00004E56 09 1294 ADD HL,BC + 00004E57 4E 1295 LD C,(HL) + 00004E58 23 1296 INC HL + 00004E59 46 1297 LD B,(HL) + 00004E5A E1 1298 POP HL + 00004E5B 71 1299 LD (HL),C + 00004E5C 23 1300 INC HL + 00004E5D 70 1301 LD (HL),B + 00004E5E 1302 ?0079: + 00004E5E 1303 ?0072: + 00004E5E 1304 ?0069: + 00004E5E FD 6E 13 1305 LD L,(IY+19) + 00004E61 DD 75 F8 1306 LD (IX-8),L + 00004E64 FD 66 14 1307 LD H,(IY+20) + 00004E67 DD 74 F9 1308 LD (IX-7),H + 00004E6A 3E 04 1309 LD A,4 + 00004E6C FD AE 24 1310 XOR (IY+36) + 00004E6F FD B6 25 1311 OR (IY+37) + 00004E72 C2 0E 4F 1312 JP NZ,?0088 + 00004E75 1313 ?0080: + 00004E75 FD 6E 11 1314 LD L,(IY+17) + 00004E78 DD 75 FC 1315 LD (IX-4),L + 00004E7B FD 66 12 1316 LD H,(IY+18) + 00004E7E DD 74 FD 1317 LD (IX-3),H + 00004E81 FD 6E 26 1318 LD L,(IY+38) + 00004E84 DD 75 FE 1319 LD (IX-2),L + 00004E87 FD 66 27 1320 LD H,(IY+39) + 00004E8A DD 74 FF 1321 LD (IX-1),H + 00004E8D CD 4D 4F 1322 CALL LWRD ?0451 + 00004E90 DD 6E FE 1323 LD L,(IX-2) + 00004E93 DD 66 FF 1324 LD H,(IX-1) + 00004E96 23 1325 INC HL + 00004E97 23 1326 INC HL + 00004E98 CD 4D 4F 1327 CALL LWRD ?0451 + 00004E9B 1328 ?0083: + 00004E9B DD 7E FC 1329 LD A,(IX-4) + 00004E9E DD B6 FD 1330 OR (IX-3) + 00004EA1 28 20 1331 JR Z,?0082 + 00004EA3 21 24 00 1332 LD HL,36 + 00004EA6 DD 4E FC 1333 LD C,(IX-4) + 00004EA9 DD 46 FD 1334 LD B,(IX-3) + 00004EAC 09 1335 ADD HL,BC + 00004EAD 3E 04 1336 LD A,4 + 00004EAF AE 1337 XOR (HL) + 00004EB0 23 1338 INC HL + 00004EB1 B6 1339 OR (HL) + 00004EB2 28 0F 1340 JR Z,?0082 + 00004EB4 1341 ?0086: + 00004EB4 1342 ?0085: + 00004EB4 1343 ?0084: + 00004EB4 21 11 00 1344 LD HL,17 + 00004EB7 09 1345 ADD HL,BC + 00004EB8 56 1346 LD D,(HL) + 00004EB9 DD 72 FC 1347 LD (IX-4),D + 00004EBC 23 1348 INC HL + 00004EBD 66 1349 LD H,(HL) + 00004EBE DD 74 FD 1350 LD (IX-3),H + 00004EC1 18 D8 1351 JR ?0083 + 00004EC3 1352 ?0082: + 00004EC3 DD 7E FC 1353 LD A,(IX-4) + 00004EC6 DD B6 FD 1354 OR (IX-3) + 00004EC9 28 43 1355 JR Z,?0088 + 00004ECB 1356 ?0087: + 00004ECB 21 26 00 1357 LD HL,38 + 00004ECE DD 4E FC 1358 LD C,(IX-4) + 00004ED1 DD 46 FD 1359 LD B,(IX-3) + 00004ED4 09 1360 ADD HL,BC + 00004ED5 46 1361 LD B,(HL) + 00004ED6 DD 70 FE 1362 LD (IX-2),B + 00004ED9 23 1363 INC HL + 00004EDA 66 1364 LD H,(HL) + 00004EDB DD 74 FF 1365 LD (IX-1),H + 00004EDE 21 06 00 1366 LD HL,6 + 00004EE1 ED 4B C0 86 1367 LD BC,(global) + 00004EE5 09 1368 ADD HL,BC + 00004EE6 E5 1369 PUSH HL + 00004EE7 DD 6E FE 1370 LD L,(IX-2) + 00004EEA DD 66 FF 1371 LD H,(IX-1) + 00004EED 5E 1372 LD E,(HL) + 00004EEE 23 1373 INC HL + 00004EEF 56 1374 LD D,(HL) + 00004EF0 E1 1375 POP HL + 00004EF1 73 1376 LD (HL),E + 00004EF2 23 1377 INC HL + 00004EF3 72 1378 LD (HL),D + 00004EF4 21 08 00 1379 LD HL,8 + 00004EF7 ED 4B C0 86 1380 LD BC,(global) + 00004EFB 09 1381 ADD HL,BC + 00004EFC E5 1382 PUSH HL + 00004EFD DD 4E FE 1383 LD C,(IX-2) + 00004F00 DD 46 FF 1384 LD B,(IX-1) + 00004F03 03 1385 INC BC + 00004F04 03 1386 INC BC + 00004F05 69 1387 LD L,C + 00004F06 60 1388 LD H,B + 00004F07 4E 1389 LD C,(HL) + 00004F08 23 1390 INC HL + 00004F09 46 1391 LD B,(HL) + 00004F0A E1 1392 POP HL + 00004F0B 71 1393 LD (HL),C + 00004F0C 23 1394 INC HL + 00004F0D 70 1395 LD (HL),B + 00004F0E 1396 ?0088: + 00004F0E 1397 ?0081: + 00004F0E FD 4E 24 1398 LD C,(IY+36) + 00004F11 FD 46 25 1399 LD B,(IY+37) + 00004F14 21 00 00 1400 LD HL,0 + 00004F17 CD A6 81 1401 CALL LWRD ?SS_CMP_L02 + 00004F1A 30 09 1402 JR NC,?0090 + 00004F1C 1403 ?0089: + 00004F1C FD 5E 26 1404 LD E,(IY+38) + 00004F1F FD 56 27 1405 LD D,(IY+39) + 00004F22 CD 50 4F 1406 CALL LWRD ?0452 + 00004F25 1407 ?0090: + 00004F25 FD CB 0B 76 1408 BIT 6,(IY+11) + 00004F29 20 11 1409 JR NZ,?0092 + 00004F2B FD 7E 20 1410 LD A,(IY+32) + 00004F2E FD B6 21 1411 OR (IY+33) + 00004F31 28 09 1412 JR Z,?0092 + 00004F33 1413 ?0094: + 00004F33 1414 ?0093: + 00004F33 1415 ?0091: + 00004F33 FD 5E 20 1416 LD E,(IY+32) + 00004F36 FD 56 21 1417 LD D,(IY+33) + 00004F39 CD 50 4F 1418 CALL LWRD ?0452 + 00004F3C 1419 ?0092: + 00004F3C FD E5 1420 PUSH IY + 00004F3E D1 1421 POP DE + 00004F3F CD 50 4F 1422 CALL LWRD ?0452 + 00004F42 1423 ?0064: + 00004F42 DD 6E F8 1424 LD L,(IX-8) + 00004F45 DD 66 F9 1425 LD H,(IX-7) + 00004F48 FD E1 1426 POP IY + 00004F4A C3 1F 81 1427 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004F4D 1428 ?0451: + 00004F4D 5E 1429 LD E,(HL) + 00004F4E 23 1430 INC HL + 00004F4F 56 1431 LD D,(HL) + 00004F50 1432 ?0452: + 00004F50 3E 00 1433 LD A,BYTE3 free + 00004F52 21 E5 73 1434 LD HL,LWRD free + 00004F55 C3 5E 81 1435 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004F58 1436 ?0453: + 00004F58 3E 00 1437 LD A,BYTE3 Component_delete + 00004F5A 21 8F 4D 1438 LD HL,LWRD Component_delete + 00004F5D C3 5E 81 1439 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004F60 1440 Component_delete_children: + 00004F60 C5 1441 PUSH BC + 00004F61 FD E5 1442 PUSH IY + 00004F63 DD E5 1443 PUSH IX + 00004F65 21 15 00 1444 LD HL,21 + 00004F68 19 1445 ADD HL,DE + 00004F69 46 1446 LD B,(HL) + 00004F6A 23 1447 INC HL + 00004F6B 66 1448 LD H,(HL) + 00004F6C 68 1449 LD L,B + 00004F6D 1450 ?0341: + 00004F6D E5 1451 PUSH HL + 00004F6E DD E1 1452 POP IX + 00004F70 1453 ?0096: + 00004F70 7D 1454 LD A,L + 00004F71 B4 1455 OR H + 00004F72 28 08 1456 JR Z,?0095 + 00004F74 1457 ?0097: + 00004F74 DD E5 1458 PUSH IX + 00004F76 D1 1459 POP DE + 00004F77 CD 58 4F 1460 CALL LWRD ?0453 + 00004F7A 18 F1 1461 JR ?0341 + 00004F7C 1462 ?0095: + 00004F7C C3 27 48 1463 JP LWRD ?0411 + 00004F7F 1464 Component_changestate_children: + 00004F7F CD 88 81 1465 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004F82 00 00 1466 DEFW 0 + 00004F84 FD E5 1467 PUSH IY + 00004F86 21 15 00 1468 LD HL,21 + 00004F89 DD 5E 02 1469 LD E,(IX+2) + 00004F8C DD 56 03 1470 LD D,(IX+3) + 00004F8F 19 1471 ADD HL,DE + 00004F90 1472 ?0342: + 00004F90 56 1473 LD D,(HL) + 00004F91 23 1474 INC HL + 00004F92 66 1475 LD H,(HL) + 00004F93 6A 1476 LD L,D + 00004F94 E5 1477 PUSH HL + 00004F95 FD E1 1478 POP IY + 00004F97 1479 ?0099: + 00004F97 7D 1480 LD A,L + 00004F98 B4 1481 OR H + 00004F99 28 3D 1482 JR Z,?0098 + 00004F9B 1483 ?0100: + 00004F9B 21 0A 00 1484 LD HL,10 + 00004F9E FD E5 1485 PUSH IY + 00004FA0 C1 1486 POP BC + 00004FA1 09 1487 ADD HL,BC + 00004FA2 DD 7E 04 1488 LD A,(IX+4) + 00004FA5 DD 56 05 1489 LD D,(IX+5) + 00004FA8 2F 1490 CPL + 00004FA9 5F 1491 LD E,A + 00004FAA 7A 1492 LD A,D + 00004FAB 2F 1493 CPL + 00004FAC 57 1494 LD D,A + 00004FAD 7E 1495 LD A,(HL) + 00004FAE A3 1496 AND E + 00004FAF 77 1497 LD (HL),A + 00004FB0 23 1498 INC HL + 00004FB1 7E 1499 LD A,(HL) + 00004FB2 A2 1500 AND D + 00004FB3 77 1501 LD (HL),A + 00004FB4 21 0A 00 1502 LD HL,10 + 00004FB7 09 1503 ADD HL,BC + 00004FB8 7E 1504 LD A,(HL) + 00004FB9 DD B6 0A 1505 OR (IX+10) + 00004FBC 77 1506 LD (HL),A + 00004FBD 23 1507 INC HL + 00004FBE 7E 1508 LD A,(HL) + 00004FBF DD B6 0B 1509 OR (IX+11) + 00004FC2 77 1510 LD (HL),A + 00004FC3 21 0A 00 1511 LD HL,10 + 00004FC6 09 1512 ADD HL,BC + 00004FC7 7E 1513 LD A,(HL) + 00004FC8 DD AE 0C 1514 XOR (IX+12) + 00004FCB 77 1515 LD (HL),A + 00004FCC 23 1516 INC HL + 00004FCD 7E 1517 LD A,(HL) + 00004FCE DD AE 0D 1518 XOR (IX+13) + 00004FD1 77 1519 LD (HL),A + 00004FD2 21 13 00 1520 LD HL,19 + 00004FD5 09 1521 ADD HL,BC + 00004FD6 18 B8 1522 JR ?0342 + 00004FD8 1523 ?0098: + 00004FD8 11 77 85 1524 LD DE,stdout + 00004FDB 3E 00 1525 LD A,BYTE3 fflush + 00004FDD 21 A9 6B 1526 LD HL,LWRD fflush + 00004FE0 CD 5E 81 1527 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004FE3 FD E1 1528 POP IY + 00004FE5 C3 1F 81 1529 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004FE8 1530 Component_linkstringtable: + 00004FE8 C5 1531 PUSH BC + 00004FE9 FD E5 1532 PUSH IY + 00004FEB DD E5 1533 PUSH IX + 00004FED D5 1534 PUSH DE + 00004FEE DD E1 1535 POP IX + 00004FF0 21 15 00 1536 LD HL,21 + 00004FF3 19 1537 ADD HL,DE + 00004FF4 46 1538 LD B,(HL) + 00004FF5 23 1539 INC HL + 00004FF6 66 1540 LD H,(HL) + 00004FF7 68 1541 LD L,B + 00004FF8 E5 1542 PUSH HL + 00004FF9 FD E1 1543 POP IY + 00004FFB 21 20 00 1544 LD HL,32 + 00004FFE 19 1545 ADD HL,DE + 00004FFF 46 1546 LD B,(HL) + 00005000 23 1547 INC HL + 00005001 66 1548 LD H,(HL) + 00005002 68 1549 LD L,B + 00005003 01 00 90 1550 LD BC,36864 + 00005006 3E 80 1551 LD A,128 + 00005008 AC 1552 XOR H + 00005009 67 1553 LD H,A + 0000500A ED 42 1554 SBC HL,BC + 0000500C 30 2E 1555 JR NC,?0102 + 0000500E DD 4E 20 1556 LD C,(IX+32) + 00005011 DD 46 21 1557 LD B,(IX+33) + 00005014 21 00 00 1558 LD HL,0 + 00005017 CD A6 81 1559 CALL LWRD ?SS_CMP_L02 + 0000501A 30 20 1560 JR NC,?0102 + 0000501C 1561 ?0104: + 0000501C 1562 ?0103: + 0000501C 1563 ?0101: + 0000501C DD 6E 20 1564 LD L,(IX+32) + 0000501F DD 66 21 1565 LD H,(IX+33) + 00005022 29 1566 ADD HL,HL + 00005023 E5 1567 PUSH HL + 00005024 21 08 00 1568 LD HL,8 + 00005027 ED 4B C0 86 1569 LD BC,(global) + 0000502B 09 1570 ADD HL,BC + 0000502C 4E 1571 LD C,(HL) + 0000502D 23 1572 INC HL + 0000502E 46 1573 LD B,(HL) + 0000502F E1 1574 POP HL + 00005030 09 1575 ADD HL,BC + 00005031 2B 1576 DEC HL + 00005032 2B 1577 DEC HL + 00005033 46 1578 LD B,(HL) + 00005034 DD 70 20 1579 LD (IX+32),B + 00005037 23 1580 INC HL + 00005038 66 1581 LD H,(HL) + 00005039 DD 74 21 1582 LD (IX+33),H + 0000503C 1583 ?0102: + 0000503C DD 6E 22 1584 LD L,(IX+34) + 0000503F DD 66 23 1585 LD H,(IX+35) + 00005042 01 00 90 1586 LD BC,36864 + 00005045 3E 80 1587 LD A,128 + 00005047 AC 1588 XOR H + 00005048 67 1589 LD H,A + 00005049 ED 42 1590 SBC HL,BC + 0000504B 30 2E 1591 JR NC,?0106 + 0000504D DD 4E 22 1592 LD C,(IX+34) + 00005050 DD 46 23 1593 LD B,(IX+35) + 00005053 21 00 00 1594 LD HL,0 + 00005056 CD A6 81 1595 CALL LWRD ?SS_CMP_L02 + 00005059 30 20 1596 JR NC,?0106 + 0000505B 1597 ?0108: + 0000505B 1598 ?0107: + 0000505B 1599 ?0105: + 0000505B DD 6E 22 1600 LD L,(IX+34) + 0000505E DD 66 23 1601 LD H,(IX+35) + 00005061 29 1602 ADD HL,HL + 00005062 E5 1603 PUSH HL + 00005063 21 08 00 1604 LD HL,8 + 00005066 ED 4B C0 86 1605 LD BC,(global) + 0000506A 09 1606 ADD HL,BC + 0000506B 4E 1607 LD C,(HL) + 0000506C 23 1608 INC HL + 0000506D 46 1609 LD B,(HL) + 0000506E E1 1610 POP HL + 0000506F 09 1611 ADD HL,BC + 00005070 2B 1612 DEC HL + 00005071 2B 1613 DEC HL + 00005072 46 1614 LD B,(HL) + 00005073 DD 70 22 1615 LD (IX+34),B + 00005076 23 1616 INC HL + 00005077 66 1617 LD H,(HL) + 00005078 DD 74 23 1618 LD (IX+35),H + 0000507B 1619 ?0106: + 0000507B 1620 ?0110: + 0000507B FD E5 1621 PUSH IY + 0000507D E1 1622 POP HL + 0000507E 7D 1623 LD A,L + 0000507F B4 1624 OR H + 00005080 28 16 1625 JR Z,?0109 + 00005082 1626 ?0111: + 00005082 FD E5 1627 PUSH IY + 00005084 D1 1628 POP DE + 00005085 3E 00 1629 LD A,BYTE3 Component_linkstringtable + 00005087 21 E8 4F 1630 LD HL,LWRD Component_linkstringtable + 0000508A CD 5E 81 1631 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000508D FD 6E 13 1632 LD L,(IY+19) + 00005090 FD 66 14 1633 LD H,(IY+20) + 00005093 E5 1634 PUSH HL + 00005094 FD E1 1635 POP IY + 00005096 18 E3 1636 JR ?0106 + 00005098 1637 ?0109: + 00005098 C3 27 48 1638 JP LWRD ?0411 + 0000509B 1639 Window_handler: + 0000509B CD 88 81 1640 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000509E D0 FF 1641 DEFW 65488 + 000050A0 FD E5 1642 PUSH IY + 000050A2 AF 1643 XOR A + 000050A3 DD 77 FA 1644 LD (IX-6),A + 000050A6 DD 77 FB 1645 LD (IX-5),A + 000050A9 DD 77 FC 1646 LD (IX-4),A + 000050AC DD 77 FD 1647 LD (IX-3),A + 000050AF 59 1648 LD E,C + 000050B0 50 1649 LD D,B + 000050B1 CD 6B 81 1650 CALL LWRD ?S_V_SWITCH_L06 + 000050B4 08 00 1651 DEFW 8 + 000050B6 01 00 1652 DEFW 1 + 000050B8 02 00 1653 DEFW 2 + 000050BA 03 00 1654 DEFW 3 + 000050BC 02 01 1655 DEFW 258 + 000050BE 03 01 1656 DEFW 259 + 000050C0 04 01 1657 DEFW 260 + 000050C2 05 01 1658 DEFW 261 + 000050C4 01 04 1659 DEFW 1025 + 000050C6 34 53 1660 DEFW ?0159 + 000050C8 A2 52 1661 DEFW ?0153 + 000050CA 35 52 1662 DEFW ?0144 + 000050CC 61 52 1663 DEFW ?0145 + 000050CE A9 51 1664 DEFW ?0142 + 000050D0 BA 51 1665 DEFW ?0143 + 000050D2 6E 51 1666 DEFW ?0131 + 000050D4 09 51 1667 DEFW ?0119 + 000050D6 D8 50 1668 DEFW ?0113 + 000050D8 1669 ?0113: + 000050D8 21 15 00 1670 LD HL,21 + 000050DB DD 4E 02 1671 LD C,(IX+2) + 000050DE DD 46 03 1672 LD B,(IX+3) + 000050E1 09 1673 ADD HL,BC + 000050E2 46 1674 LD B,(HL) + 000050E3 23 1675 INC HL + 000050E4 66 1676 LD H,(HL) + 000050E5 68 1677 LD L,B + 000050E6 1678 ?0344: + 000050E6 E5 1679 PUSH HL + 000050E7 FD E1 1680 POP IY + 000050E9 1681 ?0115: + 000050E9 7D 1682 LD A,L + 000050EA B4 1683 OR H + 000050EB 28 19 1684 JR Z,?0114 + 000050ED 1685 ?0116: + 000050ED FD CB 0A 46 1686 BIT 0,(IY+10) + 000050F1 28 0B 1687 JR Z,?0118 + 000050F3 1688 ?0117: + 000050F3 DD 6E 0A 1689 LD L,(IX+10) + 000050F6 DD 66 0B 1690 LD H,(IX+11) + 000050F9 E5 1691 PUSH HL + 000050FA CD 39 53 1692 CALL LWRD ?0462 + 000050FD E1 1693 POP HL + 000050FE 1694 ?0118: + 000050FE FD 6E 13 1695 LD L,(IY+19) + 00005101 FD 66 14 1696 LD H,(IY+20) + 00005104 18 E0 1697 JR ?0344 + 00005106 1698 ?0114: + 00005106 C3 34 53 1699 JP LWRD ?0159 + 00005109 1700 ?0119: + 00005109 21 15 00 1701 LD HL,21 + 0000510C DD 4E 02 1702 LD C,(IX+2) + 0000510F DD 46 03 1703 LD B,(IX+3) + 00005112 09 1704 ADD HL,BC + 00005113 46 1705 LD B,(HL) + 00005114 23 1706 INC HL + 00005115 66 1707 LD H,(HL) + 00005116 68 1708 LD L,B + 00005117 1709 ?0348: + 00005117 E5 1710 PUSH HL + 00005118 FD E1 1711 POP IY + 0000511A 1712 ?0121: + 0000511A 7D 1713 LD A,L + 0000511B B4 1714 OR H + 0000511C 28 4D 1715 JR Z,?0120 + 0000511E 1716 ?0122: + 0000511E FD CB 0A 46 1717 BIT 0,(IY+10) + 00005122 28 38 1718 JR Z,?0126 + 00005124 1719 ?0123: + 00005124 DD 6E 0A 1720 LD L,(IX+10) + 00005127 DD 66 0B 1721 LD H,(IX+11) + 0000512A E5 1722 PUSH HL + 0000512B CD 39 53 1723 CALL LWRD ?0462 + 0000512E E1 1724 POP HL + 0000512F DD 6E 0A 1725 LD L,(IX+10) + 00005132 DD 66 0B 1726 LD H,(IX+11) + 00005135 E5 1727 PUSH HL + 00005136 01 03 00 1728 LD BC,3 + 00005139 CD 3F 53 1729 CALL LWRD ?0463 + 0000513C E1 1730 POP HL + 0000513D FD 7E 0A 1731 LD A,(IY+10) + 00005140 E6 22 1732 AND 34 + 00005142 6F 1733 LD L,A + 00005143 26 00 1734 LD H,0 + 00005145 3E 22 1735 LD A,34 + 00005147 AD 1736 XOR L + 00005148 20 12 1737 JR NZ,?0126 + 0000514A FD 4E 10 1738 LD C,(IY+16) + 0000514D 44 1739 LD B,H + 0000514E DD 6E 0A 1740 LD L,(IX+10) + 00005151 DD 66 0B 1741 LD H,(IX+11) + 00005154 ED 42 1742 SBC HL,BC + 00005156 20 04 1743 JR NZ,?0126 + 00005158 1744 ?0128: + 00005158 1745 ?0127: + 00005158 1746 ?0125: + 00005158 FD 21 00 00 1747 LD IY,0 + 0000515C 1748 ?0126: + 0000515C 1749 ?0124: + 0000515C FD E5 1750 PUSH IY + 0000515E E1 1751 POP HL + 0000515F 7D 1752 LD A,L + 00005160 B4 1753 OR H + 00005161 28 B7 1754 JR Z,?0121 + 00005163 1755 ?0129: + 00005163 FD 6E 13 1756 LD L,(IY+19) + 00005166 FD 66 14 1757 LD H,(IY+20) + 00005169 18 AC 1758 JR ?0348 + 0000516B 1759 ?0130: + 0000516B 1760 ?0120: + 0000516B C3 34 53 1761 JP LWRD ?0159 + 0000516E 1762 ?0131: + 0000516E DD 6E 02 1763 LD L,(IX+2) + 00005171 DD 66 03 1764 LD H,(IX+3) + 00005174 E5 1765 PUSH HL + 00005175 FD E1 1766 POP IY + 00005177 21 0A 00 1767 LD HL,10 + 0000517A DD 4E 02 1768 LD C,(IX+2) + 0000517D DD 46 03 1769 LD B,(IX+3) + 00005180 09 1770 ADD HL,BC + 00005181 CB 46 1771 BIT 0,(HL) + 00005183 28 21 1772 JR Z,?0139 + 00005185 1773 ?0132: + 00005185 FD CB 0A 6E 1774 BIT 5,(IY+10) + 00005189 28 1B 1775 JR Z,?0139 + 0000518B FD 4E 10 1776 LD C,(IY+16) + 0000518E 47 1777 LD B,A + 0000518F DD 6E 0A 1778 LD L,(IX+10) + 00005192 DD 66 0B 1779 LD H,(IX+11) + 00005195 A7 1780 AND A + 00005196 ED 42 1781 SBC HL,BC + 00005198 20 0C 1782 JR NZ,?0139 + 0000519A 1783 ?0137: + 0000519A 1784 ?0136: + 0000519A 1785 ?0134: + 0000519A FD 6E 26 1786 LD L,(IY+38) + 0000519D FD 66 27 1787 LD H,(IY+39) + 000051A0 FD E5 1788 PUSH IY + 000051A2 D1 1789 POP DE + 000051A3 CD 5E 53 1790 CALL LWRD ?0474 + 000051A6 1791 ?0138: + 000051A6 1792 ?0139: + 000051A6 1793 ?0135: + 000051A6 1794 ?0133: + 000051A6 1795 ?0140: + 000051A6 1796 ?0141: + 000051A6 C3 34 53 1797 JP LWRD ?0159 + 000051A9 1798 ?0142: + 000051A9 DD 5E 02 1799 LD E,(IX+2) + 000051AC 4B 1800 LD C,E + 000051AD DD 56 03 1801 LD D,(IX+3) + 000051B0 42 1802 LD B,D + 000051B1 21 1A 00 1803 LD HL,26 + 000051B4 CD 5D 53 1804 CALL LWRD ?0475 + 000051B7 C3 34 53 1805 JP LWRD ?0159 + 000051BA 1806 ?0143: + 000051BA 21 0A 00 1807 LD HL,10 + 000051BD DD 4E 02 1808 LD C,(IX+2) + 000051C0 DD 46 03 1809 LD B,(IX+3) + 000051C3 09 1810 ADD HL,BC + 000051C4 7E 1811 LD A,(HL) + 000051C5 E6 FC 1812 AND 252 + 000051C7 77 1813 LD (HL),A + 000051C8 21 2E 00 1814 LD HL,46 + 000051CB 39 1815 ADD HL,SP + 000051CC E5 1816 PUSH HL + 000051CD 2B 1817 DEC HL + 000051CE 2B 1818 DEC HL + 000051CF 4D 1819 LD C,L + 000051D0 44 1820 LD B,H + 000051D1 DD 5E 02 1821 LD E,(IX+2) + 000051D4 DD 56 03 1822 LD D,(IX+3) + 000051D7 CD 55 53 1823 CALL LWRD ?0466 + 000051DA E1 1824 POP HL + 000051DB 21 08 00 1825 LD HL,8 + 000051DE DD 4E 02 1826 LD C,(IX+2) + 000051E1 DD 46 03 1827 LD B,(IX+3) + 000051E4 09 1828 ADD HL,BC + 000051E5 5E 1829 LD E,(HL) + 000051E6 23 1830 INC HL + 000051E7 56 1831 LD D,(HL) + 000051E8 D5 1832 PUSH DE + 000051E9 21 06 00 1833 LD HL,6 + 000051EC 09 1834 ADD HL,BC + 000051ED 5E 1835 LD E,(HL) + 000051EE 23 1836 INC HL + 000051EF 56 1837 LD D,(HL) + 000051F0 D5 1838 PUSH DE + 000051F1 DD 6E FC 1839 LD L,(IX-4) + 000051F4 DD 66 FD 1840 LD H,(IX-3) + 000051F7 E5 1841 PUSH HL + 000051F8 DD 4E FA 1842 LD C,(IX-6) + 000051FB DD 46 FB 1843 LD B,(IX-5) + 000051FE 11 00 00 1844 LD DE,0 + 00005201 CD BB 48 1845 CALL LWRD ?0471 + 00005204 E1 1846 POP HL + 00005205 E1 1847 POP HL + 00005206 E1 1848 POP HL + 00005207 21 00 00 1849 LD HL,0 + 0000520A E5 1850 PUSH HL + 0000520B 2E 11 1851 LD L,17 + 0000520D DD 5E 02 1852 LD E,(IX+2) + 00005210 DD 56 03 1853 LD D,(IX+3) + 00005213 19 1854 ADD HL,DE + 00005214 5E 1855 LD E,(HL) + 00005215 23 1856 INC HL + 00005216 56 1857 LD D,(HL) + 00005217 21 11 00 1858 LD HL,17 + 0000521A DD 4E 02 1859 LD C,(IX+2) + 0000521D DD 46 03 1860 LD B,(IX+3) + 00005220 09 1861 ADD HL,BC + 00005221 46 1862 LD B,(HL) + 00005222 23 1863 INC HL + 00005223 66 1864 LD H,(HL) + 00005224 68 1865 LD L,B + 00005225 01 17 00 1866 LD BC,23 + 00005228 09 1867 ADD HL,BC + 00005229 4E 1868 LD C,(HL) + 0000522A 23 1869 INC HL + 0000522B 46 1870 LD B,(HL) + 0000522C 23 1871 INC HL + 0000522D 7E 1872 LD A,(HL) + 0000522E 69 1873 LD L,C + 0000522F 60 1874 LD H,B + 00005230 01 03 01 1875 LD BC,259 + 00005233 18 29 1876 JR ?0347 + 00005235 1877 ?0144: + 00005235 21 11 00 1878 LD HL,17 + 00005238 DD 4E 02 1879 LD C,(IX+2) + 0000523B DD 46 03 1880 LD B,(IX+3) + 0000523E 09 1881 ADD HL,BC + 0000523F 56 1882 LD D,(HL) + 00005240 23 1883 INC HL + 00005241 66 1884 LD H,(HL) + 00005242 6A 1885 LD L,D + 00005243 E5 1886 PUSH HL + 00005244 FD E1 1887 POP IY + 00005246 59 1888 LD E,C + 00005247 50 1889 LD D,B + 00005248 CD 58 4F 1890 CALL LWRD ?0453 + 0000524B 21 00 00 1891 LD HL,0 + 0000524E E5 1892 PUSH HL + 0000524F 01 03 01 1893 LD BC,259 + 00005252 FD E5 1894 PUSH IY + 00005254 D1 1895 POP DE + 00005255 FD 7E 19 1896 LD A,(IY+25) + 00005258 FD 6E 17 1897 LD L,(IY+23) + 0000525B FD 66 18 1898 LD H,(IY+24) + 0000525E 1899 ?0347: + 0000525E C3 30 53 1900 JP LWRD ?0346 + 00005261 1901 ?0145: + 00005261 21 15 00 1902 LD HL,21 + 00005264 DD 4E 02 1903 LD C,(IX+2) + 00005267 DD 46 03 1904 LD B,(IX+3) + 0000526A 09 1905 ADD HL,BC + 0000526B 46 1906 LD B,(HL) + 0000526C 23 1907 INC HL + 0000526D 66 1908 LD H,(HL) + 0000526E 68 1909 LD L,B + 0000526F 1910 ?0345: + 0000526F E5 1911 PUSH HL + 00005270 FD E1 1912 POP IY + 00005272 1913 ?0147: + 00005272 7D 1914 LD A,L + 00005273 B4 1915 OR H + 00005274 28 29 1916 JR Z,?0146 + 00005276 1917 ?0148: + 00005276 DD 6E 0A 1918 LD L,(IX+10) + 00005279 DD 66 0B 1919 LD H,(IX+11) + 0000527C FD E5 1920 PUSH IY + 0000527E C1 1921 POP BC + 0000527F ED 42 1922 SBC HL,BC + 00005281 28 14 1923 JR Z,?0150 + 00005283 FD CB 0A 5E 1924 BIT 3,(IY+10) + 00005287 28 0E 1925 JR Z,?0150 + 00005289 1926 ?0152: + 00005289 1927 ?0151: + 00005289 1928 ?0149: + 00005289 DD 6E 0A 1929 LD L,(IX+10) + 0000528C DD 66 0B 1930 LD H,(IX+11) + 0000528F E5 1931 PUSH HL + 00005290 01 03 02 1932 LD BC,515 + 00005293 CD 3F 53 1933 CALL LWRD ?0463 + 00005296 E1 1934 POP HL + 00005297 1935 ?0150: + 00005297 FD 6E 13 1936 LD L,(IY+19) + 0000529A FD 66 14 1937 LD H,(IY+20) + 0000529D 18 D0 1938 JR ?0345 + 0000529F 1939 ?0146: + 0000529F C3 34 53 1940 JP LWRD ?0159 + 000052A2 1941 ?0153: + 000052A2 21 11 00 1942 LD HL,17 + 000052A5 DD 4E 02 1943 LD C,(IX+2) + 000052A8 DD 46 03 1944 LD B,(IX+3) + 000052AB 09 1945 ADD HL,BC + 000052AC 7E 1946 LD A,(HL) + 000052AD 23 1947 INC HL + 000052AE B6 1948 OR (HL) + 000052AF 20 0E 1949 JR NZ,?0155 + 000052B1 1950 ?0154: + 000052B1 21 04 00 1951 LD HL,4 + 000052B4 ED 4B C0 86 1952 LD BC,(global) + 000052B8 09 1953 ADD HL,BC + 000052B9 36 01 1954 LD (HL),1 + 000052BB 23 1955 INC HL + 000052BC 77 1956 LD (HL),A + 000052BD 18 75 1957 JR ?0159 + 000052BF 1958 ?0155: + 000052BF 21 0A 00 1959 LD HL,10 + 000052C2 09 1960 ADD HL,BC + 000052C3 23 1961 INC HL + 000052C4 CB 6E 1962 BIT 5,(HL) + 000052C6 20 28 1963 JR NZ,?0158 + 000052C8 1964 ?0157: + 000052C8 DD 6E 0A 1965 LD L,(IX+10) + 000052CB DD 66 0B 1966 LD H,(IX+11) + 000052CE E5 1967 PUSH HL + 000052CF 21 11 00 1968 LD HL,17 + 000052D2 59 1969 LD E,C + 000052D3 50 1970 LD D,B + 000052D4 19 1971 ADD HL,DE + 000052D5 5E 1972 LD E,(HL) + 000052D6 23 1973 INC HL + 000052D7 56 1974 LD D,(HL) + 000052D8 21 11 00 1975 LD HL,17 + 000052DB 09 1976 ADD HL,BC + 000052DC 46 1977 LD B,(HL) + 000052DD 23 1978 INC HL + 000052DE 66 1979 LD H,(HL) + 000052DF 68 1980 LD L,B + 000052E0 01 17 00 1981 LD BC,23 + 000052E3 09 1982 ADD HL,BC + 000052E4 4E 1983 LD C,(HL) + 000052E5 23 1984 INC HL + 000052E6 46 1985 LD B,(HL) + 000052E7 23 1986 INC HL + 000052E8 7E 1987 LD A,(HL) + 000052E9 69 1988 LD L,C + 000052EA 60 1989 LD H,B + 000052EB 01 01 04 1990 LD BC,1025 + 000052EE 18 40 1991 JR ?0346 + 000052F0 1992 ?0158: + 000052F0 21 11 00 1993 LD HL,17 + 000052F3 09 1994 ADD HL,BC + 000052F4 56 1995 LD D,(HL) + 000052F5 23 1996 INC HL + 000052F6 66 1997 LD H,(HL) + 000052F7 6A 1998 LD L,D + 000052F8 E5 1999 PUSH HL + 000052F9 FD E1 2000 POP IY + 000052FB 11 0A 00 2001 LD DE,10 + 000052FE 19 2002 ADD HL,DE + 000052FF 7E 2003 LD A,(HL) + 00005300 F6 03 2004 OR 3 + 00005302 77 2005 LD (HL),A + 00005303 6A 2006 LD L,D + 00005304 62 2007 LD H,D + 00005305 E5 2008 PUSH HL + 00005306 23 2009 INC HL + 00005307 E5 2010 PUSH HL + 00005308 4A 2011 LD C,D + 00005309 42 2012 LD B,D + 0000530A FD E5 2013 PUSH IY + 0000530C D1 2014 POP DE + 0000530D 3E 00 2015 LD A,BYTE3 Component_changestate_children + 0000530F 21 7F 4F 2016 LD HL,LWRD Component_changestate_children + 00005312 CD 5E 81 2017 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005315 E1 2018 POP HL + 00005316 E1 2019 POP HL + 00005317 21 00 00 2020 LD HL,0 + 0000531A E5 2021 PUSH HL + 0000531B DD 5E 02 2022 LD E,(IX+2) + 0000531E 4B 2023 LD C,E + 0000531F DD 56 03 2024 LD D,(IX+3) + 00005322 42 2025 LD B,D + 00005323 2E 17 2026 LD L,23 + 00005325 09 2027 ADD HL,BC + 00005326 4E 2028 LD C,(HL) + 00005327 23 2029 INC HL + 00005328 46 2030 LD B,(HL) + 00005329 23 2031 INC HL + 0000532A 7E 2032 LD A,(HL) + 0000532B 69 2033 LD L,C + 0000532C 60 2034 LD H,B + 0000532D 01 05 01 2035 LD BC,261 + 00005330 2036 ?0346: + 00005330 CD 5E 81 2037 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005333 E1 2038 POP HL + 00005334 2039 ?0159: + 00005334 2040 ?0156: + 00005334 2041 ?0112: + 00005334 FD E1 2042 POP IY + 00005336 C3 1F 81 2043 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005339 2044 ?0462: + 00005339 DD 4E 04 2045 LD C,(IX+4) + 0000533C DD 46 05 2046 LD B,(IX+5) + 0000533F 2047 ?0463: + 0000533F FD E5 2048 PUSH IY + 00005341 D1 2049 POP DE + 00005342 FD 7E 19 2050 LD A,(IY+25) + 00005345 FD 6E 17 2051 LD L,(IY+23) + 00005348 FD 66 18 2052 LD H,(IY+24) + 0000534B C3 5E 81 2053 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000534E 2054 ?0467: + 0000534E 23 2055 INC HL + 0000534F 23 2056 INC HL + 00005350 2057 ?0468: + 00005350 4D 2058 LD C,L + 00005351 44 2059 LD B,H + 00005352 DD E5 2060 PUSH IX + 00005354 D1 2061 POP DE + 00005355 2062 ?0466: + 00005355 3E 00 2063 LD A,BYTE3 Component_findXY + 00005357 21 13 4D 2064 LD HL,LWRD Component_findXY + 0000535A C3 5E 81 2065 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000535D 2066 ?0475: + 0000535D 09 2067 ADD HL,BC + 0000535E 2068 ?0474: + 0000535E 4E 2069 LD C,(HL) + 0000535F 23 2070 INC HL + 00005360 46 2071 LD B,(HL) + 00005361 23 2072 INC HL + 00005362 7E 2073 LD A,(HL) + 00005363 69 2074 LD L,C + 00005364 60 2075 LD H,B + 00005365 C3 5E 81 2076 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005368 2077 Window_paint: + 00005368 CD 88 81 2078 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000536B FC FF 2079 DEFW -4 + 0000536D FD E5 2080 PUSH IY + 0000536F DD 6E 02 2081 LD L,(IX+2) + 00005372 DD 66 03 2082 LD H,(IX+3) + 00005375 E5 2083 PUSH HL + 00005376 FD E1 2084 POP IY + 00005378 AF 2085 XOR A + 00005379 DD 77 FE 2086 LD (IX-2),A + 0000537C DD 77 FF 2087 LD (IX-1),A + 0000537F DD 77 FC 2088 LD (IX-4),A + 00005382 DD 77 FD 2089 LD (IX-3),A + 00005385 21 0A 00 2090 LD HL,10 + 00005388 ED 4B C0 86 2091 LD BC,(global) + 0000538C 09 2092 ADD HL,BC + 0000538D 7E 2093 LD A,(HL) + 0000538E 23 2094 INC HL + 0000538F 66 2095 LD H,(HL) + 00005390 6F 2096 LD L,A + 00005391 46 2097 LD B,(HL) + 00005392 23 2098 INC HL + 00005393 66 2099 LD H,(HL) + 00005394 68 2100 LD L,B + 00005395 FD 4E 0E 2101 LD C,(IY+14) + 00005398 FD 46 0F 2102 LD B,(IY+15) + 0000539B A7 2103 AND A + 0000539C ED 42 2104 SBC HL,BC + 0000539E 28 09 2105 JR Z,?0161 + 000053A0 2106 ?0160: + 000053A0 FD 5E 0E 2107 LD E,(IY+14) + 000053A3 FD 56 0F 2108 LD D,(IY+15) + 000053A6 CD ED 54 2109 CALL LWRD ?0472 + 000053A9 2110 ?0161: + 000053A9 FD CB 0A 46 2111 BIT 0,(IY+10) + 000053AD CA A5 54 2112 JP Z,?0163 + 000053B0 2113 ?0162: + 000053B0 21 02 00 2114 LD HL,2 + 000053B3 39 2115 ADD HL,SP + 000053B4 E5 2116 PUSH HL + 000053B5 23 2117 INC HL + 000053B6 23 2118 INC HL + 000053B7 4D 2119 LD C,L + 000053B8 44 2120 LD B,H + 000053B9 FD E5 2121 PUSH IY + 000053BB D1 2122 POP DE + 000053BC CD 55 53 2123 CALL LWRD ?0466 + 000053BF E1 2124 POP HL + 000053C0 CD 09 4D 2125 CALL LWRD ?0477 + 000053C3 DD 4E FC 2126 LD C,(IX-4) + 000053C6 DD 46 FD 2127 LD B,(IX-3) + 000053C9 DD 5E FE 2128 LD E,(IX-2) + 000053CC DD 56 FF 2129 LD D,(IX-1) + 000053CF 3E 00 2130 LD A,BYTE3 Move + 000053D1 21 6C 46 2131 LD HL,LWRD Move + 000053D4 CD 5E 81 2132 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000053D7 FD 4E 08 2133 LD C,(IY+8) + 000053DA FD 46 09 2134 LD B,(IY+9) + 000053DD FD 5E 06 2135 LD E,(IY+6) + 000053E0 FD 56 07 2136 LD D,(IY+7) + 000053E3 3E 00 2137 LD A,BYTE3 ClearRect + 000053E5 21 AB 46 2138 LD HL,LWRD ClearRect + 000053E8 CD 5E 81 2139 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000053EB FD 6E 08 2140 LD L,(IY+8) + 000053EE FD 66 09 2141 LD H,(IY+9) + 000053F1 E5 2142 PUSH HL + 000053F2 FD 6E 06 2143 LD L,(IY+6) + 000053F5 FD 66 07 2144 LD H,(IY+7) + 000053F8 E5 2145 PUSH HL + 000053F9 DD 6E FC 2146 LD L,(IX-4) + 000053FC DD 66 FD 2147 LD H,(IX-3) + 000053FF E5 2148 PUSH HL + 00005400 DD 4E FE 2149 LD C,(IX-2) + 00005403 DD 46 FF 2150 LD B,(IX-1) + 00005406 11 00 00 2151 LD DE,0 + 00005409 CD BB 48 2152 CALL LWRD ?0471 + 0000540C E1 2153 POP HL + 0000540D E1 2154 POP HL + 0000540E E1 2155 POP HL + 0000540F FD 5E 20 2156 LD E,(IY+32) + 00005412 FD 56 21 2157 LD D,(IY+33) + 00005415 21 0A 00 2158 LD HL,10 + 00005418 ED 4B C0 86 2159 LD BC,(global) + 0000541C 09 2160 ADD HL,BC + 0000541D 7E 2161 LD A,(HL) + 0000541E 23 2162 INC HL + 0000541F 66 2163 LD H,(HL) + 00005420 6F 2164 LD L,A + 00005421 CD AA 54 2165 CALL LWRD ?0455 + 00005424 DD 4E FC 2166 LD C,(IX-4) + 00005427 DD 46 FD 2167 LD B,(IX-3) + 0000542A 09 2168 ADD HL,BC + 0000542B 11 04 00 2169 LD DE,4 + 0000542E 19 2170 ADD HL,DE + 0000542F 4D 2171 LD C,L + 00005430 44 2172 LD B,H + 00005431 CD B8 54 2173 CALL LWRD ?0459 + 00005434 7E 2174 LD A,(HL) + 00005435 23 2175 INC HL + 00005436 66 2176 LD H,(HL) + 00005437 6F 2177 LD L,A + 00005438 01 05 00 2178 LD BC,5 + 0000543B 09 2179 ADD HL,BC + 0000543C 4E 2180 LD C,(HL) + 0000543D 23 2181 INC HL + 0000543E 46 2182 LD B,(HL) + 0000543F 23 2183 INC HL + 00005440 7E 2184 LD A,(HL) + 00005441 69 2185 LD L,C + 00005442 60 2186 LD H,B + 00005443 CD DC 49 2187 CALL LWRD ?0444 + 00005446 01 FC FF 2188 LD BC,65532 + 00005449 09 2189 ADD HL,BC + 0000544A 4D 2190 LD C,L + 0000544B 44 2191 LD B,H + 0000544C FD 5E 06 2192 LD E,(IY+6) + 0000544F FD 56 07 2193 LD D,(IY+7) + 00005452 3E 00 2194 LD A,BYTE3 DrawRectNC + 00005454 21 EE 46 2195 LD HL,LWRD DrawRectNC + 00005457 CD 5E 81 2196 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000545A DD 4E FC 2197 LD C,(IX-4) + 0000545D DD 46 FD 2198 LD B,(IX-3) + 00005460 CD B8 54 2199 CALL LWRD ?0459 + 00005463 46 2200 LD B,(HL) + 00005464 23 2201 INC HL + 00005465 66 2202 LD H,(HL) + 00005466 68 2203 LD L,B + 00005467 CD AA 54 2204 CALL LWRD ?0455 + 0000546A 01 05 00 2205 LD BC,5 + 0000546D 09 2206 ADD HL,BC + 0000546E 4D 2207 LD C,L + 0000546F 44 2208 LD B,H + 00005470 FD 5E 06 2209 LD E,(IY+6) + 00005473 FD 56 07 2210 LD D,(IY+7) + 00005476 3E 00 2211 LD A,BYTE3 FillRect + 00005478 21 33 47 2212 LD HL,LWRD FillRect + 0000547B CD 5E 81 2213 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000547E 21 0E 00 2214 LD HL,14 + 00005481 DD 4E FC 2215 LD C,(IX-4) + 00005484 DD 46 FD 2216 LD B,(IX-3) + 00005487 09 2217 ADD HL,BC + 00005488 4D 2218 LD C,L + 00005489 44 2219 LD B,H + 0000548A DD 5E FE 2220 LD E,(IX-2) + 0000548D DD 56 FF 2221 LD D,(IX-1) + 00005490 13 2222 INC DE + 00005491 13 2223 INC DE + 00005492 3E 00 2224 LD A,BYTE3 Move + 00005494 21 6C 46 2225 LD HL,LWRD Move + 00005497 CD D5 54 2226 CALL LWRD ?0460 + 0000549A FD E5 2227 PUSH IY + 0000549C D1 2228 POP DE + 0000549D 3E 00 2229 LD A,BYTE3 Component_paint + 0000549F 21 CD 4C 2230 LD HL,LWRD Component_paint + 000054A2 CD 5E 81 2231 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054A5 2232 ?0163: + 000054A5 FD E1 2233 POP IY + 000054A7 C3 1F 81 2234 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000054AA 2235 ?0455: + 000054AA 01 05 00 2236 LD BC,5 + 000054AD 09 2237 ADD HL,BC + 000054AE 4E 2238 LD C,(HL) + 000054AF 23 2239 INC HL + 000054B0 46 2240 LD B,(HL) + 000054B1 23 2241 INC HL + 000054B2 7E 2242 LD A,(HL) + 000054B3 69 2243 LD L,C + 000054B4 60 2244 LD H,B + 000054B5 C3 5E 81 2245 JP LWRD ?BANK_CALL_DIRECT_L08 + 000054B8 2246 ?0459: + 000054B8 DD 5E FE 2247 LD E,(IX-2) + 000054BB DD 56 FF 2248 LD D,(IX-1) + 000054BE 3E 00 2249 LD A,BYTE3 Move + 000054C0 21 6C 46 2250 LD HL,LWRD Move + 000054C3 CD 5E 81 2251 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054C6 FD 5E 20 2252 LD E,(IY+32) + 000054C9 FD 56 21 2253 LD D,(IY+33) + 000054CC 21 0A 00 2254 LD HL,10 + 000054CF ED 4B C0 86 2255 LD BC,(global) + 000054D3 09 2256 ADD HL,BC + 000054D4 C9 2257 RET + 000054D5 2258 ?0460: + 000054D5 CD 5E 81 2259 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054D8 FD 5E 20 2260 LD E,(IY+32) + 000054DB FD 56 21 2261 LD D,(IY+33) + 000054DE 3E 00 2262 LD A,BYTE3 Text + 000054E0 21 02 48 2263 LD HL,LWRD Text + 000054E3 CD 5E 81 2264 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054E6 C9 2265 RET + 000054E7 2266 ?0473: + 000054E7 DD 5E 0E 2267 LD E,(IX+14) + 000054EA DD 56 0F 2268 LD D,(IX+15) + 000054ED 2269 ?0472: + 000054ED 3E 00 2270 LD A,BYTE3 setCurrentFont + 000054EF 21 6E 49 2271 LD HL,LWRD setCurrentFont + 000054F2 C3 5E 81 2272 JP LWRD ?BANK_CALL_DIRECT_L08 + 000054F5 2273 Root_paint: + 000054F5 CD 52 81 2274 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000054F8 CD 09 4D 2275 CALL LWRD ?0477 + 000054FB CD A0 48 2276 CALL LWRD ?0461 + 000054FE CD 5E 81 2277 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005501 01 80 00 2278 LD BC,128 + 00005504 58 2279 LD E,B + 00005505 50 2280 LD D,B + 00005506 3E 00 2281 LD A,BYTE3 GrayRect + 00005508 21 BD 47 2282 LD HL,LWRD GrayRect + 0000550B CD 5E 81 2283 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000550E 21 80 00 2284 LD HL,128 + 00005511 E5 2285 PUSH HL + 00005512 6C 2286 LD L,H + 00005513 E5 2287 PUSH HL + 00005514 E5 2288 PUSH HL + 00005515 CD B8 48 2289 CALL LWRD ?0470 + 00005518 E1 2290 POP HL + 00005519 E1 2291 POP HL + 0000551A E1 2292 POP HL + 0000551B DD 5E 02 2293 LD E,(IX+2) + 0000551E DD 56 03 2294 LD D,(IX+3) + 00005521 3E 00 2295 LD A,BYTE3 Component_paint + 00005523 21 CD 4C 2296 LD HL,LWRD Component_paint + 00005526 CD 5E 81 2297 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005529 C3 1F 81 2298 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000552C 2299 Window_add: + 0000552C CD 52 81 2300 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000552F 3E 00 2301 LD A,BYTE3 Component_add + 00005531 21 6F 4C 2302 LD HL,LWRD Component_add + 00005534 CD 5E 81 2303 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005537 C3 1F 81 2304 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000553A 2305 Window_new: + 0000553A CD 88 81 2306 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000553D 00 00 2307 DEFW 0 + 0000553F FD E5 2308 PUSH IY + 00005541 DD 6E 0C 2309 LD L,(IX+12) + 00005544 DD 66 0D 2310 LD H,(IX+13) + 00005547 E5 2311 PUSH HL + 00005548 DD 6E 0A 2312 LD L,(IX+10) + 0000554B DD 66 0B 2313 LD H,(IX+11) + 0000554E E5 2314 PUSH HL + 0000554F CD 7E 55 2315 CALL LWRD ?0438 + 00005552 F1 2316 POP AF + 00005553 F1 2317 POP AF + 00005554 E5 2318 PUSH HL + 00005555 FD E1 2319 POP IY + 00005557 01 17 00 2320 LD BC,23 + 0000555A 09 2321 ADD HL,BC + 0000555B 36 9B 2322 LD (HL),LOW(Window_handler) + 0000555D 23 2323 INC HL + 0000555E 36 50 2324 LD (HL),HIGH(Window_handler) + 00005560 23 2325 INC HL + 00005561 36 00 2326 LD (HL),BYTE3 Window_handler + 00005563 FD 36 1A 68 2327 LD (IY+26),LOW(Window_paint) + 00005567 FD 36 1B 53 2328 LD (IY+27),HIGH(Window_paint) + 0000556B FD 36 1C 00 2329 LD (IY+28),BYTE3 Window_paint + 0000556F FD 36 1D 2C 2330 LD (IY+29),LOW(Window_add) + 00005573 FD 36 1E 55 2331 LD (IY+30),HIGH(Window_add) + 00005577 FD 36 1F 00 2332 LD (IY+31),BYTE3 Window_add + 0000557B C3 1A 4C 2333 JP LWRD ?0418 + 0000557E 2334 ?0438: + 0000557E DD 5E 02 2335 LD E,(IX+2) + 00005581 DD 56 03 2336 LD D,(IX+3) + 00005584 3E 00 2337 LD A,BYTE3 Component_new + 00005586 21 78 4B 2338 LD HL,LWRD Component_new + 00005589 C3 5E 81 2339 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000558C 2340 Button_handler: + 0000558C CD 52 81 2341 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000558F FD E5 2342 PUSH IY + 00005591 D5 2343 PUSH DE + 00005592 FD E1 2344 POP IY + 00005594 DD 6E 0A 2345 LD L,(IX+10) + 00005597 DD 66 0B 2346 LD H,(IX+11) + 0000559A E5 2347 PUSH HL + 0000559B 3E 00 2348 LD A,BYTE3 Window_handler + 0000559D 21 9B 50 2349 LD HL,LWRD Window_handler + 000055A0 CD 5E 81 2350 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055A3 E1 2351 POP HL + 000055A4 3E 03 2352 LD A,3 + 000055A6 DD AE 04 2353 XOR (IX+4) + 000055A9 DD B6 05 2354 OR (IX+5) + 000055AC 20 3E 2355 JR NZ,?0169 + 000055AE FD 4E 10 2356 LD C,(IY+16) + 000055B1 47 2357 LD B,A + 000055B2 DD 6E 0A 2358 LD L,(IX+10) + 000055B5 DD 66 0B 2359 LD H,(IX+11) + 000055B8 ED 42 2360 SBC HL,BC + 000055BA 20 30 2361 JR NZ,?0169 + 000055BC FD 7E 0A 2362 LD A,(IY+10) + 000055BF E6 03 2363 AND 3 + 000055C1 28 29 2364 JR Z,?0169 + 000055C3 2365 ?0167: + 000055C3 2366 ?0166: + 000055C3 2367 ?0164: + 000055C3 DD 6E 0A 2368 LD L,(IX+10) + 000055C6 DD 66 0B 2369 LD H,(IX+11) + 000055C9 E5 2370 PUSH HL + 000055CA FD 5E 11 2371 LD E,(IY+17) + 000055CD FD 56 12 2372 LD D,(IY+18) + 000055D0 FD 6E 11 2373 LD L,(IY+17) + 000055D3 FD 66 12 2374 LD H,(IY+18) + 000055D6 0E 17 2375 LD C,23 + 000055D8 CD 19 56 2376 CALL LWRD ?0464 + 000055DB E1 2377 POP HL + 000055DC FD CB 0A 66 2378 BIT 4,(IY+10) + 000055E0 28 0A 2379 JR Z,?0169 + 000055E2 2380 ?0168: + 000055E2 FD 4E 10 2381 LD C,(IY+16) + 000055E5 06 00 2382 LD B,0 + 000055E7 C5 2383 PUSH BC + 000055E8 CD 27 56 2384 CALL LWRD ?0469 + 000055EB E1 2385 POP HL + 000055EC 2386 ?0169: + 000055EC 2387 ?0165: + 000055EC 21 01 02 2388 LD HL,513 + 000055EF DD 4E 04 2389 LD C,(IX+4) + 000055F2 DD 46 05 2390 LD B,(IX+5) + 000055F5 A7 2391 AND A + 000055F6 ED 42 2392 SBC HL,BC + 000055F8 20 0B 2393 JR NZ,?0171 + 000055FA 2394 ?0170: + 000055FA DD 6E 0A 2395 LD L,(IX+10) + 000055FD DD 66 0B 2396 LD H,(IX+11) + 00005600 E5 2397 PUSH HL + 00005601 CD 0A 56 2398 CALL LWRD ?0465 + 00005604 E1 2399 POP HL + 00005605 2400 ?0171: + 00005605 FD E1 2401 POP IY + 00005607 C3 1F 81 2402 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000560A 2403 ?0465: + 0000560A FD 5E 11 2404 LD E,(IY+17) + 0000560D FD 56 12 2405 LD D,(IY+18) + 00005610 FD 6E 11 2406 LD L,(IY+17) + 00005613 FD 66 12 2407 LD H,(IY+18) + 00005616 01 17 00 2408 LD BC,23 + 00005619 2409 ?0464: + 00005619 09 2410 ADD HL,BC + 0000561A 4E 2411 LD C,(HL) + 0000561B 23 2412 INC HL + 0000561C 46 2413 LD B,(HL) + 0000561D 23 2414 INC HL + 0000561E 7E 2415 LD A,(HL) + 0000561F 69 2416 LD L,C + 00005620 60 2417 LD H,B + 00005621 01 01 02 2418 LD BC,513 + 00005624 C3 5E 81 2419 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005627 2420 ?0469: + 00005627 FD 5E 11 2421 LD E,(IY+17) + 0000562A FD 56 12 2422 LD D,(IY+18) + 0000562D FD 6E 11 2423 LD L,(IY+17) + 00005630 FD 66 12 2424 LD H,(IY+18) + 00005633 0E 17 2425 LD C,23 + 00005635 09 2426 ADD HL,BC + 00005636 4E 2427 LD C,(HL) + 00005637 23 2428 INC HL + 00005638 46 2429 LD B,(HL) + 00005639 23 2430 INC HL + 0000563A 7E 2431 LD A,(HL) + 0000563B 69 2432 LD L,C + 0000563C 60 2433 LD H,B + 0000563D 01 04 01 2434 LD BC,260 + 00005640 C3 5E 81 2435 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005643 2436 Button_drawtext: + 00005643 CD 52 81 2437 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005646 FD E5 2438 PUSH IY + 00005648 D5 2439 PUSH DE + 00005649 FD E1 2440 POP IY + 0000564B 21 0A 00 2441 LD HL,10 + 0000564E 19 2442 ADD HL,DE + 0000564F CB 76 2443 BIT 6,(HL) + 00005651 FD 5E 20 2444 LD E,(IY+32) + 00005654 FD 56 21 2445 LD D,(IY+33) + 00005657 21 0A 00 2446 LD HL,10 + 0000565A ED 4B C0 86 2447 LD BC,(global) + 0000565E 09 2448 ADD HL,BC + 0000565F 7E 2449 LD A,(HL) + 00005660 23 2450 INC HL + 00005661 66 2451 LD H,(HL) + 00005662 6F 2452 LD L,A + 00005663 01 05 00 2453 LD BC,5 + 00005666 09 2454 ADD HL,BC + 00005667 4E 2455 LD C,(HL) + 00005668 23 2456 INC HL + 00005669 46 2457 LD B,(HL) + 0000566A 23 2458 INC HL + 0000566B 7E 2459 LD A,(HL) + 0000566C 69 2460 LD L,C + 0000566D 60 2461 LD H,B + 0000566E 28 53 2462 JR Z,?0173 + 00005670 2463 ?0172: + 00005670 CD 5E 81 2464 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005673 29 2465 ADD HL,HL + 00005674 4D 2466 LD C,L + 00005675 44 2467 LD B,H + 00005676 FD 6E 08 2468 LD L,(IY+8) + 00005679 FD 66 09 2469 LD H,(IY+9) + 0000567C A7 2470 AND A + 0000567D ED 42 2471 SBC HL,BC + 0000567F CD F0 56 2472 CALL LWRD ?0480 + 00005682 0E 0C 2473 LD C,12 + 00005684 09 2474 ADD HL,BC + 00005685 E5 2475 PUSH HL + 00005686 FD 5E 20 2476 LD E,(IY+32) + 00005689 FD 56 21 2477 LD D,(IY+33) + 0000568C 21 0A 00 2478 LD HL,10 + 0000568F ED 4B C0 86 2479 LD BC,(global) + 00005693 09 2480 ADD HL,BC + 00005694 7E 2481 LD A,(HL) + 00005695 23 2482 INC HL + 00005696 66 2483 LD H,(HL) + 00005697 6F 2484 LD L,A + 00005698 CD B0 49 2485 CALL LWRD ?0442 + 0000569B C1 2486 POP BC + 0000569C CD D5 54 2487 CALL LWRD ?0460 + 0000569F FD 5E 08 2488 LD E,(IY+8) + 000056A2 FD 56 09 2489 LD D,(IY+9) + 000056A5 CD F1 56 2490 CALL LWRD ?0481 + 000056A8 0E 0A 2491 LD C,10 + 000056AA 09 2492 ADD HL,BC + 000056AB E5 2493 PUSH HL + 000056AC FD 5E 22 2494 LD E,(IY+34) + 000056AF FD 56 23 2495 LD D,(IY+35) + 000056B2 69 2496 LD L,C + 000056B3 60 2497 LD H,B + 000056B4 CD A7 49 2498 CALL LWRD ?0443 + 000056B7 C1 2499 POP BC + 000056B8 CD 5E 81 2500 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000056BB FD 5E 22 2501 LD E,(IY+34) + 000056BE FD 56 23 2502 LD D,(IY+35) + 000056C1 18 20 2503 JR ?0350 + 000056C3 2504 ?0173: + 000056C3 CD DC 49 2505 CALL LWRD ?0444 + 000056C6 CD F0 56 2506 CALL LWRD ?0480 + 000056C9 0E 0D 2507 LD C,13 + 000056CB 09 2508 ADD HL,BC + 000056CC E5 2509 PUSH HL + 000056CD FD 5E 20 2510 LD E,(IY+32) + 000056D0 FD 56 21 2511 LD D,(IY+33) + 000056D3 21 0A 00 2512 LD HL,10 + 000056D6 CD A7 49 2513 CALL LWRD ?0443 + 000056D9 C1 2514 POP BC + 000056DA CD 5E 81 2515 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000056DD FD 5E 20 2516 LD E,(IY+32) + 000056E0 FD 56 21 2517 LD D,(IY+33) + 000056E3 2518 ?0350: + 000056E3 3E 00 2519 LD A,BYTE3 Text + 000056E5 21 02 48 2520 LD HL,LWRD Text + 000056E8 2521 ?0424: + 000056E8 CD 5E 81 2522 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000056EB 2523 ?0174: + 000056EB FD E1 2524 POP IY + 000056ED C3 1F 81 2525 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000056F0 2526 ?0480: + 000056F0 EB 2527 EX DE,HL + 000056F1 2528 ?0481: + 000056F1 01 02 00 2529 LD BC,2 + 000056F4 CD C1 81 2530 CALL LWRD ?SS_DIV_L02 + 000056F7 DD 6E 0A 2531 LD L,(IX+10) + 000056FA DD 66 0B 2532 LD H,(IX+11) + 000056FD 19 2533 ADD HL,DE + 000056FE C9 2534 RET + 000056FF 2535 Button_paint: + 000056FF C5 2536 PUSH BC + 00005700 DD E5 2537 PUSH IX + 00005702 F5 2538 PUSH AF + 00005703 F5 2539 PUSH AF + 00005704 D5 2540 PUSH DE + 00005705 DD E1 2541 POP IX + 00005707 21 02 00 2542 LD HL,2 + 0000570A 39 2543 ADD HL,SP + 0000570B AF 2544 XOR A + 0000570C 77 2545 LD (HL),A + 0000570D 23 2546 INC HL + 0000570E 77 2547 LD (HL),A + 0000570F 2B 2548 DEC HL + 00005710 2B 2549 DEC HL + 00005711 2B 2550 DEC HL + 00005712 77 2551 LD (HL),A + 00005713 23 2552 INC HL + 00005714 77 2553 LD (HL),A + 00005715 21 0A 00 2554 LD HL,10 + 00005718 ED 4B C0 86 2555 LD BC,(global) + 0000571C 09 2556 ADD HL,BC + 0000571D 7E 2557 LD A,(HL) + 0000571E 23 2558 INC HL + 0000571F 66 2559 LD H,(HL) + 00005720 6F 2560 LD L,A + 00005721 46 2561 LD B,(HL) + 00005722 23 2562 INC HL + 00005723 66 2563 LD H,(HL) + 00005724 68 2564 LD L,B + 00005725 E5 2565 PUSH HL + 00005726 21 0E 00 2566 LD HL,14 + 00005729 19 2567 ADD HL,DE + 0000572A 4E 2568 LD C,(HL) + 0000572B 23 2569 INC HL + 0000572C 46 2570 LD B,(HL) + 0000572D E1 2571 POP HL + 0000572E A7 2572 AND A + 0000572F ED 42 2573 SBC HL,BC + 00005731 28 03 2574 JR Z,?0176 + 00005733 2575 ?0175: + 00005733 CD E7 54 2576 CALL LWRD ?0473 + 00005736 2577 ?0176: + 00005736 DD CB 0A 46 2578 BIT 0,(IX+10) + 0000573A CA CF 57 2579 JP Z,?0178 + 0000573D 2580 ?0177: + 0000573D 21 00 00 2581 LD HL,0 + 00005740 39 2582 ADD HL,SP + 00005741 E5 2583 PUSH HL + 00005742 CD 4E 53 2584 CALL LWRD ?0467 + 00005745 E1 2585 POP HL + 00005746 21 00 00 2586 LD HL,0 + 00005749 39 2587 ADD HL,SP + 0000574A CD D7 57 2588 CALL LWRD ?0457 + 0000574D CD 5E 81 2589 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005750 DD 6E 08 2590 LD L,(IX+8) + 00005753 DD 66 09 2591 LD H,(IX+9) + 00005756 E5 2592 PUSH HL + 00005757 DD 6E 06 2593 LD L,(IX+6) + 0000575A DD 66 07 2594 LD H,(IX+7) + 0000575D E5 2595 PUSH HL + 0000575E 21 04 00 2596 LD HL,4 + 00005761 39 2597 ADD HL,SP + 00005762 4E 2598 LD C,(HL) + 00005763 23 2599 INC HL + 00005764 46 2600 LD B,(HL) + 00005765 C5 2601 PUSH BC + 00005766 23 2602 INC HL + 00005767 4E 2603 LD C,(HL) + 00005768 23 2604 INC HL + 00005769 46 2605 LD B,(HL) + 0000576A DD CB 0A 4E 2606 BIT 1,(IX+10) + 0000576E 28 07 2607 JR Z,?0180 + 00005770 DD 5E 10 2608 LD E,(IX+16) + 00005773 16 00 2609 LD D,0 + 00005775 18 03 2610 JR ?0181 + 00005777 2611 ?0180: + 00005777 11 00 00 2612 LD DE,0 + 0000577A 2613 ?0181: + 0000577A CD BB 48 2614 CALL LWRD ?0471 + 0000577D E1 2615 POP HL + 0000577E E1 2616 POP HL + 0000577F E1 2617 POP HL + 00005780 DD 7E 0A 2618 LD A,(IX+10) + 00005783 E6 82 2619 AND 130 + 00005785 28 1C 2620 JR Z,?0183 + 00005787 DD 7E 0A 2621 LD A,(IX+10) + 0000578A E6 82 2622 AND 130 + 0000578C EE 82 2623 XOR 130 + 0000578E 28 13 2624 JR Z,?0183 + 00005790 2625 ?0185: + 00005790 2626 ?0184: + 00005790 2627 ?0182: + 00005790 DD 4E 08 2628 LD C,(IX+8) + 00005793 DD 46 09 2629 LD B,(IX+9) + 00005796 DD 5E 06 2630 LD E,(IX+6) + 00005799 DD 56 07 2631 LD D,(IX+7) + 0000579C 3E 00 2632 LD A,BYTE3 FillRectNC + 0000579E 21 78 47 2633 LD HL,LWRD FillRectNC + 000057A1 18 11 2634 JR ?0353 + 000057A3 2635 ?0183: + 000057A3 DD 4E 08 2636 LD C,(IX+8) + 000057A6 DD 46 09 2637 LD B,(IX+9) + 000057A9 DD 5E 06 2638 LD E,(IX+6) + 000057AC DD 56 07 2639 LD D,(IX+7) + 000057AF 3E 00 2640 LD A,BYTE3 DrawRectNC + 000057B1 21 EE 46 2641 LD HL,LWRD DrawRectNC + 000057B4 2642 ?0353: + 000057B4 CD 5E 81 2643 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000057B7 2644 ?0186: + 000057B7 21 00 00 2645 LD HL,0 + 000057BA 39 2646 ADD HL,SP + 000057BB 4E 2647 LD C,(HL) + 000057BC 23 2648 INC HL + 000057BD 46 2649 LD B,(HL) + 000057BE C5 2650 PUSH BC + 000057BF 23 2651 INC HL + 000057C0 4E 2652 LD C,(HL) + 000057C1 23 2653 INC HL + 000057C2 46 2654 LD B,(HL) + 000057C3 DD E5 2655 PUSH IX + 000057C5 D1 2656 POP DE + 000057C6 3E 00 2657 LD A,BYTE3 Button_drawtext + 000057C8 21 43 56 2658 LD HL,LWRD Button_drawtext + 000057CB CD 5E 81 2659 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000057CE E1 2660 POP HL + 000057CF 2661 ?0178: + 000057CF E1 2662 POP HL + 000057D0 E1 2663 POP HL + 000057D1 DD E1 2664 POP IX + 000057D3 C1 2665 POP BC + 000057D4 C3 25 81 2666 JP LWRD ?BANK_FAST_LEAVE_L08 + 000057D7 2667 ?0457: + 000057D7 4E 2668 LD C,(HL) + 000057D8 23 2669 INC HL + 000057D9 46 2670 LD B,(HL) + 000057DA 23 2671 INC HL + 000057DB 2672 ?0458: + 000057DB 5E 2673 LD E,(HL) + 000057DC 23 2674 INC HL + 000057DD 56 2675 LD D,(HL) + 000057DE 3E 00 2676 LD A,BYTE3 Move + 000057E0 21 6C 46 2677 LD HL,LWRD Move + 000057E3 CD 5E 81 2678 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000057E6 DD 4E 08 2679 LD C,(IX+8) + 000057E9 DD 46 09 2680 LD B,(IX+9) + 000057EC DD 5E 06 2681 LD E,(IX+6) + 000057EF DD 56 07 2682 LD D,(IX+7) + 000057F2 3E 00 2683 LD A,BYTE3 ClearRect + 000057F4 21 AB 46 2684 LD HL,LWRD ClearRect + 000057F7 C9 2685 RET + 000057F8 2686 Button_add: + 000057F8 CD 52 81 2687 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000057FB C3 1F 81 2688 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000057FE 2689 Button_new: + 000057FE CD 88 81 2690 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005801 00 00 2691 DEFW 0 + 00005803 FD E5 2692 PUSH IY + 00005805 DD 6E 0C 2693 LD L,(IX+12) + 00005808 DD 66 0D 2694 LD H,(IX+13) + 0000580B E5 2695 PUSH HL + 0000580C DD 6E 0A 2696 LD L,(IX+10) + 0000580F DD 66 0B 2697 LD H,(IX+11) + 00005812 E5 2698 PUSH HL + 00005813 CD 7E 55 2699 CALL LWRD ?0438 + 00005816 F1 2700 POP AF + 00005817 F1 2701 POP AF + 00005818 E5 2702 PUSH HL + 00005819 FD E1 2703 POP IY + 0000581B 01 0A 00 2704 LD BC,10 + 0000581E 09 2705 ADD HL,BC + 0000581F 7E 2706 LD A,(HL) + 00005820 F6 03 2707 OR 3 + 00005822 77 2708 LD (HL),A + 00005823 DD 46 0E 2709 LD B,(IX+14) + 00005826 FD 70 10 2710 LD (IY+16),B + 00005829 FD 36 17 8C 2711 LD (IY+23),LOW(Button_handler) + 0000582D FD 36 18 55 2712 LD (IY+24),HIGH(Button_handler) + 00005831 FD 36 19 00 2713 LD (IY+25),BYTE3 Button_handler + 00005835 FD 36 1A FF 2714 LD (IY+26),LOW(Button_paint) + 00005839 FD 36 1B 56 2715 LD (IY+27),HIGH(Button_paint) + 0000583D FD 36 1C 00 2716 LD (IY+28),BYTE3 Button_paint + 00005841 FD 36 1D F8 2717 LD (IY+29),LOW(Button_add) + 00005845 FD 36 1E 57 2718 LD (IY+30),HIGH(Button_add) + 00005849 FD 36 1F 00 2719 LD (IY+31),BYTE3 Button_add + 0000584D C3 1A 4C 2720 JP LWRD ?0418 + 00005850 2721 ToggleButton_handler: + 00005850 CD 52 81 2722 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005853 FD E5 2723 PUSH IY + 00005855 D5 2724 PUSH DE + 00005856 FD E1 2725 POP IY + 00005858 DD 6E 0A 2726 LD L,(IX+10) + 0000585B DD 66 0B 2727 LD H,(IX+11) + 0000585E E5 2728 PUSH HL + 0000585F 3E 00 2729 LD A,BYTE3 Window_handler + 00005861 21 9B 50 2730 LD HL,LWRD Window_handler + 00005864 CD 5E 81 2731 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005867 E1 2732 POP HL + 00005868 3E 03 2733 LD A,3 + 0000586A DD AE 04 2734 XOR (IX+4) + 0000586D DD B6 05 2735 OR (IX+5) + 00005870 20 5C 2736 JR NZ,?0192 + 00005872 FD 4E 10 2737 LD C,(IY+16) + 00005875 47 2738 LD B,A + 00005876 DD 6E 0A 2739 LD L,(IX+10) + 00005879 DD 66 0B 2740 LD H,(IX+11) + 0000587C ED 42 2741 SBC HL,BC + 0000587E 20 4E 2742 JR NZ,?0192 + 00005880 FD 7E 0A 2743 LD A,(IY+10) + 00005883 E6 03 2744 AND 3 + 00005885 28 47 2745 JR Z,?0192 + 00005887 2746 ?0190: + 00005887 2747 ?0189: + 00005887 2748 ?0187: + 00005887 FD 7E 0A 2749 LD A,(IY+10) + 0000588A EE 04 2750 XOR 4 + 0000588C FD 77 0A 2751 LD (IY+10),A + 0000588F DD 6E 0A 2752 LD L,(IX+10) + 00005892 DD 66 0B 2753 LD H,(IX+11) + 00005895 E5 2754 PUSH HL + 00005896 FD 5E 11 2755 LD E,(IY+17) + 00005899 FD 56 12 2756 LD D,(IY+18) + 0000589C FD 6E 11 2757 LD L,(IY+17) + 0000589F FD 66 12 2758 LD H,(IY+18) + 000058A2 0E 17 2759 LD C,23 + 000058A4 09 2760 ADD HL,BC + 000058A5 4E 2761 LD C,(HL) + 000058A6 23 2762 INC HL + 000058A7 46 2763 LD B,(HL) + 000058A8 23 2764 INC HL + 000058A9 7E 2765 LD A,(HL) + 000058AA 69 2766 LD L,C + 000058AB 60 2767 LD H,B + 000058AC 01 02 02 2768 LD BC,514 + 000058AF CD 5E 81 2769 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000058B2 E1 2770 POP HL + 000058B3 21 00 00 2771 LD HL,0 + 000058B6 E5 2772 PUSH HL + 000058B7 01 03 01 2773 LD BC,259 + 000058BA CD 3F 53 2774 CALL LWRD ?0463 + 000058BD E1 2775 POP HL + 000058BE FD CB 0A 66 2776 BIT 4,(IY+10) + 000058C2 28 0A 2777 JR Z,?0192 + 000058C4 2778 ?0191: + 000058C4 FD 4E 10 2779 LD C,(IY+16) + 000058C7 06 00 2780 LD B,0 + 000058C9 C5 2781 PUSH BC + 000058CA CD 27 56 2782 CALL LWRD ?0469 + 000058CD E1 2783 POP HL + 000058CE 2784 ?0192: + 000058CE 2785 ?0188: + 000058CE 21 01 02 2786 LD HL,513 + 000058D1 DD 4E 04 2787 LD C,(IX+4) + 000058D4 DD 46 05 2788 LD B,(IX+5) + 000058D7 A7 2789 AND A + 000058D8 ED 42 2790 SBC HL,BC + 000058DA 20 0B 2791 JR NZ,?0194 + 000058DC 2792 ?0193: + 000058DC DD 6E 0A 2793 LD L,(IX+10) + 000058DF DD 66 0B 2794 LD H,(IX+11) + 000058E2 E5 2795 PUSH HL + 000058E3 CD 0A 56 2796 CALL LWRD ?0465 + 000058E6 E1 2797 POP HL + 000058E7 2798 ?0194: + 000058E7 FD E1 2799 POP IY + 000058E9 C3 1F 81 2800 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000058EC 2801 ToggleButton_paint: + 000058EC C5 2802 PUSH BC + 000058ED DD E5 2803 PUSH IX + 000058EF F5 2804 PUSH AF + 000058F0 F5 2805 PUSH AF + 000058F1 D5 2806 PUSH DE + 000058F2 DD E1 2807 POP IX + 000058F4 21 02 00 2808 LD HL,2 + 000058F7 39 2809 ADD HL,SP + 000058F8 AF 2810 XOR A + 000058F9 77 2811 LD (HL),A + 000058FA 23 2812 INC HL + 000058FB 77 2813 LD (HL),A + 000058FC 2B 2814 DEC HL + 000058FD 2B 2815 DEC HL + 000058FE 2B 2816 DEC HL + 000058FF 77 2817 LD (HL),A + 00005900 23 2818 INC HL + 00005901 77 2819 LD (HL),A + 00005902 21 0A 00 2820 LD HL,10 + 00005905 ED 4B C0 86 2821 LD BC,(global) + 00005909 09 2822 ADD HL,BC + 0000590A 7E 2823 LD A,(HL) + 0000590B 23 2824 INC HL + 0000590C 66 2825 LD H,(HL) + 0000590D 6F 2826 LD L,A + 0000590E 46 2827 LD B,(HL) + 0000590F 23 2828 INC HL + 00005910 66 2829 LD H,(HL) + 00005911 68 2830 LD L,B + 00005912 E5 2831 PUSH HL + 00005913 21 0E 00 2832 LD HL,14 + 00005916 19 2833 ADD HL,DE + 00005917 4E 2834 LD C,(HL) + 00005918 23 2835 INC HL + 00005919 46 2836 LD B,(HL) + 0000591A E1 2837 POP HL + 0000591B A7 2838 AND A + 0000591C ED 42 2839 SBC HL,BC + 0000591E 28 03 2840 JR Z,?0196 + 00005920 2841 ?0195: + 00005920 CD E7 54 2842 CALL LWRD ?0473 + 00005923 2843 ?0196: + 00005923 DD CB 0A 46 2844 BIT 0,(IX+10) + 00005927 CA D5 59 2845 JP Z,?0198 + 0000592A 2846 ?0197: + 0000592A 21 00 00 2847 LD HL,0 + 0000592D 39 2848 ADD HL,SP + 0000592E E5 2849 PUSH HL + 0000592F CD 4E 53 2850 CALL LWRD ?0467 + 00005932 E1 2851 POP HL + 00005933 21 00 00 2852 LD HL,0 + 00005936 39 2853 ADD HL,SP + 00005937 CD D7 57 2854 CALL LWRD ?0457 + 0000593A CD 5E 81 2855 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000593D DD CB 0A 4E 2856 BIT 1,(IX+10) + 00005941 28 36 2857 JR Z,?0200 + 00005943 DD CB 0A 56 2858 BIT 2,(IX+10) + 00005947 28 30 2859 JR Z,?0200 + 00005949 2860 ?0202: + 00005949 2861 ?0201: + 00005949 2862 ?0199: + 00005949 DD 4E 08 2863 LD C,(IX+8) + 0000594C DD 46 09 2864 LD B,(IX+9) + 0000594F DD 5E 06 2865 LD E,(IX+6) + 00005952 DD 56 07 2866 LD D,(IX+7) + 00005955 3E 00 2867 LD A,BYTE3 FillRectNC + 00005957 21 78 47 2868 LD HL,LWRD FillRectNC + 0000595A CD 5E 81 2869 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000595D DD 6E 08 2870 LD L,(IX+8) + 00005960 DD 66 09 2871 LD H,(IX+9) + 00005963 E5 2872 PUSH HL + 00005964 DD 6E 06 2873 LD L,(IX+6) + 00005967 DD 66 07 2874 LD H,(IX+7) + 0000596A E5 2875 PUSH HL + 0000596B 21 04 00 2876 LD HL,4 + 0000596E 39 2877 ADD HL,SP + 0000596F 4E 2878 LD C,(HL) + 00005970 23 2879 INC HL + 00005971 46 2880 LD B,(HL) + 00005972 C5 2881 PUSH BC + 00005973 23 2882 INC HL + 00005974 4E 2883 LD C,(HL) + 00005975 23 2884 INC HL + 00005976 46 2885 LD B,(HL) + 00005977 18 34 2886 JR ?0357 + 00005979 2887 ?0200: + 00005979 DD 4E 08 2888 LD C,(IX+8) + 0000597C DD 46 09 2889 LD B,(IX+9) + 0000597F DD 5E 06 2890 LD E,(IX+6) + 00005982 DD 56 07 2891 LD D,(IX+7) + 00005985 3E 00 2892 LD A,BYTE3 DrawRectNC + 00005987 21 EE 46 2893 LD HL,LWRD DrawRectNC + 0000598A CD 5E 81 2894 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000598D DD 6E 08 2895 LD L,(IX+8) + 00005990 DD 66 09 2896 LD H,(IX+9) + 00005993 E5 2897 PUSH HL + 00005994 DD 6E 06 2898 LD L,(IX+6) + 00005997 DD 66 07 2899 LD H,(IX+7) + 0000599A E5 2900 PUSH HL + 0000599B 21 04 00 2901 LD HL,4 + 0000599E 39 2902 ADD HL,SP + 0000599F 4E 2903 LD C,(HL) + 000059A0 23 2904 INC HL + 000059A1 46 2905 LD B,(HL) + 000059A2 C5 2906 PUSH BC + 000059A3 23 2907 INC HL + 000059A4 4E 2908 LD C,(HL) + 000059A5 23 2909 INC HL + 000059A6 46 2910 LD B,(HL) + 000059A7 DD CB 0A 4E 2911 BIT 1,(IX+10) + 000059AB 28 07 2912 JR Z,?0205 + 000059AD 2913 ?0357: + 000059AD DD 5E 10 2914 LD E,(IX+16) + 000059B0 16 00 2915 LD D,0 + 000059B2 18 03 2916 JR ?0206 + 000059B4 2917 ?0205: + 000059B4 11 00 00 2918 LD DE,0 + 000059B7 2919 ?0206: + 000059B7 CD BB 48 2920 CALL LWRD ?0471 + 000059BA E1 2921 POP HL + 000059BB E1 2922 POP HL + 000059BC E1 2923 POP HL + 000059BD 2924 ?0203: + 000059BD 21 00 00 2925 LD HL,0 + 000059C0 39 2926 ADD HL,SP + 000059C1 4E 2927 LD C,(HL) + 000059C2 23 2928 INC HL + 000059C3 46 2929 LD B,(HL) + 000059C4 C5 2930 PUSH BC + 000059C5 23 2931 INC HL + 000059C6 4E 2932 LD C,(HL) + 000059C7 23 2933 INC HL + 000059C8 46 2934 LD B,(HL) + 000059C9 DD E5 2935 PUSH IX + 000059CB D1 2936 POP DE + 000059CC 3E 00 2937 LD A,BYTE3 Button_drawtext + 000059CE 21 43 56 2938 LD HL,LWRD Button_drawtext + 000059D1 CD 5E 81 2939 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059D4 E1 2940 POP HL + 000059D5 2941 ?0198: + 000059D5 C3 CF 57 2942 JP LWRD ?0178 + 000059D8 2943 ToggleButton_new: + 000059D8 CD 88 81 2944 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000059DB 00 00 2945 DEFW 0 + 000059DD FD E5 2946 PUSH IY + 000059DF DD 6E 0C 2947 LD L,(IX+12) + 000059E2 DD 66 0D 2948 LD H,(IX+13) + 000059E5 E5 2949 PUSH HL + 000059E6 DD 6E 0A 2950 LD L,(IX+10) + 000059E9 DD 66 0B 2951 LD H,(IX+11) + 000059EC E5 2952 PUSH HL + 000059ED CD 7E 55 2953 CALL LWRD ?0438 + 000059F0 F1 2954 POP AF + 000059F1 F1 2955 POP AF + 000059F2 E5 2956 PUSH HL + 000059F3 FD E1 2957 POP IY + 000059F5 01 0A 00 2958 LD BC,10 + 000059F8 09 2959 ADD HL,BC + 000059F9 7E 2960 LD A,(HL) + 000059FA F6 07 2961 OR 7 + 000059FC 77 2962 LD (HL),A + 000059FD DD 46 0E 2963 LD B,(IX+14) + 00005A00 FD 70 10 2964 LD (IY+16),B + 00005A03 FD 36 17 50 2965 LD (IY+23),LOW(ToggleButton_handler) + 00005A07 FD 36 18 58 2966 LD (IY+24),HIGH(ToggleButton_handler) + 00005A0B FD 36 19 00 2967 LD (IY+25),BYTE3 ToggleButton_handler + 00005A0F FD 36 1A EC 2968 LD (IY+26),LOW(ToggleButton_paint) + 00005A13 FD 36 1B 58 2969 LD (IY+27),HIGH(ToggleButton_paint) + 00005A17 FD 36 1C 00 2970 LD (IY+28),BYTE3 ToggleButton_paint + 00005A1B FD 36 1D F8 2971 LD (IY+29),LOW(Button_add) + 00005A1F FD 36 1E 57 2972 LD (IY+30),HIGH(Button_add) + 00005A23 FD 36 1F 00 2973 LD (IY+31),BYTE3 Button_add + 00005A27 C3 1A 4C 2974 JP LWRD ?0418 + 00005A2A 2975 Dialog_handler: + 00005A2A CD 52 81 2976 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005A2D FD E5 2977 PUSH IY + 00005A2F D5 2978 PUSH DE + 00005A30 FD E1 2979 POP IY + 00005A32 DD 6E 0A 2980 LD L,(IX+10) + 00005A35 DD 66 0B 2981 LD H,(IX+11) + 00005A38 E5 2982 PUSH HL + 00005A39 3E 00 2983 LD A,BYTE3 Window_handler + 00005A3B 21 9B 50 2984 LD HL,LWRD Window_handler + 00005A3E CD 5E 81 2985 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005A41 E1 2986 POP HL + 00005A42 21 01 02 2987 LD HL,513 + 00005A45 DD 4E 04 2988 LD C,(IX+4) + 00005A48 DD 46 05 2989 LD B,(IX+5) + 00005A4B A7 2990 AND A + 00005A4C ED 42 2991 SBC HL,BC + 00005A4E 20 40 2992 JR NZ,?0208 + 00005A50 3E FF 2993 LD A,255 + 00005A52 DD AE 0A 2994 XOR (IX+10) + 00005A55 DD B6 0B 2995 OR (IX+11) + 00005A58 20 36 2996 JR NZ,?0208 + 00005A5A 2997 ?0210: + 00005A5A 2998 ?0209: + 00005A5A 2999 ?0207: + 00005A5A FD CB 0B 66 3000 BIT 4,(IY+11) + 00005A5E E5 3001 PUSH HL + 00005A5F 28 05 3002 JR Z,?0212 + 00005A61 3003 ?0211: + 00005A61 01 05 01 3004 LD BC,261 + 00005A64 18 03 3005 JR ?0358 + 00005A66 3006 ?0212: + 00005A66 01 02 01 3007 LD BC,258 + 00005A69 3008 ?0358: + 00005A69 CD 3F 53 3009 CALL LWRD ?0463 + 00005A6C E1 3010 POP HL + 00005A6D 3011 ?0213: + 00005A6D FD 4E 10 3012 LD C,(IY+16) + 00005A70 06 00 3013 LD B,0 + 00005A72 C5 3014 PUSH BC + 00005A73 FD 5E 11 3015 LD E,(IY+17) + 00005A76 FD 56 12 3016 LD D,(IY+18) + 00005A79 FD 6E 11 3017 LD L,(IY+17) + 00005A7C FD 66 12 3018 LD H,(IY+18) + 00005A7F 0E 17 3019 LD C,23 + 00005A81 09 3020 ADD HL,BC + 00005A82 4E 3021 LD C,(HL) + 00005A83 23 3022 INC HL + 00005A84 46 3023 LD B,(HL) + 00005A85 23 3024 INC HL + 00005A86 7E 3025 LD A,(HL) + 00005A87 69 3026 LD L,C + 00005A88 60 3027 LD H,B + 00005A89 01 01 03 3028 LD BC,769 + 00005A8C CD 5E 81 3029 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005A8F E1 3030 POP HL + 00005A90 3031 ?0208: + 00005A90 21 01 02 3032 LD HL,513 + 00005A93 DD 4E 04 3033 LD C,(IX+4) + 00005A96 DD 46 05 3034 LD B,(IX+5) + 00005A99 A7 3035 AND A + 00005A9A ED 42 3036 SBC HL,BC + 00005A9C 20 40 3037 JR NZ,?0215 + 00005A9E 3E FE 3038 LD A,254 + 00005AA0 DD AE 0A 3039 XOR (IX+10) + 00005AA3 DD B6 0B 3040 OR (IX+11) + 00005AA6 20 36 3041 JR NZ,?0215 + 00005AA8 3042 ?0217: + 00005AA8 3043 ?0216: + 00005AA8 3044 ?0214: + 00005AA8 FD CB 0B 66 3045 BIT 4,(IY+11) + 00005AAC E5 3046 PUSH HL + 00005AAD 28 05 3047 JR Z,?0219 + 00005AAF 3048 ?0218: + 00005AAF 01 05 01 3049 LD BC,261 + 00005AB2 18 03 3050 JR ?0359 + 00005AB4 3051 ?0219: + 00005AB4 01 02 01 3052 LD BC,258 + 00005AB7 3053 ?0359: + 00005AB7 CD 3F 53 3054 CALL LWRD ?0463 + 00005ABA E1 3055 POP HL + 00005ABB 3056 ?0220: + 00005ABB FD 4E 10 3057 LD C,(IY+16) + 00005ABE 06 00 3058 LD B,0 + 00005AC0 C5 3059 PUSH BC + 00005AC1 FD 5E 11 3060 LD E,(IY+17) + 00005AC4 FD 56 12 3061 LD D,(IY+18) + 00005AC7 FD 6E 11 3062 LD L,(IY+17) + 00005ACA FD 66 12 3063 LD H,(IY+18) + 00005ACD 0E 17 3064 LD C,23 + 00005ACF 09 3065 ADD HL,BC + 00005AD0 4E 3066 LD C,(HL) + 00005AD1 23 3067 INC HL + 00005AD2 46 3068 LD B,(HL) + 00005AD3 23 3069 INC HL + 00005AD4 7E 3070 LD A,(HL) + 00005AD5 69 3071 LD L,C + 00005AD6 60 3072 LD H,B + 00005AD7 01 02 03 3073 LD BC,770 + 00005ADA CD 5E 81 3074 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005ADD E1 3075 POP HL + 00005ADE 3076 ?0215: + 00005ADE FD E1 3077 POP IY + 00005AE0 C3 1F 81 3078 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005AE3 3079 Dialog_new: + 00005AE3 CD 88 81 3080 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005AE6 FE FF 3081 DEFW -2 + 00005AE8 FD E5 3082 PUSH IY + 00005AEA DD 6E 0C 3083 LD L,(IX+12) + 00005AED DD 66 0D 3084 LD H,(IX+13) + 00005AF0 E5 3085 PUSH HL + 00005AF1 DD 6E 0A 3086 LD L,(IX+10) + 00005AF4 DD 66 0B 3087 LD H,(IX+11) + 00005AF7 E5 3088 PUSH HL + 00005AF8 CD 7E 55 3089 CALL LWRD ?0438 + 00005AFB F1 3090 POP AF + 00005AFC F1 3091 POP AF + 00005AFD E5 3092 PUSH HL + 00005AFE FD E1 3093 POP IY + 00005B00 01 0A 00 3094 LD BC,10 + 00005B03 09 3095 ADD HL,BC + 00005B04 CB C6 3096 SET 0,(HL) + 00005B06 DD 46 0E 3097 LD B,(IX+14) + 00005B09 FD 70 10 3098 LD (IY+16),B + 00005B0C FD 36 17 2A 3099 LD (IY+23),LOW(Dialog_handler) + 00005B10 FD 36 18 5A 3100 LD (IY+24),HIGH(Dialog_handler) + 00005B14 FD 36 19 00 3101 LD (IY+25),BYTE3 Dialog_handler + 00005B18 FD 36 1A 68 3102 LD (IY+26),LOW(Window_paint) + 00005B1C FD 36 1B 53 3103 LD (IY+27),HIGH(Window_paint) + 00005B20 FD 36 1C 00 3104 LD (IY+28),BYTE3 Window_paint + 00005B24 FD 36 1D 2C 3105 LD (IY+29),LOW(Window_add) + 00005B28 FD 36 1E 55 3106 LD (IY+30),HIGH(Window_add) + 00005B2C FD 36 1F 00 3107 LD (IY+31),BYTE3 Window_add + 00005B30 21 FF 00 3108 LD HL,255 + 00005B33 E5 3109 PUSH HL + 00005B34 2E 14 3110 LD L,20 + 00005B36 E5 3111 PUSH HL + 00005B37 2E 28 3112 LD L,40 + 00005B39 E5 3113 PUSH HL + 00005B3A 21 E4 FF 3114 LD HL,65508 + 00005B3D CD 95 5B 3115 CALL LWRD ?0439 + 00005B40 F1 3116 POP AF + 00005B41 F1 3117 POP AF + 00005B42 F1 3118 POP AF + 00005B43 DD 75 FE 3119 LD (IX-2),L + 00005B46 DD 74 FF 3120 LD (IX-1),H + 00005B49 01 20 00 3121 LD BC,32 + 00005B4C 09 3122 ADD HL,BC + 00005B4D E5 3123 PUSH HL + 00005B4E 11 03 00 3124 LD DE,3 + 00005B51 CD F1 49 3125 CALL LWRD ?0450 + 00005B54 E1 3126 POP HL + 00005B55 71 3127 LD (HL),C + 00005B56 23 3128 INC HL + 00005B57 70 3129 LD (HL),B + 00005B58 01 BF 84 3130 LD BC,?0221 + 00005B5B CD B1 5B 3131 CALL LWRD ?0456 + 00005B5E CD 5E 81 3132 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B61 21 FE 00 3133 LD HL,254 + 00005B64 E5 3134 PUSH HL + 00005B65 2E 14 3135 LD L,20 + 00005B67 E5 3136 PUSH HL + 00005B68 2E 28 3137 LD L,40 + 00005B6A E5 3138 PUSH HL + 00005B6B 21 C8 FF 3139 LD HL,65480 + 00005B6E CD 95 5B 3140 CALL LWRD ?0439 + 00005B71 F1 3141 POP AF + 00005B72 F1 3142 POP AF + 00005B73 F1 3143 POP AF + 00005B74 DD 75 FE 3144 LD (IX-2),L + 00005B77 DD 74 FF 3145 LD (IX-1),H + 00005B7A 01 20 00 3146 LD BC,32 + 00005B7D 09 3147 ADD HL,BC + 00005B7E E5 3148 PUSH HL + 00005B7F 11 07 00 3149 LD DE,7 + 00005B82 CD F1 49 3150 CALL LWRD ?0450 + 00005B85 E1 3151 POP HL + 00005B86 71 3152 LD (HL),C + 00005B87 23 3153 INC HL + 00005B88 70 3154 LD (HL),B + 00005B89 01 C2 84 3155 LD BC,?0222 + 00005B8C CD B1 5B 3156 CALL LWRD ?0456 + 00005B8F CD 5E 81 3157 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B92 C3 1A 4C 3158 JP LWRD ?0418 + 00005B95 3159 ?0439: + 00005B95 DD 4E 0C 3160 LD C,(IX+12) + 00005B98 DD 46 0D 3161 LD B,(IX+13) + 00005B9B 09 3162 ADD HL,BC + 00005B9C 4D 3163 LD C,L + 00005B9D 44 3164 LD B,H + 00005B9E 21 D0 FF 3165 LD HL,65488 + 00005BA1 DD 5E 0A 3166 LD E,(IX+10) + 00005BA4 DD 56 0B 3167 LD D,(IX+11) + 00005BA7 19 3168 ADD HL,DE + 00005BA8 EB 3169 EX DE,HL + 00005BA9 3170 ?0440: + 00005BA9 3E 00 3171 LD A,BYTE3 Button_new + 00005BAB 21 FE 57 3172 LD HL,LWRD Button_new + 00005BAE C3 5E 81 3173 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005BB1 3174 ?0456: + 00005BB1 DD 5E FE 3175 LD E,(IX-2) + 00005BB4 DD 56 FF 3176 LD D,(IX-1) + 00005BB7 3E 00 3177 LD A,BYTE3 Component_setlabel + 00005BB9 21 22 4C 3178 LD HL,LWRD Component_setlabel + 00005BBC CD 5E 81 3179 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005BBF DD 4E FE 3180 LD C,(IX-2) + 00005BC2 DD 46 FF 3181 LD B,(IX-1) + 00005BC5 FD E5 3182 PUSH IY + 00005BC7 D1 3183 POP DE + 00005BC8 FD 7E 1F 3184 LD A,(IY+31) + 00005BCB FD 6E 1D 3185 LD L,(IY+29) + 00005BCE FD 66 1E 3186 LD H,(IY+30) + 00005BD1 C9 3187 RET + 00005BD2 3188 Display_handler: + 00005BD2 CD 52 81 3189 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005BD5 FD E5 3190 PUSH IY + 00005BD7 D5 3191 PUSH DE + 00005BD8 FD E1 3192 POP IY + 00005BDA DD 6E 0A 3193 LD L,(IX+10) + 00005BDD DD 66 0B 3194 LD H,(IX+11) + 00005BE0 E5 3195 PUSH HL + 00005BE1 3E 00 3196 LD A,BYTE3 Button_handler + 00005BE3 21 8C 55 3197 LD HL,LWRD Button_handler + 00005BE6 CD 5E 81 3198 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005BE9 E1 3199 POP HL + 00005BEA 21 03 02 3200 LD HL,515 + 00005BED DD 4E 04 3201 LD C,(IX+4) + 00005BF0 DD 46 05 3202 LD B,(IX+5) + 00005BF3 A7 3203 AND A + 00005BF4 ED 42 3204 SBC HL,BC + 00005BF6 20 40 3205 JR NZ,?0224 + 00005BF8 FD CB 0A 5E 3206 BIT 3,(IY+10) + 00005BFC 28 3A 3207 JR Z,?0224 + 00005BFE 3208 ?0226: + 00005BFE 3209 ?0225: + 00005BFE 3210 ?0223: + 00005BFE 3E 08 3211 LD A,8 + 00005C00 DD AE 0A 3212 XOR (IX+10) + 00005C03 DD B6 0B 3213 OR (IX+11) + 00005C06 FD 5E 20 3214 LD E,(IY+32) + 00005C09 FD 56 21 3215 LD D,(IY+33) + 00005C0C 3E 00 3216 LD A,BYTE3 strlen + 00005C0E 21 40 72 3217 LD HL,LWRD strlen + 00005C11 20 0D 3218 JR NZ,?0228 + 00005C13 3219 ?0227: + 00005C13 CD EB 49 3220 CALL LWRD ?0448 + 00005C16 28 15 3221 JR Z,?0231 + 00005C18 3222 ?0229: + 00005C18 CD 3D 5C 3223 CALL LWRD ?0445 + 00005C1B 2B 3224 DEC HL + 00005C1C 36 00 3225 LD (HL),0 + 00005C1E 3226 ?0230: + 00005C1E 18 0D 3227 JR ?0231 + 00005C20 3228 ?0228: + 00005C20 CD 48 5C 3229 CALL LWRD ?0446 + 00005C23 23 3230 INC HL + 00005C24 36 00 3231 LD (HL),0 + 00005C26 CD 3D 5C 3232 CALL LWRD ?0445 + 00005C29 DD 46 0A 3233 LD B,(IX+10) + 00005C2C 70 3234 LD (HL),B + 00005C2D 3235 ?0231: + 00005C2D 21 00 00 3236 LD HL,0 + 00005C30 E5 3237 PUSH HL + 00005C31 01 03 01 3238 LD BC,259 + 00005C34 CD 3F 53 3239 CALL LWRD ?0463 + 00005C37 E1 3240 POP HL + 00005C38 3241 ?0224: + 00005C38 FD E1 3242 POP IY + 00005C3A C3 1F 81 3243 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005C3D 3244 ?0445: + 00005C3D FD 5E 20 3245 LD E,(IY+32) + 00005C40 FD 56 21 3246 LD D,(IY+33) + 00005C43 3E 00 3247 LD A,BYTE3 strlen + 00005C45 21 40 72 3248 LD HL,LWRD strlen + 00005C48 3249 ?0446: + 00005C48 CD 5E 81 3250 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C4B FD 4E 20 3251 LD C,(IY+32) + 00005C4E FD 46 21 3252 LD B,(IY+33) + 00005C51 09 3253 ADD HL,BC + 00005C52 C9 3254 RET + 00005C53 3255 Display_paint: + 00005C53 C5 3256 PUSH BC + 00005C54 FD E5 3257 PUSH IY + 00005C56 DD E5 3258 PUSH IX + 00005C58 21 B8 FF 3259 LD HL,65464 + 00005C5B 39 3260 ADD HL,SP + 00005C5C F9 3261 LD SP,HL + 00005C5D D5 3262 PUSH DE + 00005C5E DD E1 3263 POP IX + 00005C60 AF 3264 XOR A + 00005C61 77 3265 LD (HL),A + 00005C62 23 3266 INC HL + 00005C63 77 3267 LD (HL),A + 00005C64 23 3268 INC HL + 00005C65 77 3269 LD (HL),A + 00005C66 23 3270 INC HL + 00005C67 77 3271 LD (HL),A + 00005C68 21 0A 00 3272 LD HL,10 + 00005C6B ED 4B C0 86 3273 LD BC,(global) + 00005C6F 09 3274 ADD HL,BC + 00005C70 7E 3275 LD A,(HL) + 00005C71 23 3276 INC HL + 00005C72 66 3277 LD H,(HL) + 00005C73 6F 3278 LD L,A + 00005C74 46 3279 LD B,(HL) + 00005C75 23 3280 INC HL + 00005C76 66 3281 LD H,(HL) + 00005C77 68 3282 LD L,B + 00005C78 E5 3283 PUSH HL + 00005C79 21 0E 00 3284 LD HL,14 + 00005C7C 19 3285 ADD HL,DE + 00005C7D 4E 3286 LD C,(HL) + 00005C7E 23 3287 INC HL + 00005C7F 46 3288 LD B,(HL) + 00005C80 E1 3289 POP HL + 00005C81 A7 3290 AND A + 00005C82 ED 42 3291 SBC HL,BC + 00005C84 28 03 3292 JR Z,?0233 + 00005C86 3293 ?0232: + 00005C86 CD E7 54 3294 CALL LWRD ?0473 + 00005C89 3295 ?0233: + 00005C89 DD CB 0A 46 3296 BIT 0,(IX+10) + 00005C8D CA 97 5D 3297 JP Z,?0248 + 00005C90 3298 ?0234: + 00005C90 21 02 00 3299 LD HL,2 + 00005C93 39 3300 ADD HL,SP + 00005C94 E5 3301 PUSH HL + 00005C95 2B 3302 DEC HL + 00005C96 2B 3303 DEC HL + 00005C97 CD 50 53 3304 CALL LWRD ?0468 + 00005C9A E1 3305 POP HL + 00005C9B 21 02 00 3306 LD HL,2 + 00005C9E 39 3307 ADD HL,SP + 00005C9F 4E 3308 LD C,(HL) + 00005CA0 23 3309 INC HL + 00005CA1 46 3310 LD B,(HL) + 00005CA2 2B 3311 DEC HL + 00005CA3 2B 3312 DEC HL + 00005CA4 2B 3313 DEC HL + 00005CA5 CD DB 57 3314 CALL LWRD ?0458 + 00005CA8 CD 5E 81 3315 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005CAB DD 6E 08 3316 LD L,(IX+8) + 00005CAE DD 66 09 3317 LD H,(IX+9) + 00005CB1 E5 3318 PUSH HL + 00005CB2 DD 6E 06 3319 LD L,(IX+6) + 00005CB5 DD 66 07 3320 LD H,(IX+7) + 00005CB8 E5 3321 PUSH HL + 00005CB9 21 06 00 3322 LD HL,6 + 00005CBC 39 3323 ADD HL,SP + 00005CBD 4E 3324 LD C,(HL) + 00005CBE 23 3325 INC HL + 00005CBF 46 3326 LD B,(HL) + 00005CC0 C5 3327 PUSH BC + 00005CC1 2B 3328 DEC HL + 00005CC2 2B 3329 DEC HL + 00005CC3 2B 3330 DEC HL + 00005CC4 4E 3331 LD C,(HL) + 00005CC5 23 3332 INC HL + 00005CC6 46 3333 LD B,(HL) + 00005CC7 DD CB 0A 4E 3334 BIT 1,(IX+10) + 00005CCB 28 07 3335 JR Z,?0237 + 00005CCD DD 5E 10 3336 LD E,(IX+16) + 00005CD0 16 00 3337 LD D,0 + 00005CD2 18 03 3338 JR ?0238 + 00005CD4 3339 ?0237: + 00005CD4 11 00 00 3340 LD DE,0 + 00005CD7 3341 ?0238: + 00005CD7 CD BB 48 3342 CALL LWRD ?0471 + 00005CDA E1 3343 POP HL + 00005CDB E1 3344 POP HL + 00005CDC E1 3345 POP HL + 00005CDD DD CB 0A 7E 3346 BIT 7,(IX+10) + 00005CE1 DD 4E 08 3347 LD C,(IX+8) + 00005CE4 DD 46 09 3348 LD B,(IX+9) + 00005CE7 DD 5E 06 3349 LD E,(IX+6) + 00005CEA DD 56 07 3350 LD D,(IX+7) + 00005CED 20 07 3351 JR NZ,?0240 + 00005CEF 3352 ?0239: + 00005CEF 3E 00 3353 LD A,BYTE3 FillRectNC + 00005CF1 21 78 47 3354 LD HL,LWRD FillRectNC + 00005CF4 18 05 3355 JR ?0364 + 00005CF6 3356 ?0240: + 00005CF6 3E 00 3357 LD A,BYTE3 DrawRectNC + 00005CF8 21 EE 46 3358 LD HL,LWRD DrawRectNC + 00005CFB 3359 ?0364: + 00005CFB CD 5E 81 3360 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005CFE 3361 ?0241: + 00005CFE DD 5E 20 3362 LD E,(IX+32) + 00005D01 DD 56 21 3363 LD D,(IX+33) + 00005D04 21 0A 00 3364 LD HL,10 + 00005D07 ED 4B C0 86 3365 LD BC,(global) + 00005D0B 09 3366 ADD HL,BC + 00005D0C 46 3367 LD B,(HL) + 00005D0D 23 3368 INC HL + 00005D0E 66 3369 LD H,(HL) + 00005D0F 68 3370 LD L,B + 00005D10 01 05 00 3371 LD BC,5 + 00005D13 09 3372 ADD HL,BC + 00005D14 4E 3373 LD C,(HL) + 00005D15 23 3374 INC HL + 00005D16 46 3375 LD B,(HL) + 00005D17 23 3376 INC HL + 00005D18 7E 3377 LD A,(HL) + 00005D19 69 3378 LD L,C + 00005D1A 60 3379 LD H,B + 00005D1B CD F6 49 3380 CALL LWRD ?0449 + 00005D1E DD 6E 08 3381 LD L,(IX+8) + 00005D21 DD 66 09 3382 LD H,(IX+9) + 00005D24 A7 3383 AND A + 00005D25 ED 42 3384 SBC HL,BC + 00005D27 EB 3385 EX DE,HL + 00005D28 01 02 00 3386 LD BC,2 + 00005D2B CD C1 81 3387 CALL LWRD ?SS_DIV_L02 + 00005D2E 69 3388 LD L,C + 00005D2F 60 3389 LD H,B + 00005D30 39 3390 ADD HL,SP + 00005D31 46 3391 LD B,(HL) + 00005D32 23 3392 INC HL + 00005D33 66 3393 LD H,(HL) + 00005D34 68 3394 LD L,B + 00005D35 19 3395 ADD HL,DE + 00005D36 01 07 00 3396 LD BC,7 + 00005D39 09 3397 ADD HL,BC + 00005D3A 4D 3398 LD C,L + 00005D3B 44 3399 LD B,H + 00005D3C 21 00 00 3400 LD HL,0 + 00005D3F 39 3401 ADD HL,SP + 00005D40 5E 3402 LD E,(HL) + 00005D41 23 3403 INC HL + 00005D42 56 3404 LD D,(HL) + 00005D43 13 3405 INC DE + 00005D44 13 3406 INC DE + 00005D45 3E 00 3407 LD A,BYTE3 Move + 00005D47 21 6C 46 3408 LD HL,LWRD Move + 00005D4A CD 5E 81 3409 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D4D DD CB 0B 46 3410 BIT 0,(IX+11) + 00005D51 28 36 3411 JR Z,?0243 + 00005D53 3412 ?0242: + 00005D53 FD 21 00 00 3413 LD IY,0 + 00005D57 3414 ?0245: + 00005D57 DD 5E 20 3415 LD E,(IX+32) + 00005D5A DD 56 21 3416 LD D,(IX+33) + 00005D5D 3E 00 3417 LD A,BYTE3 strlen + 00005D5F 21 40 72 3418 LD HL,LWRD strlen + 00005D62 CD F6 49 3419 CALL LWRD ?0449 + 00005D65 FD E5 3420 PUSH IY + 00005D67 E1 3421 POP HL + 00005D68 A7 3422 AND A + 00005D69 ED 42 3423 SBC HL,BC + 00005D6B 21 06 00 3424 LD HL,6 + 00005D6E 30 0B 3425 JR NC,?0244 + 00005D70 3426 ?0246: + 00005D70 39 3427 ADD HL,SP + 00005D71 FD E5 3428 PUSH IY + 00005D73 C1 3429 POP BC + 00005D74 09 3430 ADD HL,BC + 00005D75 36 2A 3431 LD (HL),42 + 00005D77 FD 23 3432 INC IY + 00005D79 18 DC 3433 JR ?0245 + 00005D7B 3434 ?0244: + 00005D7B 39 3435 ADD HL,SP + 00005D7C FD E5 3436 PUSH IY + 00005D7E C1 3437 POP BC + 00005D7F 09 3438 ADD HL,BC + 00005D80 36 00 3439 LD (HL),0 + 00005D82 21 06 00 3440 LD HL,6 + 00005D85 39 3441 ADD HL,SP + 00005D86 EB 3442 EX DE,HL + 00005D87 18 06 3443 JR ?0365 + 00005D89 3444 ?0243: + 00005D89 DD 5E 20 3445 LD E,(IX+32) + 00005D8C DD 56 21 3446 LD D,(IX+33) + 00005D8F 3447 ?0365: + 00005D8F 3E 00 3448 LD A,BYTE3 Text + 00005D91 21 02 48 3449 LD HL,LWRD Text + 00005D94 CD 5E 81 3450 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D97 3451 ?0248: + 00005D97 3452 ?0235: + 00005D97 21 48 00 3453 LD HL,72 + 00005D9A 39 3454 ADD HL,SP + 00005D9B F9 3455 LD SP,HL + 00005D9C C3 27 48 3456 JP LWRD ?0411 + 00005D9F 3457 Display_new: + 00005D9F CD 88 81 3458 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005DA2 00 00 3459 DEFW 0 + 00005DA4 FD E5 3460 PUSH IY + 00005DA6 DD 6E 0E 3461 LD L,(IX+14) + 00005DA9 DD 66 0F 3462 LD H,(IX+15) + 00005DAC E5 3463 PUSH HL + 00005DAD DD 6E 0C 3464 LD L,(IX+12) + 00005DB0 DD 66 0D 3465 LD H,(IX+13) + 00005DB3 E5 3466 PUSH HL + 00005DB4 DD 6E 0A 3467 LD L,(IX+10) + 00005DB7 DD 66 0B 3468 LD H,(IX+11) + 00005DBA E5 3469 PUSH HL + 00005DBB DD 5E 02 3470 LD E,(IX+2) + 00005DBE DD 56 03 3471 LD D,(IX+3) + 00005DC1 CD A9 5B 3472 CALL LWRD ?0440 + 00005DC4 F1 3473 POP AF + 00005DC5 F1 3474 POP AF + 00005DC6 F1 3475 POP AF + 00005DC7 E5 3476 PUSH HL + 00005DC8 FD E1 3477 POP IY + 00005DCA 01 0A 00 3478 LD BC,10 + 00005DCD 09 3479 ADD HL,BC + 00005DCE CB DE 3480 SET 3,(HL) + 00005DD0 01 C9 84 3481 LD BC,?0249 + 00005DD3 FD E5 3482 PUSH IY + 00005DD5 D1 3483 POP DE + 00005DD6 3E 00 3484 LD A,BYTE3 Component_setlabel + 00005DD8 21 22 4C 3485 LD HL,LWRD Component_setlabel + 00005DDB CD 5E 81 3486 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005DDE FD 36 1A 53 3487 LD (IY+26),LOW(Display_paint) + 00005DE2 FD 36 1B 5C 3488 LD (IY+27),HIGH(Display_paint) + 00005DE6 FD 36 1C 00 3489 LD (IY+28),BYTE3 Display_paint + 00005DEA FD 36 17 D2 3490 LD (IY+23),LOW(Display_handler) + 00005DEE FD 36 18 5B 3491 LD (IY+24),HIGH(Display_handler) + 00005DF2 FD 36 19 00 3492 LD (IY+25),BYTE3 Display_handler + 00005DF6 C3 1A 4C 3493 JP LWRD ?0418 + 00005DF9 3494 Label_handler: + 00005DF9 CD 52 81 3495 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005DFC C3 1F 81 3496 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005DFF 3497 Label_paint: + 00005DFF C5 3498 PUSH BC + 00005E00 DD E5 3499 PUSH IX + 00005E02 F5 3500 PUSH AF + 00005E03 F5 3501 PUSH AF + 00005E04 D5 3502 PUSH DE + 00005E05 DD E1 3503 POP IX + 00005E07 21 02 00 3504 LD HL,2 + 00005E0A 39 3505 ADD HL,SP + 00005E0B AF 3506 XOR A + 00005E0C 77 3507 LD (HL),A + 00005E0D 23 3508 INC HL + 00005E0E 77 3509 LD (HL),A + 00005E0F 2B 3510 DEC HL + 00005E10 2B 3511 DEC HL + 00005E11 2B 3512 DEC HL + 00005E12 77 3513 LD (HL),A + 00005E13 23 3514 INC HL + 00005E14 77 3515 LD (HL),A + 00005E15 21 0A 00 3516 LD HL,10 + 00005E18 ED 4B C0 86 3517 LD BC,(global) + 00005E1C 09 3518 ADD HL,BC + 00005E1D 7E 3519 LD A,(HL) + 00005E1E 23 3520 INC HL + 00005E1F 66 3521 LD H,(HL) + 00005E20 6F 3522 LD L,A + 00005E21 46 3523 LD B,(HL) + 00005E22 23 3524 INC HL + 00005E23 66 3525 LD H,(HL) + 00005E24 68 3526 LD L,B + 00005E25 E5 3527 PUSH HL + 00005E26 21 0E 00 3528 LD HL,14 + 00005E29 19 3529 ADD HL,DE + 00005E2A 4E 3530 LD C,(HL) + 00005E2B 23 3531 INC HL + 00005E2C 46 3532 LD B,(HL) + 00005E2D E1 3533 POP HL + 00005E2E A7 3534 AND A + 00005E2F ED 42 3535 SBC HL,BC + 00005E31 28 03 3536 JR Z,?0251 + 00005E33 3537 ?0250: + 00005E33 CD E7 54 3538 CALL LWRD ?0473 + 00005E36 3539 ?0251: + 00005E36 DD CB 0A 46 3540 BIT 0,(IX+10) + 00005E3A 28 21 3541 JR Z,?0253 + 00005E3C 3542 ?0252: + 00005E3C 21 00 00 3543 LD HL,0 + 00005E3F 39 3544 ADD HL,SP + 00005E40 E5 3545 PUSH HL + 00005E41 CD 4E 53 3546 CALL LWRD ?0467 + 00005E44 E1 3547 POP HL + 00005E45 21 00 00 3548 LD HL,0 + 00005E48 39 3549 ADD HL,SP + 00005E49 4E 3550 LD C,(HL) + 00005E4A 23 3551 INC HL + 00005E4B 46 3552 LD B,(HL) + 00005E4C C5 3553 PUSH BC + 00005E4D 23 3554 INC HL + 00005E4E 4E 3555 LD C,(HL) + 00005E4F 23 3556 INC HL + 00005E50 46 3557 LD B,(HL) + 00005E51 DD E5 3558 PUSH IX + 00005E53 D1 3559 POP DE + 00005E54 3E 00 3560 LD A,BYTE3 Button_drawtext + 00005E56 21 43 56 3561 LD HL,LWRD Button_drawtext + 00005E59 CD 5E 81 3562 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005E5C E1 3563 POP HL + 00005E5D 3564 ?0253: + 00005E5D C3 CF 57 3565 JP LWRD ?0178 + 00005E60 3566 Label_new: + 00005E60 CD 88 81 3567 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005E63 00 00 3568 DEFW 0 + 00005E65 FD E5 3569 PUSH IY + 00005E67 DD 6E 0C 3570 LD L,(IX+12) + 00005E6A DD 66 0D 3571 LD H,(IX+13) + 00005E6D E5 3572 PUSH HL + 00005E6E DD 6E 0A 3573 LD L,(IX+10) + 00005E71 DD 66 0B 3574 LD H,(IX+11) + 00005E74 E5 3575 PUSH HL + 00005E75 CD 7E 55 3576 CALL LWRD ?0438 + 00005E78 F1 3577 POP AF + 00005E79 F1 3578 POP AF + 00005E7A E5 3579 PUSH HL + 00005E7B FD E1 3580 POP IY + 00005E7D 01 20 00 3581 LD BC,32 + 00005E80 09 3582 ADD HL,BC + 00005E81 DD 4E 0E 3583 LD C,(IX+14) + 00005E84 71 3584 LD (HL),C + 00005E85 DD 46 0F 3585 LD B,(IX+15) + 00005E88 23 3586 INC HL + 00005E89 70 3587 LD (HL),B + 00005E8A FD 36 0A 01 3588 LD (IY+10),1 + 00005E8E FD 36 0B 00 3589 LD (IY+11),0 + 00005E92 FD 36 17 F9 3590 LD (IY+23),LOW(Label_handler) + 00005E96 FD 36 18 5D 3591 LD (IY+24),HIGH(Label_handler) + 00005E9A FD 36 19 00 3592 LD (IY+25),BYTE3 Label_handler + 00005E9E FD 36 1A FF 3593 LD (IY+26),LOW(Label_paint) + 00005EA2 FD 36 1B 5D 3594 LD (IY+27),HIGH(Label_paint) + 00005EA6 FD 36 1C 00 3595 LD (IY+28),BYTE3 Label_paint + 00005EAA FD 36 1D F8 3596 LD (IY+29),LOW(Button_add) + 00005EAE FD 36 1E 57 3597 LD (IY+30),HIGH(Button_add) + 00005EB2 FD 36 1F 00 3598 LD (IY+31),BYTE3 Button_add + 00005EB6 C3 1A 4C 3599 JP LWRD ?0418 + 00005EB9 3600 rootWindow_handler: + 00005EB9 CD 88 81 3601 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005EBC 00 00 3602 DEFW 0 + 00005EBE DD 6E 0A 3603 LD L,(IX+10) + 00005EC1 DD 66 0B 3604 LD H,(IX+11) + 00005EC4 E5 3605 PUSH HL + 00005EC5 DD 5E 02 3606 LD E,(IX+2) + 00005EC8 DD 56 03 3607 LD D,(IX+3) + 00005ECB 3E 00 3608 LD A,BYTE3 Window_handler + 00005ECD 21 9B 50 3609 LD HL,LWRD Window_handler + 00005ED0 CD 5E 81 3610 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005ED3 E1 3611 POP HL + 00005ED4 C3 1F 81 3612 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005ED7 3613 screenbuilder: + 00005ED7 CD 88 81 3614 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005EDA CE FF 3615 DEFW 65486 + 00005EDC FD E5 3616 PUSH IY + 00005EDE DD 36 D8 00 3617 LD (IX-40),0 + 00005EE2 21 00 00 3618 LD HL,0 + 00005EE5 E5 3619 PUSH HL + 00005EE6 C5 3620 PUSH BC + 00005EE7 3E 01 3621 LD A,BYTE3 open + 00005EE9 21 AD 42 3622 LD HL,LWRD open + 00005EEC CD 5E 81 3623 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005EEF F1 3624 POP AF + 00005EF0 F1 3625 POP AF + 00005EF1 DD 75 D4 3626 LD (IX-44),L + 00005EF4 DD 74 D5 3627 LD (IX-43),H + 00005EF7 DD 36 F0 2B 3628 LD (IX-16),43 + 00005EFB DD 36 F1 00 3629 LD (IX-15),0 + 00005EFF DD 36 F2 1A 3630 LD (IX-14),26 + 00005F03 DD 36 F3 00 3631 LD (IX-13),0 + 00005F07 3632 ?0256: + 00005F07 DD 36 F4 00 3633 LD (IX-12),0 + 00005F0B DD 7E D8 3634 LD A,(IX-40) + 00005F0E FE 73 3635 CP 115 + 00005F10 20 18 3636 JR NZ,?0258 + 00005F12 3637 ?0257: + 00005F12 DD 6E D9 3638 LD L,(IX-39) + 00005F15 DD 66 DA 3639 LD H,(IX-38) + 00005F18 DD 75 F0 3640 LD (IX-16),L + 00005F1B DD 74 F1 3641 LD (IX-15),H + 00005F1E DD 6E DB 3642 LD L,(IX-37) + 00005F21 DD 66 DC 3643 LD H,(IX-36) + 00005F24 DD 75 F2 3644 LD (IX-14),L + 00005F27 DD 74 F3 3645 LD (IX-13),H + 00005F2A 3646 ?0258: + 00005F2A DD 7E D8 3647 LD A,(IX-40) + 00005F2D FE 42 3648 CP 66 + 00005F2F 28 07 3649 JR Z,?0261 + 00005F31 DD 7E D8 3650 LD A,(IX-40) + 00005F34 FE 4D 3651 CP 77 + 00005F36 20 4F 3652 JR NZ,?0260 + 00005F38 3653 ?0261: + 00005F38 3654 ?0262: + 00005F38 3655 ?0259: + 00005F38 DD 4E DD 3656 LD C,(IX-35) + 00005F3B 06 00 3657 LD B,0 + 00005F3D C5 3658 PUSH BC + 00005F3E CD 97 62 3659 CALL LWRD ?0482 + 00005F41 D5 3660 PUSH DE + 00005F42 DD 4E DB 3661 LD C,(IX-37) + 00005F45 DD 5E F0 3662 LD E,(IX-16) + 00005F48 DD 56 F1 3663 LD D,(IX-15) + 00005F4B CD A0 62 3664 CALL LWRD ?0483 + 00005F4E D5 3665 PUSH DE + 00005F4F DD 4E DA 3666 LD C,(IX-38) + 00005F52 DD 5E F2 3667 LD E,(IX-14) + 00005F55 DD 56 F3 3668 LD D,(IX-13) + 00005F58 CD 2A 81 3669 CALL LWRD ?S_MUL_L02 + 00005F5B D5 3670 PUSH DE + 00005F5C DD 5E D9 3671 LD E,(IX-39) + 00005F5F 50 3672 LD D,B + 00005F60 DD 4E F0 3673 LD C,(IX-16) + 00005F63 DD 46 F1 3674 LD B,(IX-15) + 00005F66 CD 2A 81 3675 CALL LWRD ?S_MUL_L02 + 00005F69 3E 00 3676 LD A,BYTE3 Button_new + 00005F6B 21 FE 57 3677 LD HL,LWRD Button_new + 00005F6E C1 3678 POP BC + 00005F6F CD 5E 81 3679 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005F72 F1 3680 POP AF + 00005F73 F1 3681 POP AF + 00005F74 F1 3682 POP AF + 00005F75 E5 3683 PUSH HL + 00005F76 FD E1 3684 POP IY + 00005F78 DD 7E D8 3685 LD A,(IX-40) + 00005F7B FE 4D 3686 CP 77 + 00005F7D 20 04 3687 JR NZ,?0264 + 00005F7F 3688 ?0263: + 00005F7F FD CB 0A F6 3689 SET 6,(IY+10) + 00005F83 3690 ?0264: + 00005F83 DD 36 F4 01 3691 LD (IX-12),1 + 00005F87 3692 ?0260: + 00005F87 DD 7E D8 3693 LD A,(IX-40) + 00005F8A FE 54 3694 CP 84 + 00005F8C 20 44 3695 JR NZ,?0266 + 00005F8E 3696 ?0265: + 00005F8E DD 4E DD 3697 LD C,(IX-35) + 00005F91 06 00 3698 LD B,0 + 00005F93 C5 3699 PUSH BC + 00005F94 CD 97 62 3700 CALL LWRD ?0482 + 00005F97 D5 3701 PUSH DE + 00005F98 DD 4E DB 3702 LD C,(IX-37) + 00005F9B DD 5E F0 3703 LD E,(IX-16) + 00005F9E DD 56 F1 3704 LD D,(IX-15) + 00005FA1 CD A0 62 3705 CALL LWRD ?0483 + 00005FA4 D5 3706 PUSH DE + 00005FA5 DD 4E DA 3707 LD C,(IX-38) + 00005FA8 DD 5E F2 3708 LD E,(IX-14) + 00005FAB DD 56 F3 3709 LD D,(IX-13) + 00005FAE CD 2A 81 3710 CALL LWRD ?S_MUL_L02 + 00005FB1 D5 3711 PUSH DE + 00005FB2 DD 5E D9 3712 LD E,(IX-39) + 00005FB5 50 3713 LD D,B + 00005FB6 DD 4E F0 3714 LD C,(IX-16) + 00005FB9 DD 46 F1 3715 LD B,(IX-15) + 00005FBC CD 2A 81 3716 CALL LWRD ?S_MUL_L02 + 00005FBF 3E 00 3717 LD A,BYTE3 ToggleButton_new + 00005FC1 21 D8 59 3718 LD HL,LWRD ToggleButton_new + 00005FC4 C1 3719 POP BC + 00005FC5 CD 5E 81 3720 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005FC8 F1 3721 POP AF + 00005FC9 F1 3722 POP AF + 00005FCA F1 3723 POP AF + 00005FCB E5 3724 PUSH HL + 00005FCC FD E1 3725 POP IY + 00005FCE DD 36 F4 01 3726 LD (IX-12),1 + 00005FD2 3727 ?0266: + 00005FD2 DD 7E D8 3728 LD A,(IX-40) + 00005FD5 FE 44 3729 CP 68 + 00005FD7 20 44 3730 JR NZ,?0268 + 00005FD9 3731 ?0267: + 00005FD9 DD 4E DD 3732 LD C,(IX-35) + 00005FDC 06 00 3733 LD B,0 + 00005FDE C5 3734 PUSH BC + 00005FDF CD 97 62 3735 CALL LWRD ?0482 + 00005FE2 D5 3736 PUSH DE + 00005FE3 DD 4E DB 3737 LD C,(IX-37) + 00005FE6 DD 5E F0 3738 LD E,(IX-16) + 00005FE9 DD 56 F1 3739 LD D,(IX-15) + 00005FEC CD A0 62 3740 CALL LWRD ?0483 + 00005FEF D5 3741 PUSH DE + 00005FF0 DD 4E DA 3742 LD C,(IX-38) + 00005FF3 DD 5E F2 3743 LD E,(IX-14) + 00005FF6 DD 56 F3 3744 LD D,(IX-13) + 00005FF9 CD 2A 81 3745 CALL LWRD ?S_MUL_L02 + 00005FFC D5 3746 PUSH DE + 00005FFD DD 5E D9 3747 LD E,(IX-39) + 00006000 50 3748 LD D,B + 00006001 DD 4E F0 3749 LD C,(IX-16) + 00006004 DD 46 F1 3750 LD B,(IX-15) + 00006007 CD 2A 81 3751 CALL LWRD ?S_MUL_L02 + 0000600A 3E 00 3752 LD A,BYTE3 Display_new + 0000600C 21 9F 5D 3753 LD HL,LWRD Display_new + 0000600F C1 3754 POP BC + 00006010 CD 5E 81 3755 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006013 F1 3756 POP AF + 00006014 F1 3757 POP AF + 00006015 F1 3758 POP AF + 00006016 E5 3759 PUSH HL + 00006017 FD E1 3760 POP IY + 00006019 DD 36 F4 01 3761 LD (IX-12),1 + 0000601D 3762 ?0268: + 0000601D DD 7E D8 3763 LD A,(IX-40) + 00006020 FE 4C 3764 CP 76 + 00006022 20 47 3765 JR NZ,?0270 + 00006024 3766 ?0269: + 00006024 21 0C 00 3767 LD HL,12 + 00006027 39 3768 ADD HL,SP + 00006028 01 12 00 3769 LD BC,18 + 0000602B 09 3770 ADD HL,BC + 0000602C E5 3771 PUSH HL + 0000602D CD 97 62 3772 CALL LWRD ?0482 + 00006030 D5 3773 PUSH DE + 00006031 DD 4E DB 3774 LD C,(IX-37) + 00006034 DD 5E F0 3775 LD E,(IX-16) + 00006037 DD 56 F1 3776 LD D,(IX-15) + 0000603A CD A0 62 3777 CALL LWRD ?0483 + 0000603D D5 3778 PUSH DE + 0000603E DD 4E DA 3779 LD C,(IX-38) + 00006041 DD 5E F2 3780 LD E,(IX-14) + 00006044 DD 56 F3 3781 LD D,(IX-13) + 00006047 CD 2A 81 3782 CALL LWRD ?S_MUL_L02 + 0000604A D5 3783 PUSH DE + 0000604B DD 5E D9 3784 LD E,(IX-39) + 0000604E 50 3785 LD D,B + 0000604F DD 4E F0 3786 LD C,(IX-16) + 00006052 DD 46 F1 3787 LD B,(IX-15) + 00006055 CD 2A 81 3788 CALL LWRD ?S_MUL_L02 + 00006058 3E 00 3789 LD A,BYTE3 Label_new + 0000605A 21 60 5E 3790 LD HL,LWRD Label_new + 0000605D C1 3791 POP BC + 0000605E CD 5E 81 3792 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006061 F1 3793 POP AF + 00006062 F1 3794 POP AF + 00006063 F1 3795 POP AF + 00006064 E5 3796 PUSH HL + 00006065 FD E1 3797 POP IY + 00006067 DD 36 F4 01 3798 LD (IX-12),1 + 0000606B 3799 ?0270: + 0000606B DD 7E D8 3800 LD A,(IX-40) + 0000606E FE 41 3801 CP 65 + 00006070 20 51 3802 JR NZ,?0272 + 00006072 3803 ?0271: + 00006072 21 26 00 3804 LD HL,38 + 00006075 DD 4E 02 3805 LD C,(IX+2) + 00006078 DD 46 03 3806 LD B,(IX+3) + 0000607B 09 3807 ADD HL,BC + 0000607C E5 3808 PUSH HL + 0000607D 21 2B 00 3809 LD HL,43 + 00006080 39 3810 ADD HL,SP + 00006081 EB 3811 EX DE,HL + 00006082 E1 3812 POP HL + 00006083 73 3813 LD (HL),E + 00006084 23 3814 INC HL + 00006085 72 3815 LD (HL),D + 00006086 DD 6E DE 3816 LD L,(IX-34) + 00006089 DD 66 DF 3817 LD H,(IX-33) + 0000608C DD 75 F8 3818 LD (IX-8),L + 0000608F DD 74 F9 3819 LD (IX-7),H + 00006092 DD 6E E0 3820 LD L,(IX-32) + 00006095 DD 66 E1 3821 LD H,(IX-31) + 00006098 DD 75 FA 3822 LD (IX-6),L + 0000609B DD 74 FB 3823 LD (IX-5),H + 0000609E 21 16 00 3824 LD HL,22 + 000060A1 39 3825 ADD HL,SP + 000060A2 4E 3826 LD C,(HL) + 000060A3 23 3827 INC HL + 000060A4 46 3828 LD B,(HL) + 000060A5 23 3829 INC HL + 000060A6 5E 3830 LD E,(HL) + 000060A7 23 3831 INC HL + 000060A8 56 3832 LD D,(HL) + 000060A9 DD 71 FC 3833 LD (IX-4),C + 000060AC DD 70 FD 3834 LD (IX-3),B + 000060AF DD 73 FE 3835 LD (IX-2),E + 000060B2 DD 72 FF 3836 LD (IX-1),D + 000060B5 DD 5E 02 3837 LD E,(IX+2) + 000060B8 DD 56 03 3838 LD D,(IX+3) + 000060BB 3E 00 3839 LD A,BYTE3 root_actionhandler + 000060BD 21 A7 62 3840 LD HL,LWRD root_actionhandler + 000060C0 CD 5E 81 3841 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000060C3 3842 ?0272: + 000060C3 DD 7E D8 3843 LD A,(IX-40) + 000060C6 FE 53 3844 CP 83 + 000060C8 20 71 3845 JR NZ,?0274 + 000060CA 3846 ?0273: + 000060CA 21 0C 00 3847 LD HL,12 + 000060CD 39 3848 ADD HL,SP + 000060CE 4D 3849 LD C,L + 000060CF 44 3850 LD B,H + 000060D0 DD 5E D4 3851 LD E,(IX-44) + 000060D3 DD 56 D5 3852 LD D,(IX-43) + 000060D6 3E 00 3853 LD A,BYTE3 read_stringtable + 000060D8 21 DF 65 3854 LD HL,LWRD read_stringtable + 000060DB CD 5E 81 3855 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000060DE 21 26 00 3856 LD HL,38 + 000060E1 DD 4E 02 3857 LD C,(IX+2) + 000060E4 DD 46 03 3858 LD B,(IX+3) + 000060E7 09 3859 ADD HL,BC + 000060E8 E5 3860 PUSH HL + 000060E9 11 04 00 3861 LD DE,4 + 000060EC CD 8F 62 3862 CALL LWRD ?0454 + 000060EF EB 3863 EX DE,HL + 000060F0 E1 3864 POP HL + 000060F1 73 3865 LD (HL),E + 000060F2 23 3866 INC HL + 000060F3 72 3867 LD (HL),D + 000060F4 21 26 00 3868 LD HL,38 + 000060F7 09 3869 ADD HL,BC + 000060F8 56 3870 LD D,(HL) + 000060F9 DD 72 F5 3871 LD (IX-11),D + 000060FC 23 3872 INC HL + 000060FD 66 3873 LD H,(HL) + 000060FE DD 74 F6 3874 LD (IX-10),H + 00006101 21 24 00 3875 LD HL,36 + 00006104 09 3876 ADD HL,BC + 00006105 36 04 3877 LD (HL),4 + 00006107 23 3878 INC HL + 00006108 36 00 3879 LD (HL),0 + 0000610A 6A 3880 LD L,D + 0000610B DD 66 F6 3881 LD H,(IX-10) + 0000610E 23 3882 INC HL + 0000610F 23 3883 INC HL + 00006110 E5 3884 PUSH HL + 00006111 21 08 00 3885 LD HL,8 + 00006114 ED 4B C0 86 3886 LD BC,(global) + 00006118 09 3887 ADD HL,BC + 00006119 5E 3888 LD E,(HL) + 0000611A 23 3889 INC HL + 0000611B 56 3890 LD D,(HL) + 0000611C E1 3891 POP HL + 0000611D 73 3892 LD (HL),E + 0000611E 23 3893 INC HL + 0000611F 72 3894 LD (HL),D + 00006120 21 06 00 3895 LD HL,6 + 00006123 ED 4B C0 86 3896 LD BC,(global) + 00006127 09 3897 ADD HL,BC + 00006128 46 3898 LD B,(HL) + 00006129 23 3899 INC HL + 0000612A 66 3900 LD H,(HL) + 0000612B 68 3901 LD L,B + 0000612C E5 3902 PUSH HL + 0000612D DD 6E F5 3903 LD L,(IX-11) + 00006130 DD 66 F6 3904 LD H,(IX-10) + 00006133 C1 3905 POP BC + 00006134 71 3906 LD (HL),C + 00006135 23 3907 INC HL + 00006136 70 3908 LD (HL),B + 00006137 DD 36 F4 00 3909 LD (IX-12),0 + 0000613B 3910 ?0274: + 0000613B AF 3911 XOR A + 0000613C DD B6 F4 3912 OR (IX-12) + 0000613F CA 3B 62 3913 JP Z,?0276 + 00006142 3914 ?0275: + 00006142 DD 7E DE 3915 LD A,(IX-34) + 00006145 DD B6 DF 3916 OR (IX-33) + 00006148 28 69 3917 JR Z,?0278 + 0000614A 3918 ?0277: + 0000614A FD CB 0A EE 3919 SET 5,(IY+10) + 0000614E FD 36 24 0B 3920 LD (IY+36),11 + 00006152 FD 36 25 00 3921 LD (IY+37),0 + 00006156 11 0B 00 3922 LD DE,11 + 00006159 CD 8F 62 3923 CALL LWRD ?0454 + 0000615C FD 75 26 3924 LD (IY+38),L + 0000615F FD 74 27 3925 LD (IY+39),H + 00006162 FD 6E 26 3926 LD L,(IY+38) + 00006165 DD 75 D0 3927 LD (IX-48),L + 00006168 FD 66 27 3928 LD H,(IY+39) + 0000616B DD 74 D1 3929 LD (IX-47),H + 0000616E 36 A7 3930 LD (HL),LOW(root_actionhandler) + 00006170 23 3931 INC HL + 00006171 36 62 3932 LD (HL),HIGH(root_actionhandler) + 00006173 23 3933 INC HL + 00006174 36 00 3934 LD (HL),BYTE3 root_actionhandler + 00006176 DD 6E D0 3935 LD L,(IX-48) + 00006179 DD 66 D1 3936 LD H,(IX-47) + 0000617C 23 3937 INC HL + 0000617D 23 3938 INC HL + 0000617E 23 3939 INC HL + 0000617F DD 4E DE 3940 LD C,(IX-34) + 00006182 71 3941 LD (HL),C + 00006183 DD 46 DF 3942 LD B,(IX-33) + 00006186 23 3943 INC HL + 00006187 70 3944 LD (HL),B + 00006188 21 05 00 3945 LD HL,5 + 0000618B DD 4E D0 3946 LD C,(IX-48) + 0000618E DD 46 D1 3947 LD B,(IX-47) + 00006191 09 3948 ADD HL,BC + 00006192 DD 5E E0 3949 LD E,(IX-32) + 00006195 73 3950 LD (HL),E + 00006196 DD 56 E1 3951 LD D,(IX-31) + 00006199 23 3952 INC HL + 0000619A 72 3953 LD (HL),D + 0000619B 21 07 00 3954 LD HL,7 + 0000619E 09 3955 ADD HL,BC + 0000619F E5 3956 PUSH HL + 000061A0 21 18 00 3957 LD HL,24 + 000061A3 39 3958 ADD HL,SP + 000061A4 5E 3959 LD E,(HL) + 000061A5 23 3960 INC HL + 000061A6 56 3961 LD D,(HL) + 000061A7 23 3962 INC HL + 000061A8 4E 3963 LD C,(HL) + 000061A9 23 3964 INC HL + 000061AA 46 3965 LD B,(HL) + 000061AB E1 3966 POP HL + 000061AC 73 3967 LD (HL),E + 000061AD 23 3968 INC HL + 000061AE 72 3969 LD (HL),D + 000061AF 23 3970 INC HL + 000061B0 71 3971 LD (HL),C + 000061B1 23 3972 INC HL + 000061B2 70 3973 LD (HL),B + 000061B3 3974 ?0278: + 000061B3 DD 7E E6 3975 LD A,(IX-26) + 000061B6 DD B6 E7 3976 OR (IX-25) + 000061B9 28 0C 3977 JR Z,?0280 + 000061BB 3978 ?0279: + 000061BB DD 6E E6 3979 LD L,(IX-26) + 000061BE FD 75 0A 3980 LD (IY+10),L + 000061C1 DD 66 E7 3981 LD H,(IX-25) + 000061C4 FD 74 0B 3982 LD (IY+11),H + 000061C7 3983 ?0280: + 000061C7 DD 6E E8 3984 LD L,(IX-24) + 000061CA FD 75 0E 3985 LD (IY+14),L + 000061CD DD 66 E9 3986 LD H,(IX-23) + 000061D0 FD 74 0F 3987 LD (IY+15),H + 000061D3 DD 6E EA 3988 LD L,(IX-22) + 000061D6 FD 75 20 3989 LD (IY+32),L + 000061D9 DD 7E EB 3990 LD A,(IX-21) + 000061DC E6 0F 3991 AND 15 + 000061DE FD 77 21 3992 LD (IY+33),A + 000061E1 FD 7E 20 3993 LD A,(IY+32) + 000061E4 FD B6 21 3994 OR (IY+33) + 000061E7 20 16 3995 JR NZ,?0282 + 000061E9 3996 ?0281: + 000061E9 11 14 00 3997 LD DE,20 + 000061EC CD 8F 62 3998 CALL LWRD ?0454 + 000061EF FD 75 20 3999 LD (IY+32),L + 000061F2 FD 74 21 4000 LD (IY+33),H + 000061F5 FD 6E 20 4001 LD L,(IY+32) + 000061F8 FD 66 21 4002 LD H,(IY+33) + 000061FB 36 00 4003 LD (HL),0 + 000061FD 18 04 4004 JR ?0283 + 000061FF 4005 ?0282: + 000061FF FD CB 0B F6 4006 SET 6,(IY+11) + 00006203 4007 ?0283: + 00006203 DD 7E EB 4008 LD A,(IX-21) + 00006206 2E 00 4009 LD L,0 + 00006208 4D 4010 LD C,L + 00006209 E6 F0 4011 AND 240 + 0000620B 47 4012 LD B,A + 0000620C 26 10 4013 LD H,16 + 0000620E ED 42 4014 SBC HL,BC + 00006210 30 10 4015 JR NC,?0285 + 00006212 4016 ?0284: + 00006212 DD 6E EA 4017 LD L,(IX-22) + 00006215 DD 7E EB 4018 LD A,(IX-21) + 00006218 E6 0F 4019 AND 15 + 0000621A 67 4020 LD H,A + 0000621B 23 4021 INC HL + 0000621C FD 75 22 4022 LD (IY+34),L + 0000621F FD 74 23 4023 LD (IY+35),H + 00006222 4024 ?0285: + 00006222 FD E5 4025 PUSH IY + 00006224 DD 5E 02 4026 LD E,(IX+2) + 00006227 4B 4027 LD C,E + 00006228 DD 56 03 4028 LD D,(IX+3) + 0000622B 42 4029 LD B,D + 0000622C 21 1D 00 4030 LD HL,29 + 0000622F 09 4031 ADD HL,BC + 00006230 4E 4032 LD C,(HL) + 00006231 23 4033 INC HL + 00006232 46 4034 LD B,(HL) + 00006233 23 4035 INC HL + 00006234 7E 4036 LD A,(HL) + 00006235 69 4037 LD L,C + 00006236 60 4038 LD H,B + 00006237 C1 4039 POP BC + 00006238 CD 5E 81 4040 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000623B 4041 ?0276: + 0000623B 21 14 00 4042 LD HL,20 + 0000623E E5 4043 PUSH HL + 0000623F 2E 0E 4044 LD L,14 + 00006241 39 4045 ADD HL,SP + 00006242 4D 4046 LD C,L + 00006243 44 4047 LD B,H + 00006244 DD 5E D4 4048 LD E,(IX-44) + 00006247 DD 56 D5 4049 LD D,(IX-43) + 0000624A CD 87 62 4050 CALL LWRD ?0441 + 0000624D F1 4051 POP AF + 0000624E 3E 14 4052 LD A,20 + 00006250 AD 4053 XOR L + 00006251 B4 4054 OR H + 00006252 CA 07 5F 4055 JP Z,?0256 + 00006255 4056 ?0254: + 00006255 DD 5E D4 4057 LD E,(IX-44) + 00006258 DD 56 D5 4058 LD D,(IX-43) + 0000625B 3E 00 4059 LD A,BYTE3 close + 0000625D 21 2B 72 4060 LD HL,LWRD close + 00006260 CD 5E 81 4061 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006263 DD 5E 02 4062 LD E,(IX+2) + 00006266 DD 56 03 4063 LD D,(IX+3) + 00006269 3E 00 4064 LD A,BYTE3 Component_linkstringtable + 0000626B 21 E8 4F 4065 LD HL,LWRD Component_linkstringtable + 0000626E CD 5E 81 4066 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006271 DD 5E 02 4067 LD E,(IX+2) + 00006274 4B 4068 LD C,E + 00006275 DD 56 03 4069 LD D,(IX+3) + 00006278 42 4070 LD B,D + 00006279 21 1A 00 4071 LD HL,26 + 0000627C 09 4072 ADD HL,BC + 0000627D 4E 4073 LD C,(HL) + 0000627E 23 4074 INC HL + 0000627F 46 4075 LD B,(HL) + 00006280 23 4076 INC HL + 00006281 7E 4077 LD A,(HL) + 00006282 69 4078 LD L,C + 00006283 60 4079 LD H,B + 00006284 C3 E8 56 4080 JP LWRD ?0424 + 00006287 4081 ?0441: + 00006287 3E 01 4082 LD A,BYTE3 _read + 00006289 21 34 45 4083 LD HL,LWRD _read + 0000628C C3 5E 81 4084 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000628F 4085 ?0454: + 0000628F 3E 01 4086 LD A,BYTE3 malloc + 00006291 21 D8 42 4087 LD HL,LWRD malloc + 00006294 C3 5E 81 4088 JP LWRD ?BANK_CALL_DIRECT_L08 + 00006297 4089 ?0482: + 00006297 DD 4E DC 4090 LD C,(IX-36) + 0000629A DD 5E F2 4091 LD E,(IX-14) + 0000629D DD 56 F3 4092 LD D,(IX-13) + 000062A0 4093 ?0483: + 000062A0 CD 2A 81 4094 CALL LWRD ?S_MUL_L02 + 000062A3 1B 4095 DEC DE + 000062A4 1B 4096 DEC DE + 000062A5 1B 4097 DEC DE + 000062A6 C9 4098 RET + 000062A7 4099 root_actionhandler: + 000062A7 CD 88 81 4100 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000062AA EA FF 4101 DEFW 65514 + 000062AC FD E5 4102 PUSH IY + 000062AE DD 6E 02 4103 LD L,(IX+2) + 000062B1 DD 66 03 4104 LD H,(IX+3) + 000062B4 E5 4105 PUSH HL + 000062B5 FD E1 4106 POP IY + 000062B7 21 06 00 4107 LD HL,6 + 000062BA 39 4108 ADD HL,SP + 000062BB EB 4109 EX DE,HL + 000062BC 21 A7 84 4110 LD HL,?0286 + 000062BF 01 0E 00 4111 LD BC,14 + 000062C2 ED B0 4112 LDIR + 000062C4 FD 6E 26 4113 LD L,(IY+38) + 000062C7 DD 75 EA 4114 LD (IX-22),L + 000062CA FD 66 27 4115 LD H,(IY+39) + 000062CD DD 74 EB 4116 LD (IX-21),H + 000062D0 23 4117 INC HL + 000062D1 23 4118 INC HL + 000062D2 23 4119 INC HL + 000062D3 3E 01 4120 LD A,1 + 000062D5 AE 4121 XOR (HL) + 000062D6 23 4122 INC HL + 000062D7 B6 4123 OR (HL) + 000062D8 20 08 4124 JR NZ,?0288 + 000062DA 4125 ?0287: + 000062DA C5 4126 PUSH BC + 000062DB 01 01 04 4127 LD BC,1025 + 000062DE CD 3F 53 4128 CALL LWRD ?0463 + 000062E1 E1 4129 POP HL + 000062E2 4130 ?0288: + 000062E2 DD 6E EA 4131 LD L,(IX-22) + 000062E5 DD 66 EB 4132 LD H,(IX-21) + 000062E8 23 4133 INC HL + 000062E9 23 4134 INC HL + 000062EA 23 4135 INC HL + 000062EB 46 4136 LD B,(HL) + 000062EC 23 4137 INC HL + 000062ED 66 4138 LD H,(HL) + 000062EE 68 4139 LD L,B + 000062EF CB 85 4140 RES 0,L + 000062F1 3E 02 4141 LD A,2 + 000062F3 AD 4142 XOR L + 000062F4 B4 4143 OR H + 000062F5 C2 12 64 4144 JP NZ,?0290 + 000062F8 4145 ?0289: + 000062F8 6F 4146 LD L,A + 000062F9 67 4147 LD H,A + 000062FA E5 4148 PUSH HL + 000062FB E5 4149 PUSH HL + 000062FC 01 01 00 4150 LD BC,1 + 000062FF FD 5E 11 4151 LD E,(IY+17) + 00006302 FD 56 12 4152 LD D,(IY+18) + 00006305 3E 00 4153 LD A,BYTE3 Component_changestate_children + 00006307 21 7F 4F 4154 LD HL,LWRD Component_changestate_children + 0000630A CD 5E 81 4155 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000630D E1 4156 POP HL + 0000630E E1 4157 POP HL + 0000630F FD 6E 11 4158 LD L,(IY+17) + 00006312 FD 66 12 4159 LD H,(IY+18) + 00006315 01 08 00 4160 LD BC,8 + 00006318 09 4161 ADD HL,BC + 00006319 4E 4162 LD C,(HL) + 0000631A 23 4163 INC HL + 0000631B 46 4164 LD B,(HL) + 0000631C C5 4165 PUSH BC + 0000631D FD 6E 11 4166 LD L,(IY+17) + 00006320 FD 66 12 4167 LD H,(IY+18) + 00006323 01 06 00 4168 LD BC,6 + 00006326 09 4169 ADD HL,BC + 00006327 4E 4170 LD C,(HL) + 00006328 23 4171 INC HL + 00006329 46 4172 LD B,(HL) + 0000632A C5 4173 PUSH BC + 0000632B 01 00 00 4174 LD BC,0 + 0000632E 59 4175 LD E,C + 0000632F 50 4176 LD D,B + 00006330 3E 00 4177 LD A,BYTE3 Window_new + 00006332 21 3A 55 4178 LD HL,LWRD Window_new + 00006335 CD 5E 81 4179 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006338 F1 4180 POP AF + 00006339 F1 4181 POP AF + 0000633A DD 75 EC 4182 LD (IX-20),L + 0000633D DD 74 ED 4183 LD (IX-19),H + 00006340 01 0A 00 4184 LD BC,10 + 00006343 09 4185 ADD HL,BC + 00006344 36 03 4186 LD (HL),3 + 00006346 23 4187 INC HL + 00006347 70 4188 LD (HL),B + 00006348 DD 6E EA 4189 LD L,(IX-22) + 0000634B DD 66 EB 4190 LD H,(IX-21) + 0000634E 23 4191 INC HL + 0000634F 23 4192 INC HL + 00006350 23 4193 INC HL + 00006351 CB 46 4194 BIT 0,(HL) + 00006353 28 0C 4195 JR Z,?0292 + 00006355 4196 ?0291: + 00006355 69 4197 LD L,C + 00006356 60 4198 LD H,B + 00006357 DD 4E EC 4199 LD C,(IX-20) + 0000635A DD 46 ED 4200 LD B,(IX-19) + 0000635D 09 4201 ADD HL,BC + 0000635E 23 4202 INC HL + 0000635F CB EE 4203 SET 5,(HL) + 00006361 4204 ?0292: + 00006361 21 17 00 4205 LD HL,23 + 00006364 DD 4E EC 4206 LD C,(IX-20) + 00006367 DD 46 ED 4207 LD B,(IX-19) + 0000636A 09 4208 ADD HL,BC + 0000636B 36 B9 4209 LD (HL),LOW(rootWindow_handler) + 0000636D 23 4210 INC HL + 0000636E 36 5E 4211 LD (HL),HIGH(rootWindow_handler) + 00006370 23 4212 INC HL + 00006371 36 00 4213 LD (HL),BYTE3 rootWindow_handler + 00006373 21 1A 00 4214 LD HL,26 + 00006376 09 4215 ADD HL,BC + 00006377 36 F5 4216 LD (HL),LOW(Root_paint) + 00006379 23 4217 INC HL + 0000637A 36 54 4218 LD (HL),HIGH(Root_paint) + 0000637C 23 4219 INC HL + 0000637D 36 00 4220 LD (HL),BYTE3 Root_paint + 0000637F 21 07 00 4221 LD HL,7 + 00006382 DD 5E EA 4222 LD E,(IX-22) + 00006385 DD 56 EB 4223 LD D,(IX-21) + 00006388 19 4224 ADD HL,DE + 00006389 5E 4225 LD E,(HL) + 0000638A EB 4226 EX DE,HL + 0000638B DD 75 F3 4227 LD (IX-13),L + 0000638E 21 07 00 4228 LD HL,7 + 00006391 DD 4E EA 4229 LD C,(IX-22) + 00006394 DD 46 EB 4230 LD B,(IX-21) + 00006397 09 4231 ADD HL,BC + 00006398 5E 4232 LD E,(HL) + 00006399 23 4233 INC HL + 0000639A 56 4234 LD D,(HL) + 0000639B 23 4235 INC HL + 0000639C 4E 4236 LD C,(HL) + 0000639D 23 4237 INC HL + 0000639E 46 4238 LD B,(HL) + 0000639F EB 4239 EX DE,HL + 000063A0 3E 08 4240 LD A,8 + 000063A2 CD F9 81 4241 CALL LWRD ?SL_RSH_L03 + 000063A5 DD 75 F4 4242 LD (IX-12),L + 000063A8 21 07 00 4243 LD HL,7 + 000063AB DD 4E EA 4244 LD C,(IX-22) + 000063AE DD 46 EB 4245 LD B,(IX-21) + 000063B1 09 4246 ADD HL,BC + 000063B2 5E 4247 LD E,(HL) + 000063B3 23 4248 INC HL + 000063B4 56 4249 LD D,(HL) + 000063B5 23 4250 INC HL + 000063B6 4E 4251 LD C,(HL) + 000063B7 23 4252 INC HL + 000063B8 46 4253 LD B,(HL) + 000063B9 EB 4254 EX DE,HL + 000063BA 3E 10 4255 LD A,16 + 000063BC CD F9 81 4256 CALL LWRD ?SL_RSH_L03 + 000063BF DD 75 F5 4257 LD (IX-11),L + 000063C2 21 07 00 4258 LD HL,7 + 000063C5 DD 4E EA 4259 LD C,(IX-22) + 000063C8 DD 46 EB 4260 LD B,(IX-21) + 000063CB 09 4261 ADD HL,BC + 000063CC 5E 4262 LD E,(HL) + 000063CD 23 4263 INC HL + 000063CE 56 4264 LD D,(HL) + 000063CF 23 4265 INC HL + 000063D0 4E 4266 LD C,(HL) + 000063D1 23 4267 INC HL + 000063D2 46 4268 LD B,(HL) + 000063D3 EB 4269 EX DE,HL + 000063D4 3E 18 4270 LD A,24 + 000063D6 CD F9 81 4271 CALL LWRD ?SL_RSH_L03 + 000063D9 DD 75 F6 4272 LD (IX-10),L + 000063DC 21 06 00 4273 LD HL,6 + 000063DF 39 4274 ADD HL,SP + 000063E0 4D 4275 LD C,L + 000063E1 44 4276 LD B,H + 000063E2 DD 5E EC 4277 LD E,(IX-20) + 000063E5 DD 56 ED 4278 LD D,(IX-19) + 000063E8 3E 00 4279 LD A,BYTE3 screenbuilder + 000063EA 21 D7 5E 4280 LD HL,LWRD screenbuilder + 000063ED CD 5E 81 4281 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000063F0 DD 4E EC 4282 LD C,(IX-20) + 000063F3 DD 46 ED 4283 LD B,(IX-19) + 000063F6 C5 4284 PUSH BC + 000063F7 FD 5E 11 4285 LD E,(IY+17) + 000063FA FD 56 12 4286 LD D,(IY+18) + 000063FD FD 6E 11 4287 LD L,(IY+17) + 00006400 FD 66 12 4288 LD H,(IY+18) + 00006403 01 1D 00 4289 LD BC,29 + 00006406 09 4290 ADD HL,BC + 00006407 4E 4291 LD C,(HL) + 00006408 23 4292 INC HL + 00006409 46 4293 LD B,(HL) + 0000640A 23 4294 INC HL + 0000640B 7E 4295 LD A,(HL) + 0000640C 69 4296 LD L,C + 0000640D 60 4297 LD H,B + 0000640E C1 4298 POP BC + 0000640F CD 5E 81 4299 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006412 4300 ?0290: + 00006412 DD 6E EA 4301 LD L,(IX-22) + 00006415 DD 66 EB 4302 LD H,(IX-21) + 00006418 23 4303 INC HL + 00006419 23 4304 INC HL + 0000641A 23 4305 INC HL + 0000641B 3E 04 4306 LD A,4 + 0000641D AE 4307 XOR (HL) + 0000641E 23 4308 INC HL + 0000641F B6 4309 OR (HL) + 00006420 C2 B0 65 4310 JP NZ,?0294 + 00006423 4311 ?0293: + 00006423 21 01 00 4312 LD HL,1 + 00006426 E5 4313 PUSH HL + 00006427 FD 6E 11 4314 LD L,(IY+17) + 0000642A FD 66 12 4315 LD H,(IY+18) + 0000642D 01 08 00 4316 LD BC,8 + 00006430 09 4317 ADD HL,BC + 00006431 46 4318 LD B,(HL) + 00006432 23 4319 INC HL + 00006433 66 4320 LD H,(HL) + 00006434 68 4321 LD L,B + 00006435 01 F6 FF 4322 LD BC,65526 + 00006438 09 4323 ADD HL,BC + 00006439 E5 4324 PUSH HL + 0000643A FD 6E 11 4325 LD L,(IY+17) + 0000643D FD 66 12 4326 LD H,(IY+18) + 00006440 01 06 00 4327 LD BC,6 + 00006443 09 4328 ADD HL,BC + 00006444 46 4329 LD B,(HL) + 00006445 23 4330 INC HL + 00006446 66 4331 LD H,(HL) + 00006447 68 4332 LD L,B + 00006448 01 F6 FF 4333 LD BC,65526 + 0000644B 09 4334 ADD HL,BC + 0000644C E5 4335 PUSH HL + 0000644D 01 05 00 4336 LD BC,5 + 00006450 59 4337 LD E,C + 00006451 50 4338 LD D,B + 00006452 3E 00 4339 LD A,BYTE3 Dialog_new + 00006454 21 E3 5A 4340 LD HL,LWRD Dialog_new + 00006457 CD 5E 81 4341 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000645A F1 4342 POP AF + 0000645B F1 4343 POP AF + 0000645C F1 4344 POP AF + 0000645D DD 75 EC 4345 LD (IX-20),L + 00006460 DD 74 ED 4346 LD (IX-19),H + 00006463 01 0A 00 4347 LD BC,10 + 00006466 09 4348 ADD HL,BC + 00006467 36 03 4349 LD (HL),3 + 00006469 23 4350 INC HL + 0000646A 36 10 4351 LD (HL),16 + 0000646C 21 0E 00 4352 LD HL,14 + 0000646F DD 4E EC 4353 LD C,(IX-20) + 00006472 DD 46 ED 4354 LD B,(IX-19) + 00006475 09 4355 ADD HL,BC + 00006476 36 30 4356 LD (HL),48 + 00006478 23 4357 INC HL + 00006479 36 00 4358 LD (HL),0 + 0000647B AF 4359 XOR A + 0000647C DD 77 FE 4360 LD (IX-2),A + 0000647F DD 77 FF 4361 LD (IX-1),A + 00006482 4362 ?0296: + 00006482 21 05 00 4363 LD HL,5 + 00006485 DD 4E EA 4364 LD C,(IX-22) + 00006488 DD 46 EB 4365 LD B,(IX-21) + 0000648B 09 4366 ADD HL,BC + 0000648C 5E 4367 LD E,(HL) + 0000648D 23 4368 INC HL + 0000648E 56 4369 LD D,(HL) + 0000648F 06 0C 4370 LD B,12 + 00006491 CD 2E 82 4371 CALL LWRD ?SS_RSH_L02 + 00006494 4B 4372 LD C,E + 00006495 42 4373 LD B,D + 00006496 DD 6E FE 4374 LD L,(IX-2) + 00006499 DD 66 FF 4375 LD H,(IX-1) + 0000649C CD A6 81 4376 CALL LWRD ?SS_CMP_L02 + 0000649F 30 04 4377 JR NC,?0367 + 000064A1 3E 01 4378 LD A,1 + 000064A3 18 01 4379 JR ?0368 + 000064A5 4380 ?0367: + 000064A5 AF 4381 XOR A + 000064A6 4382 ?0368: + 000064A6 E6 0F 4383 AND 15 + 000064A8 CA 44 65 4384 JP Z,?0295 + 000064AB 4385 ?0297: + 000064AB 21 05 00 4386 LD HL,5 + 000064AE DD 4E EA 4387 LD C,(IX-22) + 000064B1 DD 46 EB 4388 LD B,(IX-21) + 000064B4 09 4389 ADD HL,BC + 000064B5 46 4390 LD B,(HL) + 000064B6 23 4391 INC HL + 000064B7 7E 4392 LD A,(HL) + 000064B8 68 4393 LD L,B + 000064B9 E6 0F 4394 AND 15 + 000064BB 67 4395 LD H,A + 000064BC DD 4E FE 4396 LD C,(IX-2) + 000064BF DD 46 FF 4397 LD B,(IX-1) + 000064C2 09 4398 ADD HL,BC + 000064C3 29 4399 ADD HL,HL + 000064C4 E5 4400 PUSH HL + 000064C5 21 08 00 4401 LD HL,8 + 000064C8 ED 5B C0 86 4402 LD DE,(global) + 000064CC 19 4403 ADD HL,DE + 000064CD 5E 4404 LD E,(HL) + 000064CE 23 4405 INC HL + 000064CF 56 4406 LD D,(HL) + 000064D0 E1 4407 POP HL + 000064D1 19 4408 ADD HL,DE + 000064D2 2B 4409 DEC HL + 000064D3 2B 4410 DEC HL + 000064D4 5E 4411 LD E,(HL) + 000064D5 23 4412 INC HL + 000064D6 56 4413 LD D,(HL) + 000064D7 D5 4414 PUSH DE + 000064D8 21 10 00 4415 LD HL,16 + 000064DB E5 4416 PUSH HL + 000064DC 2E 06 4417 LD L,6 + 000064DE DD 5E EC 4418 LD E,(IX-20) + 000064E1 DD 56 ED 4419 LD D,(IX-19) + 000064E4 19 4420 ADD HL,DE + 000064E5 6E 4421 LD L,(HL) + 000064E6 26 00 4422 LD H,0 + 000064E8 01 F0 FF 4423 LD BC,65520 + 000064EB 09 4424 ADD HL,BC + 000064EC E5 4425 PUSH HL + 000064ED DD 6E FE 4426 LD L,(IX-2) + 000064F0 DD 66 FF 4427 LD H,(IX-1) + 000064F3 29 4428 ADD HL,HL + 000064F4 29 4429 ADD HL,HL + 000064F5 4D 4430 LD C,L + 000064F6 44 4431 LD B,H + 000064F7 29 4432 ADD HL,HL + 000064F8 09 4433 ADD HL,BC + 000064F9 01 14 00 4434 LD BC,20 + 000064FC 09 4435 ADD HL,BC + 000064FD 4D 4436 LD C,L + 000064FE 44 4437 LD B,H + 000064FF 11 08 00 4438 LD DE,8 + 00006502 3E 00 4439 LD A,BYTE3 Label_new + 00006504 21 60 5E 4440 LD HL,LWRD Label_new + 00006507 CD 5E 81 4441 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000650A F1 4442 POP AF + 0000650B F1 4443 POP AF + 0000650C F1 4444 POP AF + 0000650D DD 75 FC 4445 LD (IX-4),L + 00006510 DD 74 FD 4446 LD (IX-3),H + 00006513 01 0E 00 4447 LD BC,14 + 00006516 09 4448 ADD HL,BC + 00006517 36 30 4449 LD (HL),48 + 00006519 23 4450 INC HL + 0000651A 70 4451 LD (HL),B + 0000651B DD 4E FC 4452 LD C,(IX-4) + 0000651E DD 46 FD 4453 LD B,(IX-3) + 00006521 C5 4454 PUSH BC + 00006522 DD 5E EC 4455 LD E,(IX-20) + 00006525 4B 4456 LD C,E + 00006526 DD 56 ED 4457 LD D,(IX-19) + 00006529 42 4458 LD B,D + 0000652A 21 1D 00 4459 LD HL,29 + 0000652D 09 4460 ADD HL,BC + 0000652E 4E 4461 LD C,(HL) + 0000652F 23 4462 INC HL + 00006530 46 4463 LD B,(HL) + 00006531 23 4464 INC HL + 00006532 7E 4465 LD A,(HL) + 00006533 69 4466 LD L,C + 00006534 60 4467 LD H,B + 00006535 C1 4468 POP BC + 00006536 CD 5E 81 4469 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006539 DD 34 FE 4470 INC (IX-2) + 0000653C 20 03 4471 JR NZ,?0369 + 0000653E DD 34 FF 4472 INC (IX-1) + 00006541 4473 ?0369: + 00006541 C3 82 64 4474 JP LWRD ?0296 + 00006544 4475 ?0295: + 00006544 01 CA 84 4476 LD BC,?0299 + 00006547 DD 5E EC 4477 LD E,(IX-20) + 0000654A DD 56 ED 4478 LD D,(IX-19) + 0000654D 3E 00 4479 LD A,BYTE3 Component_setlabel + 0000654F 21 22 4C 4480 LD HL,LWRD Component_setlabel + 00006552 CD 5E 81 4481 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006555 01 FF 00 4482 LD BC,255 + 00006558 CD D1 65 4483 CALL LWRD ?0476 + 0000655B 01 0E 00 4484 LD BC,14 + 0000655E 09 4485 ADD HL,BC + 0000655F 36 30 4486 LD (HL),48 + 00006561 23 4487 INC HL + 00006562 70 4488 LD (HL),B + 00006563 0E FE 4489 LD C,254 + 00006565 CD D1 65 4490 CALL LWRD ?0476 + 00006568 EB 4491 EX DE,HL + 00006569 CD 58 4F 4492 CALL LWRD ?0453 + 0000656C DD 4E EC 4493 LD C,(IX-20) + 0000656F DD 46 ED 4494 LD B,(IX-19) + 00006572 C5 4495 PUSH BC + 00006573 FD 5E 11 4496 LD E,(IY+17) + 00006576 FD 56 12 4497 LD D,(IY+18) + 00006579 FD 6E 11 4498 LD L,(IY+17) + 0000657C FD 66 12 4499 LD H,(IY+18) + 0000657F 01 1D 00 4500 LD BC,29 + 00006582 09 4501 ADD HL,BC + 00006583 4E 4502 LD C,(HL) + 00006584 23 4503 INC HL + 00006585 46 4504 LD B,(HL) + 00006586 23 4505 INC HL + 00006587 7E 4506 LD A,(HL) + 00006588 69 4507 LD L,C + 00006589 60 4508 LD H,B + 0000658A C1 4509 POP BC + 0000658B CD 5E 81 4510 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000658E 21 00 00 4511 LD HL,0 + 00006591 E5 4512 PUSH HL + 00006592 FD 5E 11 4513 LD E,(IY+17) + 00006595 FD 56 12 4514 LD D,(IY+18) + 00006598 FD 6E 11 4515 LD L,(IY+17) + 0000659B FD 66 12 4516 LD H,(IY+18) + 0000659E 01 17 00 4517 LD BC,23 + 000065A1 09 4518 ADD HL,BC + 000065A2 4E 4519 LD C,(HL) + 000065A3 23 4520 INC HL + 000065A4 46 4521 LD B,(HL) + 000065A5 23 4522 INC HL + 000065A6 7E 4523 LD A,(HL) + 000065A7 69 4524 LD L,C + 000065A8 60 4525 LD H,B + 000065A9 01 03 01 4526 LD BC,259 + 000065AC CD 5E 81 4527 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000065AF E1 4528 POP HL + 000065B0 4529 ?0294: + 000065B0 21 10 00 4530 LD HL,16 + 000065B3 ED 4B C0 86 4531 LD BC,(global) + 000065B7 09 4532 ADD HL,BC + 000065B8 7E 4533 LD A,(HL) + 000065B9 23 4534 INC HL + 000065BA B6 4535 OR (HL) + 000065BB 23 4536 INC HL + 000065BC B6 4537 OR (HL) + 000065BD 28 0D 4538 JR Z,?0301 + 000065BF 4539 ?0300: + 000065BF FD E5 4540 PUSH IY + 000065C1 D1 4541 POP DE + 000065C2 21 10 00 4542 LD HL,16 + 000065C5 ED 4B C0 86 4543 LD BC,(global) + 000065C9 CD 5D 53 4544 CALL LWRD ?0475 + 000065CC 4545 ?0301: + 000065CC FD E1 4546 POP IY + 000065CE C3 1F 81 4547 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000065D1 4548 ?0476: + 000065D1 DD 5E EC 4549 LD E,(IX-20) + 000065D4 DD 56 ED 4550 LD D,(IX-19) + 000065D7 3E 00 4551 LD A,BYTE3 Component_find + 000065D9 21 57 4D 4552 LD HL,LWRD Component_find + 000065DC C3 5E 81 4553 JP LWRD ?BANK_CALL_DIRECT_L08 + 000065DF 4554 read_stringtable: + 000065DF CD 88 81 4555 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000065E2 F8 FF 4556 DEFW -8 + 000065E4 FD E5 4557 PUSH IY + 000065E6 03 4558 INC BC + 000065E7 0A 4559 LD A,(BC) + 000065E8 DD 77 FE 4560 LD (IX-2),A + 000065EB 03 4561 INC BC + 000065EC 0A 4562 LD A,(BC) + 000065ED DD 77 FF 4563 LD (IX-1),A + 000065F0 03 4564 INC BC + 000065F1 69 4565 LD L,C + 000065F2 60 4566 LD H,B + 000065F3 4E 4567 LD C,(HL) + 000065F4 DD 71 FC 4568 LD (IX-4),C + 000065F7 23 4569 INC HL + 000065F8 46 4570 LD B,(HL) + 000065F9 DD 70 FD 4571 LD (IX-3),B + 000065FC DD 6E FE 4572 LD L,(IX-2) + 000065FF 67 4573 LD H,A + 00006600 29 4574 ADD HL,HL + 00006601 EB 4575 EX DE,HL + 00006602 CD 8F 62 4576 CALL LWRD ?0454 + 00006605 DD 75 FA 4577 LD (IX-6),L + 00006608 DD 74 FB 4578 LD (IX-5),H + 0000660B 59 4579 LD E,C + 0000660C 50 4580 LD D,B + 0000660D CD 97 4A 4581 CALL LWRD ?0447 + 00006610 C5 4582 PUSH BC + 00006611 4D 4583 LD C,L + 00006612 44 4584 LD B,H + 00006613 DD 5E 02 4585 LD E,(IX+2) + 00006616 DD 56 03 4586 LD D,(IX+3) + 00006619 CD 87 62 4587 CALL LWRD ?0441 + 0000661C F1 4588 POP AF + 0000661D 11 00 00 4589 LD DE,0 + 00006620 AF 4590 XOR A + 00006621 DD 77 F8 4591 LD (IX-8),A + 00006624 DD 77 F9 4592 LD (IX-7),A + 00006627 4593 ?0303: + 00006627 DD 4E FC 4594 LD C,(IX-4) + 0000662A DD 46 FD 4595 LD B,(IX-3) + 0000662D 6B 4596 LD L,E + 0000662E 62 4597 LD H,D + 0000662F CD A6 81 4598 CALL LWRD ?SS_CMP_L02 + 00006632 30 35 4599 JR NC,?0302 + 00006634 CD A5 66 4600 CALL LWRD ?0479 + 00006637 30 30 4601 JR NC,?0302 + 00006639 4602 ?0306: + 00006639 4603 ?0305: + 00006639 4604 ?0304: + 00006639 23 4605 INC HL + 0000663A DD 75 F8 4606 LD (IX-8),L + 0000663D DD 74 F9 4607 LD (IX-7),H + 00006640 2B 4608 DEC HL + 00006641 29 4609 ADD HL,HL + 00006642 DD 4E FA 4610 LD C,(IX-6) + 00006645 DD 46 FB 4611 LD B,(IX-5) + 00006648 09 4612 ADD HL,BC + 00006649 E5 4613 PUSH HL + 0000664A FD E5 4614 PUSH IY + 0000664C E1 4615 POP HL + 0000664D 19 4616 ADD HL,DE + 0000664E 4D 4617 LD C,L + 0000664F 44 4618 LD B,H + 00006650 E1 4619 POP HL + 00006651 71 4620 LD (HL),C + 00006652 23 4621 INC HL + 00006653 70 4622 LD (HL),B + 00006654 4623 ?0308: + 00006654 FD E5 4624 PUSH IY + 00006656 E1 4625 POP HL + 00006657 19 4626 ADD HL,DE + 00006658 7E 4627 LD A,(HL) + 00006659 B7 4628 OR A + 0000665A 28 03 4629 JR Z,?0307 + 0000665C 4630 ?0309: + 0000665C 13 4631 INC DE + 0000665D 18 F5 4632 JR ?0308 + 0000665F 4633 ?0307: + 0000665F 6B 4634 LD L,E + 00006660 62 4635 LD H,D + 00006661 13 4636 INC DE + 00006662 FD E5 4637 PUSH IY + 00006664 C1 4638 POP BC + 00006665 09 4639 ADD HL,BC + 00006666 77 4640 LD (HL),A + 00006667 18 BE 4641 JR ?0303 + 00006669 4642 ?0302: + 00006669 CD A5 66 4643 CALL LWRD ?0479 + 0000666C 30 13 4644 JR NC,?0311 + 0000666E 4645 ?0310: + 0000666E 29 4646 ADD HL,HL + 0000666F DD 4E FA 4647 LD C,(IX-6) + 00006672 DD 46 FB 4648 LD B,(IX-5) + 00006675 09 4649 ADD HL,BC + 00006676 E5 4650 PUSH HL + 00006677 FD E5 4651 PUSH IY + 00006679 E1 4652 POP HL + 0000667A 19 4653 ADD HL,DE + 0000667B 4D 4654 LD C,L + 0000667C 44 4655 LD B,H + 0000667D E1 4656 POP HL + 0000667E 71 4657 LD (HL),C + 0000667F 23 4658 INC HL + 00006680 70 4659 LD (HL),B + 00006681 4660 ?0311: + 00006681 21 06 00 4661 LD HL,6 + 00006684 ED 4B C0 86 4662 LD BC,(global) + 00006688 09 4663 ADD HL,BC + 00006689 FD E5 4664 PUSH IY + 0000668B C1 4665 POP BC + 0000668C 71 4666 LD (HL),C + 0000668D 23 4667 INC HL + 0000668E 70 4668 LD (HL),B + 0000668F 21 08 00 4669 LD HL,8 + 00006692 ED 4B C0 86 4670 LD BC,(global) + 00006696 09 4671 ADD HL,BC + 00006697 DD 4E FA 4672 LD C,(IX-6) + 0000669A 71 4673 LD (HL),C + 0000669B DD 46 FB 4674 LD B,(IX-5) + 0000669E 23 4675 INC HL + 0000669F 70 4676 LD (HL),B + 000066A0 FD E1 4677 POP IY + 000066A2 C3 1F 81 4678 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000066A5 4679 ?0479: + 000066A5 DD 4E FE 4680 LD C,(IX-2) + 000066A8 DD 46 FF 4681 LD B,(IX-1) + 000066AB DD 6E F8 4682 LD L,(IX-8) + 000066AE DD 66 F9 4683 LD H,(IX-7) + 000066B1 C3 A6 81 4684 JP LWRD ?SS_CMP_L02 + 000066B4 4685 gui_globals: + 000066B4 2A C0 86 4686 LD HL,(global) + 000066B7 C3 25 81 4687 JP LWRD ?BANK_FAST_LEAVE_L08 + 000066BA 4688 GUIinit: + 000066BA C5 4689 PUSH BC + 000066BB D5 4690 PUSH DE + 000066BC 11 13 00 4691 LD DE,19 + 000066BF CD 8F 62 4692 CALL LWRD ?0454 + 000066C2 22 C0 86 4693 LD (global),HL + 000066C5 AF 4694 XOR A + 000066C6 77 4695 LD (HL),A + 000066C7 23 4696 INC HL + 000066C8 77 4697 LD (HL),A + 000066C9 21 04 00 4698 LD HL,4 + 000066CC ED 4B C0 86 4699 LD BC,(global) + 000066D0 09 4700 ADD HL,BC + 000066D1 77 4701 LD (HL),A + 000066D2 23 4702 INC HL + 000066D3 77 4703 LD (HL),A + 000066D4 21 0A 00 4704 LD HL,10 + 000066D7 ED 4B C0 86 4705 LD BC,(global) + 000066DB 09 4706 ADD HL,BC + 000066DC 77 4707 LD (HL),A + 000066DD 23 4708 INC HL + 000066DE 77 4709 LD (HL),A + 000066DF 21 0C 00 4710 LD HL,12 + 000066E2 ED 4B C0 86 4711 LD BC,(global) + 000066E6 09 4712 ADD HL,BC + 000066E7 77 4713 LD (HL),A + 000066E8 23 4714 INC HL + 000066E9 77 4715 LD (HL),A + 000066EA 21 08 00 4716 LD HL,8 + 000066ED ED 4B C0 86 4717 LD BC,(global) + 000066F1 09 4718 ADD HL,BC + 000066F2 77 4719 LD (HL),A + 000066F3 23 4720 INC HL + 000066F4 77 4721 LD (HL),A + 000066F5 21 06 00 4722 LD HL,6 + 000066F8 ED 4B C0 86 4723 LD BC,(global) + 000066FC 09 4724 ADD HL,BC + 000066FD 77 4725 LD (HL),A + 000066FE 23 4726 INC HL + 000066FF 77 4727 LD (HL),A + 00006700 21 10 00 4728 LD HL,16 + 00006703 ED 4B C0 86 4729 LD BC,(global) + 00006707 09 4730 ADD HL,BC + 00006708 77 4731 LD (HL),A + 00006709 23 4732 INC HL + 0000670A 77 4733 LD (HL),A + 0000670B 23 4734 INC HL + 0000670C 77 4735 LD (HL),A + 0000670D 3E 00 4736 LD A,BYTE3 GraphicsOpen + 0000670F 21 C9 45 4737 LD HL,LWRD GraphicsOpen + 00006712 CD 5E 81 4738 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006715 21 00 00 4739 LD HL,0 + 00006718 E5 4740 PUSH HL + 00006719 E5 4741 PUSH HL + 0000671A 0E 00 4742 LD C,BYTE3 stringheight01 + 0000671C C5 4743 PUSH BC + 0000671D 21 39 4B 4744 LD HL,LWRD stringheight01 + 00006720 E5 4745 PUSH HL + 00006721 0E 00 4746 LD C,BYTE3 stringwidth0 + 00006723 C5 4747 PUSH BC + 00006724 21 55 4B 4748 LD HL,LWRD stringwidth0 + 00006727 E5 4749 PUSH HL + 00006728 11 30 00 4750 LD DE,48 + 0000672B CD D9 67 4751 CALL LWRD ?0484 + 0000672E 21 0C 00 4752 LD HL,12 + 00006731 39 4753 ADD HL,SP + 00006732 F9 4754 LD SP,HL + 00006733 21 00 00 4755 LD HL,0 + 00006736 E5 4756 PUSH HL + 00006737 E5 4757 PUSH HL + 00006738 0E 00 4758 LD C,BYTE3 stringheight01 + 0000673A C5 4759 PUSH BC + 0000673B 21 39 4B 4760 LD HL,LWRD stringheight01 + 0000673E E5 4761 PUSH HL + 0000673F 0E 00 4762 LD C,BYTE3 stringwidth1 + 00006741 C5 4763 PUSH BC + 00006742 21 66 4B 4764 LD HL,LWRD stringwidth1 + 00006745 E5 4765 PUSH HL + 00006746 11 31 00 4766 LD DE,49 + 00006749 CD D9 67 4767 CALL LWRD ?0484 + 0000674C 21 0C 00 4768 LD HL,12 + 0000674F 39 4769 ADD HL,SP + 00006750 F9 4770 LD SP,HL + 00006751 21 00 00 4771 LD HL,0 + 00006754 E5 4772 PUSH HL + 00006755 E5 4773 PUSH HL + 00006756 0E 00 4774 LD C,BYTE3 stringheight2 + 00006758 C5 4775 PUSH BC + 00006759 21 4C 4B 4776 LD HL,LWRD stringheight2 + 0000675C E5 4777 PUSH HL + 0000675D 0E 00 4778 LD C,BYTE3 stringwidth2 + 0000675F C5 4779 PUSH BC + 00006760 21 6F 4B 4780 LD HL,LWRD stringwidth2 + 00006763 E5 4781 PUSH HL + 00006764 11 32 00 4782 LD DE,50 + 00006767 CD D9 67 4783 CALL LWRD ?0484 + 0000676A 21 0C 00 4784 LD HL,12 + 0000676D 39 4785 ADD HL,SP + 0000676E F9 4786 LD SP,HL + 0000676F 21 0E 00 4787 LD HL,14 + 00006772 ED 4B C0 86 4788 LD BC,(global) + 00006776 09 4789 ADD HL,BC + 00006777 E5 4790 PUSH HL + 00006778 11 80 00 4791 LD DE,128 + 0000677B D5 4792 PUSH DE + 0000677C 5A 4793 LD E,D + 0000677D D5 4794 PUSH DE + 0000677E 4B 4795 LD C,E + 0000677F 42 4796 LD B,D + 00006780 3E 00 4797 LD A,BYTE3 Window_new + 00006782 21 3A 55 4798 LD HL,LWRD Window_new + 00006785 CD 5E 81 4799 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006788 F1 4800 POP AF + 00006789 F1 4801 POP AF + 0000678A 4D 4802 LD C,L + 0000678B 44 4803 LD B,H + 0000678C E1 4804 POP HL + 0000678D 71 4805 LD (HL),C + 0000678E 23 4806 INC HL + 0000678F 70 4807 LD (HL),B + 00006790 21 0E 00 4808 LD HL,14 + 00006793 ED 4B C0 86 4809 LD BC,(global) + 00006797 09 4810 ADD HL,BC + 00006798 56 4811 LD D,(HL) + 00006799 23 4812 INC HL + 0000679A 66 4813 LD H,(HL) + 0000679B 6A 4814 LD L,D + 0000679C 11 0A 00 4815 LD DE,10 + 0000679F 19 4816 ADD HL,DE + 000067A0 36 01 4817 LD (HL),1 + 000067A2 23 4818 INC HL + 000067A3 72 4819 LD (HL),D + 000067A4 21 0E 00 4820 LD HL,14 + 000067A7 ED 4B C0 86 4821 LD BC,(global) + 000067AB 09 4822 ADD HL,BC + 000067AC 56 4823 LD D,(HL) + 000067AD 23 4824 INC HL + 000067AE 66 4825 LD H,(HL) + 000067AF 6A 4826 LD L,D + 000067B0 11 17 00 4827 LD DE,23 + 000067B3 19 4828 ADD HL,DE + 000067B4 36 B9 4829 LD (HL),LOW(rootWindow_handler) + 000067B6 23 4830 INC HL + 000067B7 36 5E 4831 LD (HL),HIGH(rootWindow_handler) + 000067B9 23 4832 INC HL + 000067BA 36 00 4833 LD (HL),BYTE3 rootWindow_handler + 000067BC 21 0E 00 4834 LD HL,14 + 000067BF ED 4B C0 86 4835 LD BC,(global) + 000067C3 09 4836 ADD HL,BC + 000067C4 46 4837 LD B,(HL) + 000067C5 23 4838 INC HL + 000067C6 66 4839 LD H,(HL) + 000067C7 68 4840 LD L,B + 000067C8 01 1A 00 4841 LD BC,26 + 000067CB 09 4842 ADD HL,BC + 000067CC 36 F5 4843 LD (HL),LOW(Root_paint) + 000067CE 23 4844 INC HL + 000067CF 36 54 4845 LD (HL),HIGH(Root_paint) + 000067D1 23 4846 INC HL + 000067D2 36 00 4847 LD (HL),BYTE3 Root_paint + 000067D4 D1 4848 POP DE + 000067D5 C1 4849 POP BC + 000067D6 C3 25 81 4850 JP LWRD ?BANK_FAST_LEAVE_L08 + 000067D9 4851 ?0484: + 000067D9 3E 00 4852 LD A,BYTE3 loadFont + 000067DB 21 FC 49 4853 LD HL,LWRD loadFont + 000067DE C3 5E 81 4854 JP LWRD ?BANK_CALL_DIRECT_L08 + 000067E1 4855 GUIunit: + 000067E1 C5 4856 PUSH BC + 000067E2 D5 4857 PUSH DE + 000067E3 21 0E 00 4858 LD HL,14 + 000067E6 ED 4B C0 86 4859 LD BC,(global) + 000067EA 09 4860 ADD HL,BC + 000067EB 5E 4861 LD E,(HL) + 000067EC 23 4862 INC HL + 000067ED 56 4863 LD D,(HL) + 000067EE CD 58 4F 4864 CALL LWRD ?0453 + 000067F1 3E 00 4865 LD A,BYTE3 ClearScreen + 000067F3 21 86 48 4866 LD HL,LWRD ClearScreen + 000067F6 CD 5E 81 4867 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000067F9 3E 00 4868 LD A,BYTE3 GraphicsClose + 000067FB 21 57 46 4869 LD HL,LWRD GraphicsClose + 000067FE CD 5E 81 4870 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006801 D1 4871 POP DE + 00006802 C1 4872 POP BC + 00006803 C3 25 81 4873 JP LWRD ?BANK_FAST_LEAVE_L08 + 00006806 4874 GUIgo: + 00006806 CD 88 81 4875 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00006809 FE FF 4876 DEFW 65534 + 0000680B DD 4E 02 4877 LD C,(IX+2) + 0000680E DD 46 03 4878 LD B,(IX+3) + 00006811 21 0E 00 4879 LD HL,14 + 00006814 ED 5B C0 86 4880 LD DE,(global) + 00006818 19 4881 ADD HL,DE + 00006819 5E 4882 LD E,(HL) + 0000681A 23 4883 INC HL + 0000681B 56 4884 LD D,(HL) + 0000681C 3E 00 4885 LD A,BYTE3 screenbuilder + 0000681E 21 D7 5E 4886 LD HL,LWRD screenbuilder + 00006821 CD 5E 81 4887 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006824 4888 ?0313: + 00006824 21 04 00 4889 LD HL,4 + 00006827 ED 4B C0 86 4890 LD BC,(global) + 0000682B 09 4891 ADD HL,BC + 0000682C 7E 4892 LD A,(HL) + 0000682D 23 4893 INC HL + 0000682E B6 4894 OR (HL) + 0000682F C2 C4 68 4895 JP NZ,?0312 + 00006832 4896 ?0314: + 00006832 21 01 00 4897 LD HL,1 + 00006835 E5 4898 PUSH HL + 00006836 23 4899 INC HL + 00006837 39 4900 ADD HL,SP + 00006838 4D 4901 LD C,L + 00006839 44 4902 LD B,H + 0000683A 2A C0 86 4903 LD HL,(global) + 0000683D 23 4904 INC HL + 0000683E 23 4905 INC HL + 0000683F 5E 4906 LD E,(HL) + 00006840 23 4907 INC HL + 00006841 56 4908 LD D,(HL) + 00006842 CD 87 62 4909 CALL LWRD ?0441 + 00006845 F1 4910 POP AF + 00006846 3E 01 4911 LD A,1 + 00006848 AD 4912 XOR L + 00006849 B4 4913 OR H + 0000684A 20 D8 4914 JR NZ,?0313 + 0000684C 4915 ?0315: + 0000684C DD 4E FE 4916 LD C,(IX-2) + 0000684F 47 4917 LD B,A + 00006850 C5 4918 PUSH BC + 00006851 21 D6 84 4919 LD HL,?0317 + 00006854 E5 4920 PUSH HL + 00006855 3E 00 4921 LD A,BYTE3 printf + 00006857 21 0A 6E 4922 LD HL,LWRD printf + 0000685A CD 5E 81 4923 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000685D F1 4924 POP AF + 0000685E F1 4925 POP AF + 0000685F AF 4926 XOR A + 00006860 DD B6 FE 4927 OR (IX-2) + 00006863 28 29 4928 JR Z,?0319 + 00006865 4929 ?0318: + 00006865 4F 4930 LD C,A + 00006866 C5 4931 PUSH BC + 00006867 21 0E 00 4932 LD HL,14 + 0000686A ED 5B C0 86 4933 LD DE,(global) + 0000686E 19 4934 ADD HL,DE + 0000686F 5E 4935 LD E,(HL) + 00006870 23 4936 INC HL + 00006871 56 4937 LD D,(HL) + 00006872 21 0E 00 4938 LD HL,14 + 00006875 ED 4B C0 86 4939 LD BC,(global) + 00006879 09 4940 ADD HL,BC + 0000687A 46 4941 LD B,(HL) + 0000687B 23 4942 INC HL + 0000687C 66 4943 LD H,(HL) + 0000687D 68 4944 LD L,B + 0000687E 01 17 00 4945 LD BC,23 + 00006881 09 4946 ADD HL,BC + 00006882 4E 4947 LD C,(HL) + 00006883 23 4948 INC HL + 00006884 46 4949 LD B,(HL) + 00006885 23 4950 INC HL + 00006886 7E 4951 LD A,(HL) + 00006887 69 4952 LD L,C + 00006888 60 4953 LD H,B + 00006889 01 01 00 4954 LD BC,1 + 0000688C 18 29 4955 JR ?0370 + 0000688E 4956 ?0319: + 0000688E DD 4E FF 4957 LD C,(IX-1) + 00006891 C5 4958 PUSH BC + 00006892 21 0E 00 4959 LD HL,14 + 00006895 ED 5B C0 86 4960 LD DE,(global) + 00006899 19 4961 ADD HL,DE + 0000689A 5E 4962 LD E,(HL) + 0000689B 23 4963 INC HL + 0000689C 56 4964 LD D,(HL) + 0000689D 21 0E 00 4965 LD HL,14 + 000068A0 ED 4B C0 86 4966 LD BC,(global) + 000068A4 09 4967 ADD HL,BC + 000068A5 46 4968 LD B,(HL) + 000068A6 23 4969 INC HL + 000068A7 66 4970 LD H,(HL) + 000068A8 68 4971 LD L,B + 000068A9 01 17 00 4972 LD BC,23 + 000068AC 09 4973 ADD HL,BC + 000068AD 4E 4974 LD C,(HL) + 000068AE 23 4975 INC HL + 000068AF 46 4976 LD B,(HL) + 000068B0 23 4977 INC HL + 000068B1 7E 4978 LD A,(HL) + 000068B2 69 4979 LD L,C + 000068B3 60 4980 LD H,B + 000068B4 01 02 00 4981 LD BC,2 + 000068B7 4982 ?0370: + 000068B7 CD 5E 81 4983 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000068BA E1 4984 POP HL + 000068BB 4985 ?0320: + 000068BB DD 46 FE 4986 LD B,(IX-2) + 000068BE DD 70 FF 4987 LD (IX-1),B + 000068C1 4988 ?0316: + 000068C1 C3 24 68 4989 JP LWRD ?0313 + 000068C4 4990 ?0312: + 000068C4 C3 1F 81 4991 JP LWRD ?BANK_LEAVE_DIRECT_L08 4992 RSEG CSTR - 000084E3 4993 ?0001: - 000084E3 2F 64 65 76 2F 6C 63 4994 DEFB '/dev/lcd0' + 000084B5 4993 ?0001: + 000084B5 2F 64 65 76 2F 6C 63 4994 DEFB '/dev/lcd0' 64 30 - 000084EC 00 4995 DEFB 0 - 000084ED 4996 ?0221: - 000084ED 4F 4B 4997 DEFB 'OK' - 000084EF 00 4998 DEFB 0 - 000084F0 4999 ?0222: - 000084F0 43 61 6E 63 65 6C 5000 DEFB 'Cancel' - 000084F6 00 5001 DEFB 0 - 000084F7 5002 ?0249: - 000084F7 00 5003 DEFB 0 - 000084F8 5004 ?0299: - 000084F8 4D 65 73 73 61 67 65 5005 DEFB 'Message Box' + 000084BE 00 4995 DEFB 0 + 000084BF 4996 ?0221: + 000084BF 4F 4B 4997 DEFB 'OK' + 000084C1 00 4998 DEFB 0 + 000084C2 4999 ?0222: + 000084C2 43 61 6E 63 65 6C 5000 DEFB 'Cancel' + 000084C8 00 5001 DEFB 0 + 000084C9 5002 ?0249: + 000084C9 00 5003 DEFB 0 + 000084CA 5004 ?0299: + 000084CA 4D 65 73 73 61 67 65 5005 DEFB 'Message Box' 20 42 6F 78 - 00008503 00 5006 DEFB 0 - 00008504 5007 ?0317: - 00008504 30 78 25 30 32 78 5008 DEFB '0x%02x' - 0000850A 0A 00 5009 DEFB 10,0 + 000084D5 00 5006 DEFB 0 + 000084D6 5007 ?0317: + 000084D6 30 78 25 30 32 78 5008 DEFB '0x%02x' + 000084DC 0A 00 5009 DEFB 10,0 5010 RSEG CONST - 000084AF 5011 ?0000: - 000084AF 1B 5012 DEFB 27 - 000084B0 4B 5013 DEFB 'K' - 000084B1 5014 ?0002: - 000084B1 1B 5015 DEFB 27 - 000084B2 53 5016 DEFB 'S' - 000084B3 00 5017 DEFB 0 - 000084B4 00 5018 DEFB 0 - 000084B5 5019 ?0003: - 000084B5 1B 5020 DEFB 27 - 000084B6 43 5021 DEFB 'C' - 000084B7 00 5022 DEFB 0 - 000084B8 00 5023 DEFB 0 - 000084B9 5024 ?0004: - 000084B9 1B 5025 DEFB 27 - 000084BA 4E 5026 DEFB 'N' - 000084BB 00 5027 DEFB 0 - 000084BC 00 5028 DEFB 0 - 000084BD 5029 ?0005: - 000084BD 1B 5030 DEFB 27 - 000084BE 52 5031 DEFB 'R' - 000084BF 00 5032 DEFB 0 - 000084C0 00 5033 DEFB 0 - 000084C1 5034 ?0006: - 000084C1 1B 5035 DEFB 27 - 000084C2 46 5036 DEFB 'F' - 000084C3 00 5037 DEFB 0 - 000084C4 00 5038 DEFB 0 - 000084C5 5039 ?0007: - 000084C5 1B 5040 DEFB 27 - 000084C6 68 5041 DEFB 'h' - 000084C7 00 5042 DEFB 0 - 000084C8 00 5043 DEFB 0 - 000084C9 5044 ?0008: - 000084C9 1B 5045 DEFB 27 - 000084CA 5A 5046 DEFB 'Z' - 000084CB 00 5047 DEFB 0 - 000084CC 00 5048 DEFB 0 - 000084CD 00 5049 DEFB 0 - 000084CE 00 5050 DEFB 0 - 000084CF 00 5051 DEFB 0 - 000084D0 5052 ?0009: - 000084D0 1B 5053 DEFB 27 - 000084D1 45 5054 DEFB 'E' - 000084D2 00 5055 DEFB 0 - 000084D3 5056 ?0010: - 000084D3 1B 5057 DEFB 27 - 000084D4 00 5058 DEFB 0 - 000084D5 5059 ?0286: - 000084D5 2F 5060 DEFB '/' - 000084D6 77 5061 DEFB 'w' - 000084D7 6E 5062 DEFB 'n' - 000084D8 64 5063 DEFB 'd' - 000084D9 2F 5064 DEFB '/' - 000084DA 30 5065 DEFB '0' - 000084DB 30 5066 DEFB '0' - 000084DC 30 5067 DEFB '0' - 000084DD 30 5068 DEFB '0' - 000084DE 2E 5069 DEFB '.' - 000084DF 73 5070 DEFB 's' - 000084E0 63 5071 DEFB 'c' - 000084E1 72 5072 DEFB 'r' - 000084E2 00 5073 DEFB 0 + 00008481 5011 ?0000: + 00008481 1B 5012 DEFB 27 + 00008482 4B 5013 DEFB 'K' + 00008483 5014 ?0002: + 00008483 1B 5015 DEFB 27 + 00008484 53 5016 DEFB 'S' + 00008485 00 5017 DEFB 0 + 00008486 00 5018 DEFB 0 + 00008487 5019 ?0003: + 00008487 1B 5020 DEFB 27 + 00008488 43 5021 DEFB 'C' + 00008489 00 5022 DEFB 0 + 0000848A 00 5023 DEFB 0 + 0000848B 5024 ?0004: + 0000848B 1B 5025 DEFB 27 + 0000848C 4E 5026 DEFB 'N' + 0000848D 00 5027 DEFB 0 + 0000848E 00 5028 DEFB 0 + 0000848F 5029 ?0005: + 0000848F 1B 5030 DEFB 27 + 00008490 52 5031 DEFB 'R' + 00008491 00 5032 DEFB 0 + 00008492 00 5033 DEFB 0 + 00008493 5034 ?0006: + 00008493 1B 5035 DEFB 27 + 00008494 46 5036 DEFB 'F' + 00008495 00 5037 DEFB 0 + 00008496 00 5038 DEFB 0 + 00008497 5039 ?0007: + 00008497 1B 5040 DEFB 27 + 00008498 68 5041 DEFB 'h' + 00008499 00 5042 DEFB 0 + 0000849A 00 5043 DEFB 0 + 0000849B 5044 ?0008: + 0000849B 1B 5045 DEFB 27 + 0000849C 5A 5046 DEFB 'Z' + 0000849D 00 5047 DEFB 0 + 0000849E 00 5048 DEFB 0 + 0000849F 00 5049 DEFB 0 + 000084A0 00 5050 DEFB 0 + 000084A1 00 5051 DEFB 0 + 000084A2 5052 ?0009: + 000084A2 1B 5053 DEFB 27 + 000084A3 45 5054 DEFB 'E' + 000084A4 00 5055 DEFB 0 + 000084A5 5056 ?0010: + 000084A5 1B 5057 DEFB 27 + 000084A6 00 5058 DEFB 0 + 000084A7 5059 ?0286: + 000084A7 2F 5060 DEFB '/' + 000084A8 77 5061 DEFB 'w' + 000084A9 6E 5062 DEFB 'n' + 000084AA 64 5063 DEFB 'd' + 000084AB 2F 5064 DEFB '/' + 000084AC 30 5065 DEFB '0' + 000084AD 30 5066 DEFB '0' + 000084AE 30 5067 DEFB '0' + 000084AF 30 5068 DEFB '0' + 000084B0 2E 5069 DEFB '.' + 000084B1 73 5070 DEFB 's' + 000084B2 63 5071 DEFB 'c' + 000084B3 72 5072 DEFB 'r' + 000084B4 00 5073 DEFB 0 5074 RSEG UDATA0 - 0000873F 5075 global: - 0000873F 5076 DEFS 2 + 000086C0 5075 global: + 000086C0 5076 DEFS 2 00000002 5077 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] diff --git a/src/kernel/build.ban b/src/kernel/build.ban index f3ea38bc..b7898849 100644 --- a/src/kernel/build.ban +++ b/src/kernel/build.ban @@ -271,13 +271,15 @@ as-z80 -l -o testsystem.s01 iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\touchscreen @if errorlevel 1 goto failure -del testsystem.r01 +del touchscreen.r01 as-z80 -l -o touchscreen.s01 @if errorlevel 1 goto failure +rem link everything +rem link everything rem link everything -link-z80 -f kernel +link-z80 -i -f kernel @if errorlevel 1 goto failure ihex2bin -l kernel.i86 ..\..\..\bin\kernel.bin @if errorlevel 1 goto failure diff --git a/src/kernel/build.ban% b/src/kernel/build.ban.save similarity index 89% rename from src/kernel/build.ban% rename to src/kernel/build.ban.save index 83196ca1..a230af39 100644 --- a/src/kernel/build.ban% +++ b/src/kernel/build.ban.save @@ -269,9 +269,29 @@ del testsystem.r01 as-z80 -l -o testsystem.s01 @if errorlevel 1 goto failure +iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\touchscreen +@if errorlevel 1 goto failure +del touchscreen.r01 +as-z80 -l -o touchscreen.s01 +@if errorlevel 1 goto failure + +iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 -DVAX ..\uzi\xfs +@if errorlevel 1 goto failure +del xfs.r01 +as-z80 -l -o xfs.s01 +@if errorlevel 1 goto failure + +iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DVAX -DUTIL -DDEBUG=1 -c ..\uzi\utils.c +@if errorlevel 1 goto failure +del utils.r01 +as-z80 -l -o utils.s01 +@if errorlevel 1 goto failure + +rem link everything +rem link everything rem link everything -link-z80 -f kernel +link-z80 -i -f kernel @if errorlevel 1 goto failure ihex2bin -l kernel.i86 ..\..\..\bin\kernel.bin @if errorlevel 1 goto failure diff --git a/src/kernel/cmx/escc.asm b/src/kernel/cmx/escc.asm index 8ba7ba6e..6f530b5c 100644 --- a/src/kernel/cmx/escc.asm +++ b/src/kernel/cmx/escc.asm @@ -102,7 +102,7 @@ _escc0_setup:: ld d,12 out (c),d ; address WR12 - ld a,6 ; 6=57600 4=76800 2=115200 + ld a,6 ; 10=38400 6=57600 4=76800 2=115200 (RPB: added divisor 10) out (c),a ; divisor 0002h indicates 115200 bps inc d ; ld d,13 out (c),d ; address WR13 @@ -210,7 +210,8 @@ _escc1_setup:: ld d,12 out (c),d ; address WR12 - ld a,6 ; 6=57600 4=76800 2=115200 + ld a,10 ; 10=38400 6=57600 4=76800 2=115200 (RPB: added divisor 10) + ; RPB: set speed to 38400 on escc2 out (c),a ; divisor 0002h indicates 115200 bps inc d ; ld d,13 out (c),d ; address WR13 diff --git a/src/kernel/cmx/escc.asm% b/src/kernel/cmx/escc.asm% new file mode 100644 index 00000000..abfbac4c --- /dev/null +++ b/src/kernel/cmx/escc.asm% @@ -0,0 +1,980 @@ +; escc.asm +; Interrupt driven serial driver for built in Z180 ports (Hytech CMX) + +; ----------------------------------------------------------------------------- + +$ io64180.inc + + extern _sdevs + extern _K_OS_Intrp_Entry + extern _K_OS_Intrp_Exit + extern ?BANK_CALL_DIRECT_L08 + extern ?BANK_FAST_LEAVE_L08 + extern abyte + +XMIT_SIZE equ 256 ; must match cxfuncs.h, size of transmitter buffer +RECV_SIZE equ 256 ; must match cxfuncs.h, size of reciever buffer + +; must match cxfuncs.h, fields in SDEV structure: ** ASSUMES 3 BYTE CODE PTRS! +sxmit equ 0 ; offset of embedded CMX XMIT structure +srecv equ 13 ; offset of embedded CMX RECV structure +sport equ 13+13 +stxvec equ 13+13+1 ; called by interrupt, returns l=chr +srxvec equ 13+13+4 ; called by interrupt, passed c=chr +smsvec equ 13+13+7 ; called by interrupt, passed c=bits +sesvec equ 13+13+10 ; called by interrupt, passed c=bits +stevec equ 13+13+13 ; vector to start asci/escc transmitter +stdvec equ 13+13+16 ; vector to stop asci/escc transmitter +sstat equ 13+13+19 ; address to read status (8530 02xxh) +stxdr equ 13+13+20 ; address to write tx data (8530 02xxh) +srxdr equ 13+13+21 ; address to read rx data (8530 02xxh) +swr1 equ 13+13+22 ; wr1 contents (interrupt enable bits) +swr5 equ 13+13+23 ; wr5 contents (modem control outputs) +swr15 equ 13+13+24 ; wr15 contents (modem control int ena) +sinint equ 13+13+25 ; says whether wr1 really reflects wr1! +sdvlen equ 13+13+26 ; byte size of block per serial port + +; ----------------------------------------------------------------------------- + + rseg CODE + + public _escc0_setup + +_escc0_setup:: + push bc + push de + + ld iy,_sdevs+2*sdvlen + ld (iy+sstat),.low.AC8530 + ld (iy+stxdr),.low.AD8530 + ld (iy+srxdr),.low.AD8530 + ld (iy+stevec),.low._escc_tx_enable + ld (iy+stevec+1),.high._escc_tx_enable + ld (iy+stevec+2),BYTE3 _escc_tx_enable + + ld bc,AC8530 + di ; so int doesn't corrupt address reg + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + + nop ; ld d,9 + out (c),d ; address WR9 + ld a,10000010b + out (c),a ; channel reset A, status lo, no vector + + ; allow at least 4 clock cycles for reset + + ld d,5 + out (c),d ; address WR5 + ld a,11101010b + out (c),a ; dtr on, 8 data, tx enable, rts on + ld (iy+swr5),a ; set up shadow for swr5sb, swr5rb + + ld d,2 + out (c),d ; address WR2 + sub a + out (c),a ; redundantly set up interrupt vector + + ld d,4 + out (c),d ; address WR4 + ld a,01000100b ; *16 with 1 stop bit, no parity + out (c),a + + ld d,3 + out (c),d ; address WR3 + ld a,11000001b + out (c),a ; 8 data, auto disable, rx enable + + ld d,15 + out (c),d ; address WR15 + sub a + out (c),a ; modem status interrupts disabled + ld (iy+swr15),a ; set up shadow for swr15s, swr15r + + dec d ; ld d,14 + out (c),d ; address WR14 + sub a + out (c),a ; disable baud rate generator + + ld d,12 + out (c),d ; address WR12 + ld a,10 ; 10=38400 6=57600 4=76800 2=115200 + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,13 + out (c),d ; address WR13 + sub a + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,14 + out (c),d ; address WR14 + ld a,00000010b + out (c),a ; set pclk input + nop ; ld d,14 + out (c),d ; address WR14 + or 1 + out (c),a ; enable baud rate generator + ld d,11 + out (c),d ; address WR11 + ld a,01010010b ; use baud rate generator + out (c),a + + ld d,1 + out (c),d ; address WR1 + ld a,00010001b + out (c),a ; rx int on all, no tx int, ext int + ld (iy+swr1),a ; set up shadow for swr1sb, swr1rb + + ld a,00010000b ; reset ext status ints + out (c),a + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b ; mie on, status lo, no vector + out (c),a + +; not yet... this will be done by the escc1 setup routine when both ports ok +; in0 a,(ITC) +; or INT2SW +; out0 (ITC),a + + ei + + pop de + pop bc + jp ?BANK_FAST_LEAVE_L08 + + public _escc1_setup + +_escc1_setup:: + push bc + push de + + ld iy,_sdevs+3*sdvlen + ld (iy+sstat),.low.BC8530 + ld (iy+stxdr),.low.BD8530 + ld (iy+srxdr),.low.BD8530 + ld (iy+stevec),.low._escc_tx_enable + ld (iy+stevec+1),.high._escc_tx_enable + ld (iy+stevec+2),BYTE3 _escc_tx_enable + + ld bc,BC8530 + di ; so int doesn't corrupt address reg + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + + nop ; ld d,9 + out (c),d ; address WR9 + ld a,01000010b + out (c),a ; channel reset B, status lo, no vector + + ; allow at least 4 clock cycles for reset + + ld d,5 + out (c),d ; address WR5 + ld a,11101010b + out (c),a ; dtr on, 8 data, tx enable, rts on + ld (iy+swr5),a ; set up shadow for swr5sb, swr5rb + + ld d,2 + out (c),d ; address WR2 + sub a + out (c),a ; redundantly set up interrupt vector + + ld d,4 + out (c),d ; address WR4 + ld a,01000100b ; *16 with 1 stop bit, no parity + out (c),a + + ld d,3 + out (c),d ; address WR3 + ld a,11000001b + out (c),a ; 8 data, auto disable, rx enable + + ld d,15 + out (c),d ; address WR15 + sub a + out (c),a ; modem status interrupts disabled + ld (iy+swr15),a ; set up shadow for swr15s, swr15r + + dec d ; ld d,14 + out (c),d ; address WR14 + sub a + out (c),a ; disable baud rate generator + + ld d,12 + out (c),d ; address WR12 + ld a,6 ; 10=38400 6=57600 4=76800 2=115200 + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,13 + out (c),d ; address WR13 + sub a + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,14 + out (c),d ; address WR14 + ld a,00000010b + out (c),a ; set pclk input + nop ; ld d,14 + out (c),d ; address WR14 + inc a ; or 1 + out (c),a ; enable baud rate generator + ld d,11 + out (c),d ; address WR11 + ld a,01010010b ; use baud rate generator + out (c),a + + ld d,1 + out (c),d ; address WR1 + ld a,00010001b + out (c),a ; rx int on all, no tx int, ext int + ld (iy+swr1),a ; set up shadow for swr1sb, swr1rb + +; this is only done for S3DEV, and is intended to disconnect LAN optocoupler + ld d,5 + out (c),d ; address WR5 + ld a,11101000b + out (c),a ; dtr on, 8 data, tx enable, rts off + ld (iy+swr5),a ; update our knowledge of wr5 contents + + ld a,00010000b ; reset ext status ints + out (c),a + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b ; mie on, status lo, no vector + out (c),a + + in0 a,(ITC) + or INT2SW + out0 (ITC),a + + ei + + pop de + pop bc + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- + + public _escc_tx_enable + +_escc_tx_enable:: + push bc + push de + +; ld iy,_sdevs+0*sdvlen + push de + pop iy + di + .if 1 + ld hl,LWRD swr1te + ld a,BYTE3 swr1te + call ?BANK_CALL_DIRECT_L08 + .else + call swr1te + .endif + ei + + pop de + pop bc +; ret + jp ?BANK_FAST_LEAVE_L08 + + public _escc_tx_disable + +_escc_tx_disable:: + push bc + push de + +; ld iy,_sdevs+0*sdvlen + push de + pop iy + di + .if 1 + ld hl,LWRD swr1td + ld a,BYTE3 swr1td + call ?BANK_CALL_DIRECT_L08 + .else + call swr1td + .endif + ei + + pop de + pop bc +; ret + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- + + rseg RCODE + + public _int2_vector + +_int2_vector:: + .if 1 + ;ld a,'.' + ;out0 (TDR1),a + call _K_OS_Intrp_Entry + .else + push af + push bc + push de + push hl + push iy + .endif + + .if 1 + ld bc,AC8530 + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + ei ; allow other interrupts to occur + .endif + + .if 1 + .if 1 ; prevent overrun by polling the ports after each interrupt + ld hl,LWRD si23iv + ld a,BYTE3 si23iv + call ?BANK_CALL_DIRECT_L08 + + ; routine to allow arbitrary tests for rx char (prevents overrun) + ld bc,AC8530 ; enter with interrupts disabled!! + in a,(c) ; read rr0 (channel a = s2dev) + rra ; test bit 0 = rx char available + + ld hl,LWRD si2rx + ld a,BYTE3 si2rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + ; (this clobbers bc if char received) + ld bc,BC8530 + in a,(c) ; read rr0 + rra ; test bit 0 = rx char available + + ld hl,LWRD si3rx + ld a,BYTE3 si3rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + ; (this clobbers bc if char received) + .else + ld hl,LWRD si23 + ld a,BYTE3 si23 + call ?BANK_CALL_DIRECT_L08 + .endif + .else + call si23 + .endif + + .if 1 + ld bc,AC8530 + di ; prevent ints occurring immediately + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b + out (c),a ; mie on, status lo, no vector + .endif + + .if 1 + call _K_OS_Intrp_Exit + .else + pop iy + pop hl + pop de + pop bc + pop af + ei + ret + .endif + +; ----------------------------------------------------------------------------- + + rseg CODE + + .if 0 ; 17sep02 routine to allow arbitrary tests for rx char (prevents overrun) + .if 1 ; 17sep02 enhancement for extra safety against overruns (esp. @ 6.144 mhz) +public si23 + +si23: + .if 1 + ld hl,LWRD si23iv + ld a,BYTE3 si23iv + call ?BANK_CALL_DIRECT_L08 + .else + call LWRD si23iv ; first process interrupt via vector + .endif + ; fall into si23rx routine (it could also be useful during other ints!) + .endif + +public si23rx + +si23rx: ; routine to allow arbitrary tests for rx char (prevents overrun) + ld bc,AC8530 ; enter with interrupts disabled!! + in a,(c) ; read rr0 (channel a = s2dev) + rra ; test bit 0 = rx char available + .if 1 + ld hl,LWRD si2rx + ld a,BYTE3 si2rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + .else + call c,LWRD si2rx ; something ready, use the normal si2rx + .endif + ; (this clobbers bc if char received) + ld bc,BC8530 + in a,(c) ; read rr0 + rra ; test bit 0 = rx char available + .if 1 + jp nc,?BANK_FAST_LEAVE_L08 ; nothing ready, no-op (ints disabled) + .else + ret nc ; nothing ready, no-op (ints disabled) + .endif + ; fall into the same si3rx routine as used by the interrupt system + jp LWRD si3rx + .endif + + .if 0 +silly: ; enter with special receive condition status byte in e + ld a,e + rrca + rrca + rrca + rrca + and 7 + add a,'0' + rst 18h ;call abyte + ret + .endif + + .if 0 +sillyx: ; enter with modem control input status byte in e + ld a,e + and 28h + rrca ; 14h + rrca ; 0ah + rrca ; 05h + add a,'0' + rst 18h ;call abyte + ret + .endif + +si3tx: + .if 1 + ld iy,_sdevs+3*sdvlen + .endif + + .if 1 + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+stxvec) + ld a,(_sdevs+3*sdvlen+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx + jp z,LWRD swr1td + + ; client has provided character for tx, send it + ld bc,BD8530 + out (c),l ; send char on behalf of client + .else + ld bc,(_sdevs+3*sdvlen+stxvec) + call 0eb53h ; winved + di ;;!! 24may02 for no good reason + jp c,swr1td ;jr c,si3td + + ; client has provided character for tx, send it + ld bc,BD8530 + out (c),e ; send char on behalf of client + .endif + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret ;jr si23 ; check for further interrupts pending + .endif + +;si3td: call swr1td ; serial write register 1 tx disable +; ret ;jr si23 ; check for further interrupts pending + + .if 1 ; 16dec01 so that swint can be a regular modem status handler +si3ms: + .if 0 + ld iy,_sdevs+3*sdvlen + .endif + in e,(c) ; read modem status inputs for client + + .if 0 + call sillyx + .endif + + ld a,00010000b ; reset ext status interrupts + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+smsvec) + ld a,(_sdevs+3*sdvlen+smsvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+3*sdvlen+smsvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + .else +si3ms: ; bc is already set up to read channel b modem status +; call swint +; ret ;jr si23 ; check for further interrupts pending + jp swint + .endif + +si3rx: + .if 0 + ld iy,_sdevs+3*sdvlen + .endif + + ld c,low BD8530 + .if 1 + in c,(c) ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+srxvec) + ld a,(_sdevs+3*sdvlen+srxvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + in e,(c) ; read character for client + + ld bc,(_sdevs+3*sdvlen+srxvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si3es: dec d ; ld d,1 + out (c),d ; select rr1 + .if 0 + ld iy,_sdevs+3*sdvlen + .else + nop + .endif + in e,(c) ; read special receive condition status + + .if 0 + call silly + .endif + + .if 0 ; 16dec01 when nothing pending, go to clkint via s3dev error status + .if 1 ; 16oct02 make sure we don't depend on ckimsr when the hardware is new + ld a,(hwtype) + or a + jr nz,skpclk + .endif + ld a,e + and 01110000b ; bit 6=framing, 5=overrun, 4=parity + ;jp z,int2c ; in ser.mac for no good reason + jr z,int2c ; 14jun02 now here, & proper ret logic + .if 1 ; 16oct02 make sure we don't depend on ckimsr when the hardware is new +skpclk: + .endif + .endif + + .if 0 + ld a,'%' + rst 18h ;call abyte + .endif + + ld a,00110000b ; error reset + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+sesvec) + ld a,(_sdevs+3*sdvlen+sesvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+3*sdvlen+sesvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + + .if 0 ; 14jun02 this is now moved to ser.inc as it was misleading +int2c: + .if noints + ld bc,ckimsr + in a,(c) ; reset irq + ret ;jr si23 + .else + wjpd clkint ; clock is interrupting + ; clkint should be modified, + ; as it no longer needs to preserve de/hl/iy + .endif + .endif + +; ----------------------------------------------------------------------------- + + .if 1 ; 17sep02 enhancement for extra safety against overruns (esp. 6.144 MHz) +si23iv: ; routine to perform interrupt vectoring... not the main int. handler! + .else +public si23 + +si23: ; without the enhancement, this routine is also the main int. handler! + .endif + .if 0 ; 20may02 hope this works (it does, but see below) + ld a,'.' + call abyte + .endif + ld bc,BC8530 + ld d,2 + out (c),d ; select rr2 + ld hl,LWRD si23jt-200h ; we'll also rely on d=2 later + in e,(c) ; read interrupt vector with status + .if 0;xyz1 ; 15dec01 diagnostic interrupt vector output, requires abfast + ld a,e + rrca + add a,10h + ;bit 1,e ; 0 indicates tx/rx int, 1 indicates modem/error int + ;call nz,abyte + out0 (TDR1),a + .endif + add hl,de + jp (hl) + +si23jt: jr si3tx + jr si3ms + jr si3rx + jr si3es + jr si2tx + jr si2ms + jr si2rx + jr si2es + +; ----------------------------------------------------------------------------- + +si2tx: + .if 1 + ld iy,_sdevs+2*sdvlen + .endif + + .if 1 + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+stxvec) + ld a,(_sdevs+2*sdvlen+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx + jp z,LWRD swr1td + + ; client has provided character for tx, send it + ld bc,AD8530 + out (c),l ; send char on behalf of client + .else + ld bc,(_sdevs+2*sdvlen+stxvec) + call 0eb53h ; winved + di ;;!! 24may02 for no good reason + jp c,swr1td ;jr c,si2td + + ; client has provided character for tx, send it + ld bc,AD8530 + out (c),e ; send char on behalf of client + .endif +; ld a,e +; jp abyte + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret ;jr si23 ; check for further interrupts pending + .endif + +;si2td: call swr1td ; serial write register 1 tx disable +; ret ;jr si23 ; check for further interrupts pending + +si2ms: + .if 0 + ld iy,_sdevs+2*sdvlen + .endif + + inc c ; ld c,low AC8530 + in e,(c) ; read modem status inputs for client + + ld a,00010000b ; reset ext status interrupts + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+smsvec) + ld a,(_sdevs+2*sdvlen+smsvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+2*sdvlen+smsvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si2rx: + .if 0 + ld iy,_sdevs+2*sdvlen + .endif + + ld c,low AD8530 + .if 1 + in c,(c) ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+srxvec) + ld a,(_sdevs+2*sdvlen+srxvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + in e,(c) ; read character for client + + ld bc,(_sdevs+2*sdvlen+srxvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si2es: inc c ; ld c,low AC8530 + dec d ; ld d,1 + out (c),d ; select rr1 + .if 0 + ld iy,_sdevs+2*sdvlen + .else + nop + .endif + in e,(c) ; read special receive condition status + + ld a,00110000b ; error reset + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+sesvec) + ld a,(_sdevs+2*sdvlen+sesvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+2*sdvlen+sesvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +; rather silly routine provided to save code space in the handlers above: + +?BANK_JMP_DIRECT_L08: + call ?BANK_CALL_DIRECT_L08 + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- +; utility subroutines for use by our clients - 8530 ports (serial 2/3) + +swr1te: ; serial write register 1 transmit enable - enter with di + ;ld a,(iy+sdev) + ;cp s2dev + ;ld a,'e' + ;call z,abyte + +; ld a,(iy+sdev) +; cp s2dev +; jr nz,twatx +; call twatx +; jp abyte +;twatx: + bit 1,(iy+swr1) +; ld a,'a' + .if 1 + jp nz,?BANK_FAST_LEAVE_L08 ; transmit interrupt already enabled + .else + ret nz ; transmit interrupt already enabled + .endif + + .if 1 + push iy + pop de ; de = 1st parameter (word16) + + ld l,(iy+stxvec) + ld h,(iy+stxvec+1) + ld a,(iy+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx +; ld a,'b' + .if 1 + jp z,?BANK_FAST_LEAVE_L08 + .else + ret z + .endif + .else + ld c,(iy+stxvec) + ld b,(iy+stxvec+1) + call 0eb53h ; winved +; ld a,'b' + ret c ; there was really nothing to transmit + ld l,e + .endif + + ld e,2 + .if 1 + push hl ; oops ! + ld hl,LWRD swr1sb + ld a,BYTE3 swr1sb + call ?BANK_CALL_DIRECT_L08 ; explicitly enable transmit interrupt + pop hl ; oops ! + .else + call LWRD swr1sb ; explicitly enable transmit interrupt + .endif + + ld c,(iy+stxdr) + out (c),l ; send char on behalf of client +; ld a,(iy+sdev) +; cp s2dev +; ret nz +; ld a,55h +; call abyte +; ld a,l +; jp abyte +; ld a,'c' + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr1sb: ; serial write register 1 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,1 + out (c),d + ld a,e + or (iy+swr1) + out (c),a + ld (iy+swr1),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr1td: ; serial write register 1 transmit disable - enter with di + ;ld a,(iy+sdev) + ;cp s2dev + ;ld a,'d' + ;call z,abyte + ld e,0fdh +swr1rb: ; serial write register 1 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,1 + out (c),d + ld a,e + and (iy+swr1) + out (c),a + ld (iy+swr1),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr5sb: ; serial write register 5 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,5 + out (c),d + ld a,e + or (iy+swr5) + out (c),a + ld (iy+swr5),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr5rb: ; serial write register 5 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,5 + out (c),d + ld a,e + and (iy+swr5) + out (c),a + ld (iy+swr5),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr15s: ; serial write register 15 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,15 + out (c),d + ld a,e + or (iy+swr15) + out (c),a + ld (iy+swr15),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr15r: ; serial write register 15 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,15 + out (c),d + ld a,e + and (iy+swr15) + out (c),a + ld (iy+swr15),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +; ----------------------------------------------------------------------------- + + END diff --git a/src/kernel/cmx/escc.asm.org b/src/kernel/cmx/escc.asm.org new file mode 100644 index 00000000..8ba7ba6e --- /dev/null +++ b/src/kernel/cmx/escc.asm.org @@ -0,0 +1,980 @@ +; escc.asm +; Interrupt driven serial driver for built in Z180 ports (Hytech CMX) + +; ----------------------------------------------------------------------------- + +$ io64180.inc + + extern _sdevs + extern _K_OS_Intrp_Entry + extern _K_OS_Intrp_Exit + extern ?BANK_CALL_DIRECT_L08 + extern ?BANK_FAST_LEAVE_L08 + extern abyte + +XMIT_SIZE equ 256 ; must match cxfuncs.h, size of transmitter buffer +RECV_SIZE equ 256 ; must match cxfuncs.h, size of reciever buffer + +; must match cxfuncs.h, fields in SDEV structure: ** ASSUMES 3 BYTE CODE PTRS! +sxmit equ 0 ; offset of embedded CMX XMIT structure +srecv equ 13 ; offset of embedded CMX RECV structure +sport equ 13+13 +stxvec equ 13+13+1 ; called by interrupt, returns l=chr +srxvec equ 13+13+4 ; called by interrupt, passed c=chr +smsvec equ 13+13+7 ; called by interrupt, passed c=bits +sesvec equ 13+13+10 ; called by interrupt, passed c=bits +stevec equ 13+13+13 ; vector to start asci/escc transmitter +stdvec equ 13+13+16 ; vector to stop asci/escc transmitter +sstat equ 13+13+19 ; address to read status (8530 02xxh) +stxdr equ 13+13+20 ; address to write tx data (8530 02xxh) +srxdr equ 13+13+21 ; address to read rx data (8530 02xxh) +swr1 equ 13+13+22 ; wr1 contents (interrupt enable bits) +swr5 equ 13+13+23 ; wr5 contents (modem control outputs) +swr15 equ 13+13+24 ; wr15 contents (modem control int ena) +sinint equ 13+13+25 ; says whether wr1 really reflects wr1! +sdvlen equ 13+13+26 ; byte size of block per serial port + +; ----------------------------------------------------------------------------- + + rseg CODE + + public _escc0_setup + +_escc0_setup:: + push bc + push de + + ld iy,_sdevs+2*sdvlen + ld (iy+sstat),.low.AC8530 + ld (iy+stxdr),.low.AD8530 + ld (iy+srxdr),.low.AD8530 + ld (iy+stevec),.low._escc_tx_enable + ld (iy+stevec+1),.high._escc_tx_enable + ld (iy+stevec+2),BYTE3 _escc_tx_enable + + ld bc,AC8530 + di ; so int doesn't corrupt address reg + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + + nop ; ld d,9 + out (c),d ; address WR9 + ld a,10000010b + out (c),a ; channel reset A, status lo, no vector + + ; allow at least 4 clock cycles for reset + + ld d,5 + out (c),d ; address WR5 + ld a,11101010b + out (c),a ; dtr on, 8 data, tx enable, rts on + ld (iy+swr5),a ; set up shadow for swr5sb, swr5rb + + ld d,2 + out (c),d ; address WR2 + sub a + out (c),a ; redundantly set up interrupt vector + + ld d,4 + out (c),d ; address WR4 + ld a,01000100b ; *16 with 1 stop bit, no parity + out (c),a + + ld d,3 + out (c),d ; address WR3 + ld a,11000001b + out (c),a ; 8 data, auto disable, rx enable + + ld d,15 + out (c),d ; address WR15 + sub a + out (c),a ; modem status interrupts disabled + ld (iy+swr15),a ; set up shadow for swr15s, swr15r + + dec d ; ld d,14 + out (c),d ; address WR14 + sub a + out (c),a ; disable baud rate generator + + ld d,12 + out (c),d ; address WR12 + ld a,6 ; 6=57600 4=76800 2=115200 + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,13 + out (c),d ; address WR13 + sub a + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,14 + out (c),d ; address WR14 + ld a,00000010b + out (c),a ; set pclk input + nop ; ld d,14 + out (c),d ; address WR14 + or 1 + out (c),a ; enable baud rate generator + ld d,11 + out (c),d ; address WR11 + ld a,01010010b ; use baud rate generator + out (c),a + + ld d,1 + out (c),d ; address WR1 + ld a,00010001b + out (c),a ; rx int on all, no tx int, ext int + ld (iy+swr1),a ; set up shadow for swr1sb, swr1rb + + ld a,00010000b ; reset ext status ints + out (c),a + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b ; mie on, status lo, no vector + out (c),a + +; not yet... this will be done by the escc1 setup routine when both ports ok +; in0 a,(ITC) +; or INT2SW +; out0 (ITC),a + + ei + + pop de + pop bc + jp ?BANK_FAST_LEAVE_L08 + + public _escc1_setup + +_escc1_setup:: + push bc + push de + + ld iy,_sdevs+3*sdvlen + ld (iy+sstat),.low.BC8530 + ld (iy+stxdr),.low.BD8530 + ld (iy+srxdr),.low.BD8530 + ld (iy+stevec),.low._escc_tx_enable + ld (iy+stevec+1),.high._escc_tx_enable + ld (iy+stevec+2),BYTE3 _escc_tx_enable + + ld bc,BC8530 + di ; so int doesn't corrupt address reg + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + + nop ; ld d,9 + out (c),d ; address WR9 + ld a,01000010b + out (c),a ; channel reset B, status lo, no vector + + ; allow at least 4 clock cycles for reset + + ld d,5 + out (c),d ; address WR5 + ld a,11101010b + out (c),a ; dtr on, 8 data, tx enable, rts on + ld (iy+swr5),a ; set up shadow for swr5sb, swr5rb + + ld d,2 + out (c),d ; address WR2 + sub a + out (c),a ; redundantly set up interrupt vector + + ld d,4 + out (c),d ; address WR4 + ld a,01000100b ; *16 with 1 stop bit, no parity + out (c),a + + ld d,3 + out (c),d ; address WR3 + ld a,11000001b + out (c),a ; 8 data, auto disable, rx enable + + ld d,15 + out (c),d ; address WR15 + sub a + out (c),a ; modem status interrupts disabled + ld (iy+swr15),a ; set up shadow for swr15s, swr15r + + dec d ; ld d,14 + out (c),d ; address WR14 + sub a + out (c),a ; disable baud rate generator + + ld d,12 + out (c),d ; address WR12 + ld a,6 ; 6=57600 4=76800 2=115200 + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,13 + out (c),d ; address WR13 + sub a + out (c),a ; divisor 0002h indicates 115200 bps + inc d ; ld d,14 + out (c),d ; address WR14 + ld a,00000010b + out (c),a ; set pclk input + nop ; ld d,14 + out (c),d ; address WR14 + inc a ; or 1 + out (c),a ; enable baud rate generator + ld d,11 + out (c),d ; address WR11 + ld a,01010010b ; use baud rate generator + out (c),a + + ld d,1 + out (c),d ; address WR1 + ld a,00010001b + out (c),a ; rx int on all, no tx int, ext int + ld (iy+swr1),a ; set up shadow for swr1sb, swr1rb + +; this is only done for S3DEV, and is intended to disconnect LAN optocoupler + ld d,5 + out (c),d ; address WR5 + ld a,11101000b + out (c),a ; dtr on, 8 data, tx enable, rts off + ld (iy+swr5),a ; update our knowledge of wr5 contents + + ld a,00010000b ; reset ext status ints + out (c),a + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b ; mie on, status lo, no vector + out (c),a + + in0 a,(ITC) + or INT2SW + out0 (ITC),a + + ei + + pop de + pop bc + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- + + public _escc_tx_enable + +_escc_tx_enable:: + push bc + push de + +; ld iy,_sdevs+0*sdvlen + push de + pop iy + di + .if 1 + ld hl,LWRD swr1te + ld a,BYTE3 swr1te + call ?BANK_CALL_DIRECT_L08 + .else + call swr1te + .endif + ei + + pop de + pop bc +; ret + jp ?BANK_FAST_LEAVE_L08 + + public _escc_tx_disable + +_escc_tx_disable:: + push bc + push de + +; ld iy,_sdevs+0*sdvlen + push de + pop iy + di + .if 1 + ld hl,LWRD swr1td + ld a,BYTE3 swr1td + call ?BANK_CALL_DIRECT_L08 + .else + call swr1td + .endif + ei + + pop de + pop bc +; ret + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- + + rseg RCODE + + public _int2_vector + +_int2_vector:: + .if 1 + ;ld a,'.' + ;out0 (TDR1),a + call _K_OS_Intrp_Entry + .else + push af + push bc + push de + push hl + push iy + .endif + + .if 1 + ld bc,AC8530 + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00000010b + out (c),a ; mie off, status lo, no vector + ei ; allow other interrupts to occur + .endif + + .if 1 + .if 1 ; prevent overrun by polling the ports after each interrupt + ld hl,LWRD si23iv + ld a,BYTE3 si23iv + call ?BANK_CALL_DIRECT_L08 + + ; routine to allow arbitrary tests for rx char (prevents overrun) + ld bc,AC8530 ; enter with interrupts disabled!! + in a,(c) ; read rr0 (channel a = s2dev) + rra ; test bit 0 = rx char available + + ld hl,LWRD si2rx + ld a,BYTE3 si2rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + ; (this clobbers bc if char received) + ld bc,BC8530 + in a,(c) ; read rr0 + rra ; test bit 0 = rx char available + + ld hl,LWRD si3rx + ld a,BYTE3 si3rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + ; (this clobbers bc if char received) + .else + ld hl,LWRD si23 + ld a,BYTE3 si23 + call ?BANK_CALL_DIRECT_L08 + .endif + .else + call si23 + .endif + + .if 1 + ld bc,AC8530 + di ; prevent ints occurring immediately + in (c) ;f,(c) ; reset pointer bits + + ld d,9 + out (c),d ; address WR9 + ld a,00001010b + out (c),a ; mie on, status lo, no vector + .endif + + .if 1 + call _K_OS_Intrp_Exit + .else + pop iy + pop hl + pop de + pop bc + pop af + ei + ret + .endif + +; ----------------------------------------------------------------------------- + + rseg CODE + + .if 0 ; 17sep02 routine to allow arbitrary tests for rx char (prevents overrun) + .if 1 ; 17sep02 enhancement for extra safety against overruns (esp. @ 6.144 mhz) +public si23 + +si23: + .if 1 + ld hl,LWRD si23iv + ld a,BYTE3 si23iv + call ?BANK_CALL_DIRECT_L08 + .else + call LWRD si23iv ; first process interrupt via vector + .endif + ; fall into si23rx routine (it could also be useful during other ints!) + .endif + +public si23rx + +si23rx: ; routine to allow arbitrary tests for rx char (prevents overrun) + ld bc,AC8530 ; enter with interrupts disabled!! + in a,(c) ; read rr0 (channel a = s2dev) + rra ; test bit 0 = rx char available + .if 1 + ld hl,LWRD si2rx + ld a,BYTE3 si2rx + call c,?BANK_CALL_DIRECT_L08 ; something ready, use the normal si2rx + .else + call c,LWRD si2rx ; something ready, use the normal si2rx + .endif + ; (this clobbers bc if char received) + ld bc,BC8530 + in a,(c) ; read rr0 + rra ; test bit 0 = rx char available + .if 1 + jp nc,?BANK_FAST_LEAVE_L08 ; nothing ready, no-op (ints disabled) + .else + ret nc ; nothing ready, no-op (ints disabled) + .endif + ; fall into the same si3rx routine as used by the interrupt system + jp LWRD si3rx + .endif + + .if 0 +silly: ; enter with special receive condition status byte in e + ld a,e + rrca + rrca + rrca + rrca + and 7 + add a,'0' + rst 18h ;call abyte + ret + .endif + + .if 0 +sillyx: ; enter with modem control input status byte in e + ld a,e + and 28h + rrca ; 14h + rrca ; 0ah + rrca ; 05h + add a,'0' + rst 18h ;call abyte + ret + .endif + +si3tx: + .if 1 + ld iy,_sdevs+3*sdvlen + .endif + + .if 1 + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+stxvec) + ld a,(_sdevs+3*sdvlen+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx + jp z,LWRD swr1td + + ; client has provided character for tx, send it + ld bc,BD8530 + out (c),l ; send char on behalf of client + .else + ld bc,(_sdevs+3*sdvlen+stxvec) + call 0eb53h ; winved + di ;;!! 24may02 for no good reason + jp c,swr1td ;jr c,si3td + + ; client has provided character for tx, send it + ld bc,BD8530 + out (c),e ; send char on behalf of client + .endif + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret ;jr si23 ; check for further interrupts pending + .endif + +;si3td: call swr1td ; serial write register 1 tx disable +; ret ;jr si23 ; check for further interrupts pending + + .if 1 ; 16dec01 so that swint can be a regular modem status handler +si3ms: + .if 0 + ld iy,_sdevs+3*sdvlen + .endif + in e,(c) ; read modem status inputs for client + + .if 0 + call sillyx + .endif + + ld a,00010000b ; reset ext status interrupts + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+smsvec) + ld a,(_sdevs+3*sdvlen+smsvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+3*sdvlen+smsvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + .else +si3ms: ; bc is already set up to read channel b modem status +; call swint +; ret ;jr si23 ; check for further interrupts pending + jp swint + .endif + +si3rx: + .if 0 + ld iy,_sdevs+3*sdvlen + .endif + + ld c,low BD8530 + .if 1 + in c,(c) ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+srxvec) + ld a,(_sdevs+3*sdvlen+srxvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + in e,(c) ; read character for client + + ld bc,(_sdevs+3*sdvlen+srxvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si3es: dec d ; ld d,1 + out (c),d ; select rr1 + .if 0 + ld iy,_sdevs+3*sdvlen + .else + nop + .endif + in e,(c) ; read special receive condition status + + .if 0 + call silly + .endif + + .if 0 ; 16dec01 when nothing pending, go to clkint via s3dev error status + .if 1 ; 16oct02 make sure we don't depend on ckimsr when the hardware is new + ld a,(hwtype) + or a + jr nz,skpclk + .endif + ld a,e + and 01110000b ; bit 6=framing, 5=overrun, 4=parity + ;jp z,int2c ; in ser.mac for no good reason + jr z,int2c ; 14jun02 now here, & proper ret logic + .if 1 ; 16oct02 make sure we don't depend on ckimsr when the hardware is new +skpclk: + .endif + .endif + + .if 0 + ld a,'%' + rst 18h ;call abyte + .endif + + ld a,00110000b ; error reset + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+3*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+3*sdvlen+sesvec) + ld a,(_sdevs+3*sdvlen+sesvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+3*sdvlen+sesvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + + .if 0 ; 14jun02 this is now moved to ser.inc as it was misleading +int2c: + .if noints + ld bc,ckimsr + in a,(c) ; reset irq + ret ;jr si23 + .else + wjpd clkint ; clock is interrupting + ; clkint should be modified, + ; as it no longer needs to preserve de/hl/iy + .endif + .endif + +; ----------------------------------------------------------------------------- + + .if 1 ; 17sep02 enhancement for extra safety against overruns (esp. 6.144 MHz) +si23iv: ; routine to perform interrupt vectoring... not the main int. handler! + .else +public si23 + +si23: ; without the enhancement, this routine is also the main int. handler! + .endif + .if 0 ; 20may02 hope this works (it does, but see below) + ld a,'.' + call abyte + .endif + ld bc,BC8530 + ld d,2 + out (c),d ; select rr2 + ld hl,LWRD si23jt-200h ; we'll also rely on d=2 later + in e,(c) ; read interrupt vector with status + .if 0;xyz1 ; 15dec01 diagnostic interrupt vector output, requires abfast + ld a,e + rrca + add a,10h + ;bit 1,e ; 0 indicates tx/rx int, 1 indicates modem/error int + ;call nz,abyte + out0 (TDR1),a + .endif + add hl,de + jp (hl) + +si23jt: jr si3tx + jr si3ms + jr si3rx + jr si3es + jr si2tx + jr si2ms + jr si2rx + jr si2es + +; ----------------------------------------------------------------------------- + +si2tx: + .if 1 + ld iy,_sdevs+2*sdvlen + .endif + + .if 1 + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+stxvec) + ld a,(_sdevs+2*sdvlen+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx + jp z,LWRD swr1td + + ; client has provided character for tx, send it + ld bc,AD8530 + out (c),l ; send char on behalf of client + .else + ld bc,(_sdevs+2*sdvlen+stxvec) + call 0eb53h ; winved + di ;;!! 24may02 for no good reason + jp c,swr1td ;jr c,si2td + + ; client has provided character for tx, send it + ld bc,AD8530 + out (c),e ; send char on behalf of client + .endif +; ld a,e +; jp abyte + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret ;jr si23 ; check for further interrupts pending + .endif + +;si2td: call swr1td ; serial write register 1 tx disable +; ret ;jr si23 ; check for further interrupts pending + +si2ms: + .if 0 + ld iy,_sdevs+2*sdvlen + .endif + + inc c ; ld c,low AC8530 + in e,(c) ; read modem status inputs for client + + ld a,00010000b ; reset ext status interrupts + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+smsvec) + ld a,(_sdevs+2*sdvlen+smsvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+2*sdvlen+smsvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si2rx: + .if 0 + ld iy,_sdevs+2*sdvlen + .endif + + ld c,low AD8530 + .if 1 + in c,(c) ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+srxvec) + ld a,(_sdevs+2*sdvlen+srxvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + in e,(c) ; read character for client + + ld bc,(_sdevs+2*sdvlen+srxvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +si2es: inc c ; ld c,low AC8530 + dec d ; ld d,1 + out (c),d ; select rr1 + .if 0 + ld iy,_sdevs+2*sdvlen + .else + nop + .endif + in e,(c) ; read special receive condition status + + ld a,00110000b ; error reset + out (c),a + + .if 1 + ld c,e ; c = 2nd parameter (byte) + ld de,_sdevs+2*sdvlen ; de = 1st parameter (word16) + + ld hl,(_sdevs+2*sdvlen+sesvec) + ld a,(_sdevs+2*sdvlen+sesvec+2) + .if 1 + jp LWRD ?BANK_JMP_DIRECT_L08 + .else + jp ?BANK_CALL_DIRECT_L08 + .endif + .else + ld bc,(_sdevs+2*sdvlen+sesvec) +; call 0eb53h ; winved, ignore the cf return for now +; ret ;jr si23 ; check for further interrupts pending + jp 0eb53h ; winved, ignore the cf return for now + .endif + +; rather silly routine provided to save code space in the handlers above: + +?BANK_JMP_DIRECT_L08: + call ?BANK_CALL_DIRECT_L08 + jp ?BANK_FAST_LEAVE_L08 + +; ----------------------------------------------------------------------------- +; utility subroutines for use by our clients - 8530 ports (serial 2/3) + +swr1te: ; serial write register 1 transmit enable - enter with di + ;ld a,(iy+sdev) + ;cp s2dev + ;ld a,'e' + ;call z,abyte + +; ld a,(iy+sdev) +; cp s2dev +; jr nz,twatx +; call twatx +; jp abyte +;twatx: + bit 1,(iy+swr1) +; ld a,'a' + .if 1 + jp nz,?BANK_FAST_LEAVE_L08 ; transmit interrupt already enabled + .else + ret nz ; transmit interrupt already enabled + .endif + + .if 1 + push iy + pop de ; de = 1st parameter (word16) + + ld l,(iy+stxvec) + ld h,(iy+stxvec+1) + ld a,(iy+stxvec+2) + call ?BANK_CALL_DIRECT_L08 + + inc h ; hl = 0ffffh indicates no char for tx +; ld a,'b' + .if 1 + jp z,?BANK_FAST_LEAVE_L08 + .else + ret z + .endif + .else + ld c,(iy+stxvec) + ld b,(iy+stxvec+1) + call 0eb53h ; winved +; ld a,'b' + ret c ; there was really nothing to transmit + ld l,e + .endif + + ld e,2 + .if 1 + push hl ; oops ! + ld hl,LWRD swr1sb + ld a,BYTE3 swr1sb + call ?BANK_CALL_DIRECT_L08 ; explicitly enable transmit interrupt + pop hl ; oops ! + .else + call LWRD swr1sb ; explicitly enable transmit interrupt + .endif + + ld c,(iy+stxdr) + out (c),l ; send char on behalf of client +; ld a,(iy+sdev) +; cp s2dev +; ret nz +; ld a,55h +; call abyte +; ld a,l +; jp abyte +; ld a,'c' + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr1sb: ; serial write register 1 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,1 + out (c),d + ld a,e + or (iy+swr1) + out (c),a + ld (iy+swr1),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr1td: ; serial write register 1 transmit disable - enter with di + ;ld a,(iy+sdev) + ;cp s2dev + ;ld a,'d' + ;call z,abyte + ld e,0fdh +swr1rb: ; serial write register 1 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,1 + out (c),d + ld a,e + and (iy+swr1) + out (c),a + ld (iy+swr1),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr5sb: ; serial write register 5 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,5 + out (c),d + ld a,e + or (iy+swr5) + out (c),a + ld (iy+swr5),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr5rb: ; serial write register 5 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,5 + out (c),d + ld a,e + and (iy+swr5) + out (c),a + ld (iy+swr5),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr15s: ; serial write register 15 set bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,15 + out (c),d + ld a,e + or (iy+swr15) + out (c),a + ld (iy+swr15),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +swr15r: ; serial write register 15 reset bits - enter with di + ld c,(iy+sstat) + ld b,2 ;(iy+sbase) + ld d,15 + out (c),d + ld a,e + and (iy+swr15) + out (c),a + ld (iy+swr15),a + .if 1 + jp ?BANK_FAST_LEAVE_L08 + .else + ret + .endif + +; ----------------------------------------------------------------------------- + + END diff --git a/src/kernel/kernel.lnk b/src/kernel/kernel.lnk index f2695b76..ac314c94 100644 --- a/src/kernel/kernel.lnk +++ b/src/kernel/kernel.lnk @@ -1,4 +1,6 @@ -k ..\..\..\lib +-l libsysb.lib +-l libcb.lib -l libiar.lib -m -u diff --git a/src/kernel/kernel.lnk% b/src/kernel/kernel.lnk% index 03264179..04f57e37 100644 --- a/src/kernel/kernel.lnk% +++ b/src/kernel/kernel.lnk% @@ -1,4 +1,6 @@ -k ..\..\..\lib +-l libsysb.lib +-l libc.lib -l libiar.lib -m -u @@ -53,3 +55,4 @@ abort exit _exit testsystem +touchscreen diff --git a/src/kernel/n.bat b/src/kernel/n.bat index 723a7461..cc2a41ed 100644 --- a/src/kernel/n.bat +++ b/src/kernel/n.bat @@ -2,5 +2,5 @@ md build cd build copy ..\kernel.lnk copy ..\build.ban n.bat -call n +call n %1 cd .. diff --git a/src/kernel/n.bat.org b/src/kernel/n.bat.org new file mode 100644 index 00000000..723a7461 --- /dev/null +++ b/src/kernel/n.bat.org @@ -0,0 +1,6 @@ +md build +cd build +copy ..\kernel.lnk +copy ..\build.ban n.bat +call n +cd .. diff --git a/src/kernel/uzi/devno.h b/src/kernel/uzi/devno.h new file mode 100644 index 00000000..e955442d --- /dev/null +++ b/src/kernel/uzi/devno.h @@ -0,0 +1,34 @@ +/* devno.h for UZI180 by Rob */ + +#define DEVOUT_BASE 0x20 /* above this number means output to device */ + +#define _2SDEV(p) ((p)-1) /* p is a minor device number */ +#define _2MINOR(p) ((p)+1) /* p is an SDEV device number */ + + +/* Minor device numbers */ +#define DEV_S0 1 /* Serial 0 */ +#define DEV_S1 2 /* Serial 1 */ +#define DEV_S2 3 /* Serial 2 */ +#define DEV_S3 4 /* Serial 3 */ +#define DEV_LC 5 /* Load cell */ +#define DEV_TS 6 /* Touchscreen */ +#define DEV_CD 7 /* Customer display */ +#define DEV_TP 9 /* Thermal printer */ + + +/* + * Struct functioning as a wrapper to certain parts of SDEV, + * in order to maintain some extra administration for devices + */ +typedef struct +{ + char tsyshook; + /* + * vector[0] occupied by test system RX hook + * vector[1] occupied by device original RX handler + */ + void (*saved_rx_vector[2])(SDEV *device, char c); +} wsdevsT; + +extern wsdevsT wsdevs[PORTS]; diff --git a/src/kernel/uzi/devtty.c.org b/src/kernel/uzi/devtty.c.org deleted file mode 100644 index 17d55f15..00000000 --- a/src/kernel/uzi/devtty.c.org +++ /dev/null @@ -1,502 +0,0 @@ -/*************************************************************** - UZI (Unix Z80 Implementation) Kernel: devtty.c ----------------------------------------------------------------- - Adapted from UZI By Doug Braun, and UZI280 by Stefan Nitschke - Copyright (C) 1998 by Harold F. Bower - Portions Copyright (C) 1995 by Stefan Nitschke -****************************************************************/ -/* Revisions: - * 22.12.97 - Moved __putc & tty_int to MACHASM.ASZ. HFB - * 24.05.98 - Restructured tty_inproc, parse CTRL chars - * based on flag set bit (deletes CPM_CTRL in 280), add - * equate for Number of TTY terminals. HFB - */ - -#if 0 /* Nick */ -#define DEBUG /* UNdefine to delete debug code sequences */ - -#define NTTYS 9 /* 2 */ /* Number of TTY ports defined */ -#endif - -#include "vendor.h" /* Nick, must come first */ -#include -#include -#include -#include "devtty.h" /* prototypes added by Nick */ - -struct s_tty_data tty_data[NTTYS+1]; /* tty_data[0] is not used */ - -struct s_tty_data tty_default = - { - 0, 0, '\b', CTRL('x'), DFLT_MODE, - CTRL('c'), CTRL('\\'), CTRL('q'), CTRL('s'), CTRL('d'), 0 - }; - -#if 1 /* Nick */ -void (*tty_vector[NTTYS+1])(int minor, char c) = - { - tty_inproc_dummy, /* this entry is never used */ - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy, - tty_inproc_dummy - }; - -extern char xmit_bufs[PORTS][XMIT_SIZE]; -extern char recv_bufs[PORTS][RECV_SIZE]; - -struct s_queue ttyinq[NTTYS+1] = - { - { NULL, NULL, NULL, 0, 0, 0 }, /* this entry is never used */ - { recv_bufs[0], recv_bufs[0], recv_bufs[0], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[1], recv_bufs[1], recv_bufs[1], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[2], recv_bufs[2], recv_bufs[2], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[3], recv_bufs[3], recv_bufs[3], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[4], recv_bufs[4], recv_bufs[4], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[5], recv_bufs[5], recv_bufs[5], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[6], recv_bufs[6], recv_bufs[6], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[7], recv_bufs[7], recv_bufs[7], TTYSIZ, 0, TTYSIZ/2 }, - { recv_bufs[8], recv_bufs[8], recv_bufs[8], TTYSIZ, 0, TTYSIZ/2 } - }; -#else -/* Character Input Queue size */ -#define TTYSIZ 132 - -char tbuf1[TTYSIZ]; -char tbuf2[TTYSIZ]; - -struct s_queue ttyinq[NTTYS+1] = { /* ttyinq[0] is never used */ -{ NULL, NULL, NULL, 0, 0, 0 }, -{ tbuf1, tbuf1, tbuf1, TTYSIZ, 0, TTYSIZ/2 }, -{ tbuf2, tbuf2, tbuf2, TTYSIZ, 0, TTYSIZ/2 } -}; -#endif - -int stopflag[NTTYS+1]; /* Flag for ^S/^Q */ -int flshflag[NTTYS+1]; /* Flag for ^O */ - -int tty_read(uchar minor, uchar rawflag) -{ - int nread; - char c; - int remq(); - -#if DEBUG >= 2 - dprintf(2, "tty_read(%d, %d) starting\n", minor, rawflag); -#endif - - /* Minor == 0 means that it is the controlling tty of the process */ - ifnot (minor) - minor = udata.u_ptab->p_tty; - ifnot (udata.u_ptab->p_tty) - udata.u_ptab->p_tty = minor; - - if ((minor < 1) || (minor > NTTYS+1)) { - udata.u_error = ENODEV; -#if DEBUG >= 2 - dprintf(2, "tty_read() returning -1, error %d\n", udata.u_error); -#endif - return (-1); - } - - nread = 0; - while (nread < udata.u_count) - { - for (;;) - { - di_absolute(); /* Nick */ - if (remq (&ttyinq[minor], &c)) { -#if 1 /* Nick */ - ei_absolute(); /* Nick */ -#endif - if (udata.u_sysio) - *udata.u_base = c; - else - uputc (c, udata.u_base); - break; - } -#if 1 /* Nick */ - ei_absolute(); -#endif -#if 1 /* Nick */ - /* In unbuffered mode, don't wait when no input */ - if (tty_data[minor].t_flags & UNBUFF) - { -#if DEBUG >= 2 - dprintf(2, "tty_read() returning %d, success\n", nread); -#endif - return(nread); - } -#endif -#if 1 /* Nick, original uzi code, it can be handy to disable this sometimes */ - psleep (&ttyinq[minor]); - if (udata.u_cursig || udata.u_ptab->p_pending) { /* messy */ - udata.u_error = EINTR; -#if DEBUG >= 2 - dprintf(2, "tty_read() returning -1, error %d\n", udata.u_error); -#endif - return (-1); - } -#endif - } -#if 0 /* Nick, removed as this is now done immediately after calling remq */ - ei_absolute(); /* Nick */ -#endif - if ((nread++ == 0) && (c == tty_data[minor].t_eof)) /* ^D */ - { -#if DEBUG >= 2 - dprintf(2, "tty_read() returning 0, eof\n"); -#endif - return(0); - } - - /* In raw or cbreak mode, return after one char */ -#if 1 /* Nick */ - if ((tty_data[minor].t_flags & UNBUFF) == 0 && - (c == '\n' || tty_data[minor].t_flags & (RAW|CBREAK))) - { - break; - } -#else - if (tty_data[minor].t_flags & (RAW|CBREAK)) - break; - if (c == '\n') - break; -#endif - ++udata.u_base; - } -#if DEBUG >= 2 - dprintf(2, "tty_read() returning %d, success\n", nread); -#endif - return(nread); -} - - - -int tty_write(uchar minor, uchar rawflag) -{ - int towrite, c; -/* Nick int ugetc(); */ - - /* Minor == 0 means that it is the controlling tty of the process */ - ifnot (minor) - minor = udata.u_ptab->p_tty; - ifnot (udata.u_ptab->p_tty) - udata.u_ptab->p_tty = minor; - - if ((minor < 1) || (minor > NTTYS+1)) { - udata.u_error = ENODEV; - return (-1); - } - - towrite = udata.u_count; - - while (udata.u_count-- != 0) - { - for (;;) /* Wait on the ^S/^Q flag */ - { - di_absolute(); /* Nick */ - ifnot (stopflag[minor]) - break; - psleep (&stopflag[minor]); - if (udata.u_cursig || udata.u_ptab->p_pending) /* messy */ - { - udata.u_error = EINTR; - return (-1); - } - } - ei_absolute(); /* Nick */ - - ifnot (flshflag[minor]) - { - if (udata.u_sysio) - c = *udata.u_base; - else - c = ugetc (udata.u_base); - - if (c == '\n' && (tty_data[minor].t_flags & CRMOD)) - _putc (minor, '\r'); - _putc (minor, c); - } - ++udata.u_base; - } - return (towrite); -} - - - -int tty_open(uchar minor) -{ - /* Minor == 0 means that it is the controlling tty of the process */ - ifnot (minor) - minor = udata.u_ptab->p_tty; - -#if 1 /* Nick */ - if ((minor < 1) || (minor > NTTYS+1)) - { - udata.u_error = ENODEV; - return (-1); - } -#endif - - /* If there is no controlling tty for the process, establish it */ - ifnot (udata.u_ptab->p_tty) - udata.u_ptab->p_tty = minor; - - /* Initialize the tty_data */ - bcopy (&tty_default, &tty_data[minor], sizeof (struct s_tty_data)); - -#if 1 /* Nick */ - di_absolute(); - tty_vector[minor] = tty_inproc; - ei_absolute(); -#endif - - return (0); -} - - -int tty_close(uchar minor) -{ - /* If we are closing the controlling tty, make note */ - if (minor == udata.u_ptab->p_tty) - udata.u_ptab->p_tty = 0; - -#if 1 /* Nick */ - if ((minor < 1) || (minor > NTTYS+1)) - { - udata.u_error = ENODEV; - return (-1); - } -#endif - -#if 1 /* Nick */ - di_absolute(); - tty_vector[minor] = tty_inproc_dummy; - ei_absolute(); -#endif - - return (0); -} - - -/* Data in User Space */ -int tty_ioctl(uchar minor, int request, char *data) -{ - /* Minor == 0 means that it is the controlling tty of the process */ - ifnot (minor) - minor = udata.u_ptab->p_tty; - if ((minor < 1) || (minor > NTTYS+1)) { - udata.u_error = ENODEV; - return (-1); - } - switch (request) - { - case TIOCGETP: - uput (&tty_data[minor], data, 6); - break; - case TIOCSETP: - uget (data, &tty_data[minor], 6); - break; - case TIOCGETC: - uput (&tty_data[minor].t_intr, data, 5); - break; - case TIOCSETC: - uget (data, &tty_data[minor].t_intr, 5); - break; - case TIOCSETN: - uput (&ttyinq[minor].q_count, data, 2); - break; - case TIOCFLUSH: - clrq (&tty_data[minor]); - break; - case TIOCTLSET: - tty_data[minor].ctl_char = 1; - break; - case TIOCTLRES: - tty_data[minor].ctl_char = 0; - break; - default: - udata.u_error = EINVAL; - return (-1); - } - return (0); -} - - -/* This routine processes a character in response to an interrupt. It - * adds the character to the tty input queue, echoing and processing - * backspace and carriage return. If the queue contains a full line, - * it wakes up anything waiting on it. If it is totally full, it beeps - * at the user. - * UZI180 - This routine is called from the raw Hardware read routine, - * either interrupt or polled, to process the input character. HFB - */ - -void tty_inproc(int minor, char c) -{ - char oc; - struct s_tty_data *td; - int mode; - int insq(), uninsq(); - - td = &tty_data[minor]; -#if 1 /* Nick */ - if ((td->t_flags & (RAW|CBREAK|COOKED|UNBUFF)) == (RAW|UNBUFF)) - { - insq (&ttyinq[minor], c); - return; /* don't bother checking for error or waking task */ - } -#endif - mode = td->t_flags & (RAW|CBREAK|COOKED); - -/*** if (c == 0x1b && td->t_flags == DFLT_MODE) -/*** return; /* my terminal hates it SN */ - - if (mode != RAW) - { /* Nick */ - c &= 0x7f; /* Strip off parity */ - if (!c) - return; /* Simply quit if Null character */ - } /* Nick */ - - if (td->ctl_char == 0) /* Don't parse ctl chars if Non-0 */ - { - if ((mode & RAW) == 0) /* if mode == COOKED or CBREAK */ - { -#if DEBUG - if (c == 0x1a) /* ^Z */ - { - idump(); /* (For debugging) */ - return; - } - else if (c == 0x0e) /* ^N Nick */ - { - traceon = !traceon; - return; - } -#endif - - if (c == '\r' && (td->t_flags & CRMOD)) - c = '\n'; - - if (c == td->t_intr) { /* ^C */ - sgrpsig (minor, SIGQUIT); - clrq (&ttyinq[minor]); - stopflag[minor] = flshflag[minor] = 0; - return; - } - else if (c == td->t_quit) { /* ^\ */ - sgrpsig (minor, SIGINT); - clrq (&ttyinq[minor]); - stopflag[minor] = flshflag[minor] = 0; - return; - } - else if (c == '\017') { /* ^O */ - flshflag[minor] = !flshflag[minor]; - return; - } - else if (c == td->t_stop) { /* ^S */ - stopflag[minor] = 1; - return; - } - else if (c == td->t_start) { /* ^Q */ - stopflag[minor] = 0; - wakeup (&stopflag[minor]); - return; - } - } - - if (mode == COOKED) - { - if (c == td->t_erase) - { - if (uninsq (&ttyinq[minor], &oc)) - { - if (oc == '\n') - insq (&ttyinq[minor], oc); /* Don't erase past nl */ - else - { - echo (minor, '\b'); - echo (minor, ' '); - echo (minor, '\b'); - } - } - return; - } - else if (c == td->t_kill) - { - while (uninsq (&ttyinq[minor], &oc)) - { - if (oc == '\n') - { - insq (&ttyinq[minor], oc); /* Don't erase past nl */ - break; - } - echo (minor, '\b'); - echo (minor, ' '); - echo (minor, '\b'); - } - return; - } - } - } - /* All modes come here */ - - if (c == '\n' && (td->t_flags & CRMOD)) - echo (minor, '\r'); - - if (insq (&ttyinq[minor], c)) - echo (minor, c); - else - _putc (minor, '\007'); /* Beep if no more room */ - - if ((mode != COOKED || c == '\n' || c == td->t_eof) - && (td->ctl_char == 0)) /* ^D */ - wakeup (&ttyinq[minor]); -/* abyte('^'); */ -/* abyte(c); */ -/* while (1) */ -/* ; */ -} - - -#if 1 /* Nick */ -void tty_inproc_dummy(int minor, char c) - { - } -#endif - - -void echo(int minor, char c) -{ - if (tty_data[minor].t_flags & ECHO) - _putc (minor, c); -} - - -#if 0 -char silly_pause(void) - { - char c; - - for (;;) - { - di_absolute(); /* Nick */ - if (remq (&ttyinq[2], &c)) - { - return c; - } -#if 1 /* Nick... very temporary!! */ - ei_absolute(); -#endif - } - } -#endif - - diff --git a/src/kernel/uzi/main.c b/src/kernel/uzi/main.c index 4a3ae3d2..21e5b137 100644 --- a/src/kernel/uzi/main.c +++ b/src/kernel/uzi/main.c @@ -10,6 +10,7 @@ #include #include #include "devtty.h" +#include "devno.h" #include "touchscreen.h" #include "testsystem.h" @@ -90,6 +91,10 @@ void initsysx(void) } #endif +/* Admin. wrapper for sdevs */ +wsdevsT wsdevs[PORTS]; + + void main(int argc, char **argv) { #if 1 @@ -202,13 +207,17 @@ void main(int argc, char **argv) /* redirect incoming data from CompactFlash to the uzi scsi handler */ sdevs[10].rx_vector = compactflash_rx_handler; + K_OS_Enable_Interrupts(); + + /* initialise device extra administration */ + memset(&wsdevs, 0, sizeof(wsdevsT)); + /* initialise test system */ testsystem_init(); /* initialise touchscreen hooks */ touchscreen_init(); - K_OS_Enable_Interrupts(); #endif K_OS_Start(); /* enter CMX RTOS */ @@ -405,7 +414,6 @@ int count; *dest++ = *src++; } } - int int_min(int a, int b) { return (b < a ? b : a); diff --git a/src/kernel/uzi/main.c.org b/src/kernel/uzi/main.c.org deleted file mode 100644 index 229c500f..00000000 --- a/src/kernel/uzi/main.c.org +++ /dev/null @@ -1,832 +0,0 @@ -/* main.c for uzi180 by Nick - initialises CMX and then starts UZI as a task */ - -/* #define POLLED */ /* causes console I/O to be output via abyte() */ - -#include "vendor.h" /* Nick, must come first */ -#include -#include -#include -#include -#include -#include -#include "devtty.h" - -void asci0_setup(void); -void asci1_setup(void); -void escc0_setup(void); -void escc1_setup(void); -void apibus_setup(void); -void apibus_priority(char command); -void timer0_setup(void); /* initializes timer 3, for CMX tick */ - -extern char osBank; /* defined in machasm */ -/* extern int root_dev; /* should be dev_t */ /* defined in extern.h */ - -/* extern char silly; */ /* Nick, very silly !! */ -extern char rom_serial_no[]; /* 5 digits (leading space padded) plus null */ - -#if 1 /* Nick UZIX compatible */ -char UZIX[14]="UZI180"; /* Nick "UZIX"; should be 13 chars or fewer */ -char HOST[14]="sn00000"; /* Nick kdata.k_host should be 13 chars or fewer */ -#endif - -byte uzi_slot; /* UZI task global slot number */ -extern void initsys(void); /* start of the UZI task's code */ - -extern char cmdblk[8]; /* for scsiop(), defined in devhd.c */ -extern long hd_offset; -extern long hd_sector; -extern char *dptr; -extern int dlen; -extern char *cptr; -extern int busid; - -void main(int argc, char **argv); -void timer0_handler(void); -#if 0 /* Nick, see kprintf.c */ -void kprintf(char *fmt, ...); -#endif -void kputchar(char c); -void puts(char *s); -void _putc(int minor, char c); -void tty_inproc(int minor, char c); /* in devtty.c */ -void my_tty_inproc(SDEV *device, char c); -#if 0 -void my_tty_inproc5(SDEV *device, char c); -#endif -#if 0 /* Nick, see kprintf.c */ -char *itob(int n, char *s, int base); -#endif -void bzero(char *ptr, int count); -void bcopy(char *src, char *dest, int count); -int int_min(int a, int b); -int int_max(int a, int b); -int scsiop(void); -void my_compactflash_in(SDEV *device, char c); -void my_touchscreen_in(SDEV *device, char c); -void sttime(time_t *tvec); -void hostname_setup(void); - -#if 0 -tcbpointer compactflash_tcbptr; /* must be initialised to NULL by runtime!! */ -#else -char compactflash_enable; /* must be initialised to 0 by runtime!! */ -#endif - -#if 0 -byte t0_cnt; /* used by interrupt, for counter */ -byte go_ahead; /* used by interrupt, to determine when to send messages */ - -char int_mesg[] = {"interrupt mesg"}; /* message that interrupt will send */ -#endif - -#if 0 -void initsysx(void) - { - while (1) - { - abyte ('#'); - } - } -#endif - -void main(int argc, char **argv) - { -#if 1 - int i; -#endif - byte status; - - /* abyte('C'); */ - -#if 1 - amess("kernel: parameters:"); - if (argc < 2) - { - amess(" none"); - } - else - { - for (i = 1; i < argc; i++) - { - abyte(' '); - amess(argv[i]); - } - } - acrlf(); - - root_dev = -1; - for (i = 1; i < argc; i++) - { - if (strlen(argv[i]) == 8 && - strncmp(argv[i], "root=hd", 7) == 0 && - (status = argv[i][7]) >= '0' && status <= '9') - { - root_dev = status - '0'; - } - } -/* abyte('a'); */ -#endif - - K_OS_Init(); /* initialize ram and things */ -/* abyte('b'); */ - K_Init_Sdevs(); /* set up serial port buffers */ -/* abyte('c'); */ - /* abyte('D'); */ - - asci0_setup(); -/* abyte('d'); */ - asci1_setup(); -/* abyte('e'); */ - escc0_setup(); -/* abyte('f'); */ - escc1_setup(); -/* abyte('g'); */ - apibus_setup(); -/* abyte('h'); */ - /* abyte('E'); */ - - /* initialise compactflash card (and synchronise WPO chip tx count) */ - K_Put_Str(10, "\x1bI", 2); -/* abyte('i'); */ - -#if 1 - K_Put_Str(1, "\r\nWelcome to Hytech CMX version 1.0\r\n", 37); -/* abyte('j'); */ - /* abyte('F'); */ -#endif - - K_Task_Create(2, &uzi_slot, initsys, 128); /* create UZI task */ - K_Task_Start(uzi_slot); /* trigger UZI task */ - - timer0_setup(); /* initialize and start timer, to produce CMX TICK */ - /* abyte('0'); */ - -#if 0 - K_Put_Str(0, "\r\nHello from Hytech CMX, serial port 0\r\n", 40); -/* K_Put_Str(1, "\r\nHello from Hytech CMX, serial port 1\r\n", 40); */ - K_Put_Str(2, "\r\nHello from Hytech CMX, serial port 2\r\n", 40); - K_Put_Str(3, "\r\nHello from Hytech CMX, serial port 3\r\n", 40); - K_Put_Str(5, "\x1bKHello from Hytech CMX, apibus port 5\r\n", 40); - K_Put_Str(6, "\x1bKHello from Hytech CMX, apibus port 6\r\n", 40); -#endif - -#if 0 - K_Put_Str(1, "\r\nPress any key to start the scheduler... ", 42); - - while (!K_Get_Char(1, &status)) - /* abyte('.') */; /* can't use CMX task blocking functions just yet */ - /* abyte('>'); */ - - K_Put_Char(1, &status); - - K_Put_Str(1, "\r\nStarting the RTOS scheduler\r\n", 31); -#endif - -#if 1 - hostname_setup(); - - K_OS_Disable_Interrupts(); - - /* redirect incoming characters on SERIAL 0 to the uzi tty handler */ - sdevs[0].rx_vector = my_tty_inproc; - sdevs[1].rx_vector = my_tty_inproc; - sdevs[2].rx_vector = my_tty_inproc; - sdevs[3].rx_vector = my_tty_inproc; - sdevs[4].rx_vector = my_tty_inproc; - sdevs[5].rx_vector = my_touchscreen_in; - sdevs[6].rx_vector = my_tty_inproc; - sdevs[7].rx_vector = my_tty_inproc; - sdevs[8].rx_vector = my_tty_inproc; - - /* redirect incoming data from CompactFlash to the uzi scsi handler */ - sdevs[10].rx_vector = my_compactflash_in; - - K_OS_Enable_Interrupts(); -#endif - - K_OS_Start(); /* enter CMX RTOS */ - } - -void timer0_handler(void) - { -#if 0 /* Nick, very temporary */ - K_OS_Tick_Update(); -#endif -#if 0 - if (go_ahead) /* see if task has enable message sending */ - { - if (++t0_cnt == 2) /* see if count = 2. */ - { - t0_cnt = 0; /* reset count */ - - /* The following allows an interrupt to use a CMX function, but - it must use it indirectly. Thus the interrupt must call - the respective CMX function with a leading 'int_' to the - function. */ - K_Intrp_Mesg_Send(0,int_mesg); - } - } -#endif - } - -#if 0 /* Nick, see kprintf.c */ -void kprintf (char *fmt, ...) -{ - register char *arg; - register char c; - int base; - char s[7], *itob(); - -/* abyte('{'); */ - arg = (char *)(&fmt+1); /* NOTE: Assumes Pointer to 2-byte Word */ -#if 0 - while (c = *fmt++) - { - kputchar(c); - } - ahexw(*(int *)arg); - abyte('}'); - return; -#endif - while (c = *fmt++) { - if (c != '%') { - kputchar (c); - continue; - } - switch (c = *fmt++) { - case 'c': kputchar (*arg++); arg++; /* for IAR compiler */ - continue; - case 'd': base = -10; - goto prt; - case 'o': base = 8; - goto prt; - case 'u': base = 10; - goto prt; - case 'p': /* Nick */ - case 'x': base = 16; - prt: - puts (itob (*(int *)arg, s, base)); - arg++; arg++; /* NOTE: for Size of Word Ptr */ - continue; - case 's': puts (*(char **)arg); - arg++; arg++; /* NOTE: for Size of Word Ptr */ - continue; - default: kputchar (c); - continue; - } - } -/* abyte('}'); */ -} -#endif - -void kputchar(char c) - { - if (c == '\n') -#if 0 - { - abyte('\r'); - } - abyte(c); -#else - { - _putc(0, '\r'); /* Use default TTY, minor=0 */ - } - _putc(0, c); -#endif - } - -void puts(char *s) - { - while (*s) - { - kputchar(*s++); - } - } - -void _putc(int minor, char c) - { -#ifdef POLLED - if (minor == 0 || minor == 2) - { - abyte(c); -#else - if (minor == 0) - { - K_Put_Char_Wait(1, &c, 0x1000); -#endif - } - else - { - K_Put_Char_Wait(minor - 1, &c, 0x1000); - } - } - -void my_tty_inproc(SDEV *device, char c) - { -#if 1 - register int minor; - - minor = device->port + 1; - (*tty_vector[minor])(minor, c); -#else - tty_inproc(1, c); -#endif - } - -#if 0 -void my_tty_inproc5(SDEV *device, char c) - { - tty_inproc(2, c); - } -#endif - -#if 0 /* Nick, see kprintf.c */ -#define TRUE 1 -#define FALSE 0 - -/* convert an integer to a string in any base (2-36) */ -char *itob (int n, char *s, int base) - { - register unsigned int u; - register char *p, *q; - register negative, c; - if ((n < 0) && (base == -10)) { - negative = TRUE; - u = -n; - } - else { - negative = FALSE; - u = n; - } - if (base == -10) /* Signals signed conversion */ - base = 10; - p = q = s; - do { /* Generate digits in reverse order */ - if ((*p = u % base + '0') > '9') - *p += ('A' - ('9' + 1)); - ++p; - u = u / base; - } while (u > 0); - if (negative) - *p++ = '-'; - *p = '\0'; /* Terminate the string */ - while (q < --p) { /* Reverse the digits */ - c = *q; - *q++ = *p; - *p = c; - } - return s; - } -#endif - -void bzero(ptr, count) -char *ptr; -int count; - { - while (count--) - { - *ptr++ = 0; - } - } - -void bcopy(src, dest, count) -char *src, *dest; -int count; - { - while (count--) - { - *dest++ = *src++; - } - } - -int int_min(int a, int b) -{ - return (b < a ? b : a); -} - -int int_max(int a, int b) -{ - return (b > a ? b : a); -} - -int scsiop(void) - { - register char i, k; - register unsigned int j; /* counts up to n*0x200 */ - char checksum; /* can't be register */ - int timecnt = 0x1000; - -#if 0 - if (silly == 0) - while (1) - ; -#endif - -/** abyte(':'); **/ -#if 0 /* Nick very temporary */ - if (cmdblk[1] == 'W') - return 0; -#endif - -#if DEBUG >= 2 - dprintf(2, "scsiop: %c %u+%u,%u -> 0x%x\n", cmdblk[1], - (unsigned int)hd_sector, - (unsigned int)hd_offset, - (unsigned int)cmdblk[7], - (unsigned int)dptr); -#endif - - /* check for special hd_offset indicating the ramdrive is wanted */ - if (hd_offset == 0) - { - j = ((unsigned int)cmdblk[7]) << 9; - hd_sector = 0x40000L + (hd_sector << 9); - hd_offset = (((long)osBank) << 12) + (long)dptr; - - switch(cmdblk[1]) - { - case 'R': -/* dprintf(2, "R %08lx -> %08lx, %04x\n", hd_sector, hd_offset, j); */ - copyr(hd_sector, hd_offset, j); - break; - case 'W': -/* dprintf(2, "W %08lx -> %08lx, %04x\n", hd_offset, hd_sector, j); */ - copyr(hd_offset, hd_sector, j); - break; - } - - return 0; - } - - /* at this point partitioning doesn't matter, so clobber hd_sector */ - hd_sector += hd_offset; -/** abyte('a'); **/ - - apibus_priority(0x17); /* set device 7 = priority 1 (maximum) */ - - for (i = 0; i < cmdblk[7]; i++) - { -/** abyte('b'); **/ - cmdblk[2] = hd_sector; - cmdblk[3] = hd_sector >> 8; - cmdblk[4] = hd_sector >> 16; - cmdblk[5] = hd_sector >> 24; -/** abyte('c'); **/ - cmdblk[6] = 0xff - cmdblk[5] - cmdblk[4] - - cmdblk[3] - cmdblk[2]; -/** abyte('d'); **/ - -#if 0 - /* tell transmitter task waiting. */ - compactflash_tcbptr = activetcb; -#else - compactflash_enable = 1; /* prepare to receive esc sequence */ -#endif - -/* abyte('&'); */ - switch(cmdblk[1]) - { - - case 'R': -/** abyte('e'); **/ - if (K_Put_Str_Wait(10, cmdblk, 7, timecnt) != K_OK) - { -/** abyte('f'); **/ - /* set device 7 = priority 7 (minimum) */ - apibus_priority(0x77); - - return 1; - } -/** abyte('g'); **/ - break; - - case 'W': - if (K_Put_Str_Wait(10, cmdblk, 6, timecnt) != K_OK) - { - /* set device 7 = priority 7 (minimum) */ - apibus_priority(0x77); - - return 1; - } - - checksum = cmdblk[6]; - for (j = 0; j < 0x200; j += 0x20) - { - if (K_Put_Str_Wait(10, dptr + j, 0x20, timecnt) - != K_OK) - { - /* set device 7 = priority 7 (min) */ - apibus_priority(0x77); - - return 1; - } - for (k = 0; k < 0x20; k++) - { - checksum -= dptr[j + k]; - } -/* abyte('.'); */ - } - - if (K_Put_Char_Wait(10, &checksum, timecnt) != K_OK) - { - /* set device 7 = priority 7 (minimum) */ - apibus_priority(0x77); - - return 1; - } - break; - - } - -/* abyte('*'); */ -#if 0 - K_I_Disable_Sched(); /* set task block. */ - - /* see if still waiting for a response */ - K_OS_Disable_Interrupts(); /* DISABLE INTERRUPTS. */ - if (compactflash_tcbptr != NULL) - { - if (timecnt) /* wait on time too? */ - { - /* put task to sleep, indicating why */ - activetcb->tcbstate = WAIT | TIME; - } - else - { - /* put task to sleep, indicating why */ - activetcb->tcbstate = WAIT; - } - K_OS_Enable_Interrupts(); /* RE-ENABLE INTERRUPTS */ - - K_I_Insert_Link(timecnt); /* insert it into time link. */ - compactflash_tcbptr = NULL; /* task will return to here. */ - - K_I_Disable_Sched(); /* set task block. */ - if(K_I_Remove_Link()) /* remove from link. */ - { - /* set device 7 = priority 7 (minimum) */ - apibus_priority(0x77); - - K_I_Func_Return(); /* time out occurred. */ - return(K_TIMEOUT); - } - } - else - { - K_OS_Enable_Interrupts(); /* RE-ENABLE INTERRUPTS */ - } - K_I_Func_Return(); -#else - while (compactflash_enable) - ; /* rather primitive for the moment */ -#endif - - dptr += 0x200; - hd_sector++; - } -/** abyte(';'); **/ - - apibus_priority(0x77); /* set device 7 = priority 7 (minimum) */ - - return 0; - } - -void my_compactflash_in(SDEV *device, char c) - { - static char state = 0; - static char *dest; - static int count; - -#if 0 - if (compactflash_tcbptr == NULL) -#else - if (compactflash_enable == 0) -#endif - { -#if 0 - if (c == '0' || c == '1') - { - abyte(c + 6); - } -#endif - return; - } - - switch (state) - { - - case 0: - switch (c) - { - - case '0': - case '1': -#if 0 - abyte(c + 8); -#endif - break; - - case 0x1b: - state++; - break; - - } - break; - - case 1: - case 2: - case 3: - case 4: -#if 0 - if (state == 1) - { - abyte(c); - } -#endif - if (c == cmdblk[state]) - { - state++; - break; - } - state = 0; - break; - - case 5: - if (c == cmdblk[5]) - { - switch (cmdblk[1]) - { - - case 'R': - state = 6; /* reading, prepare for data xfer */ - dest = dptr; - count = 0x200; - break; - - case 'W': - state = 7; /* writing, skip data xfer step */ - break; - - default: - state = 0; /* should never get here */ - break; - - } - break; - } - state = 0; - break; - - case 6: - cmdblk[6] -= c; - *dest++ = c; -#if 0 - if ((count & 0x1f) == 0) - { - abyte('.'); - } -#endif - if (--count) - { - break; - } - state = 7; - break; - - case 7: - if (c == cmdblk[6]) - { -#if 0 - abyte('$'); -#endif -#if 0 - /* see if task waiting. */ - if (compactflash_tcbptr->tcbstate & WAIT) - { - /* yes, wake task. */ - device->xmit.tcbptr->tcbstate = RESUME; - if (compactflash_tcbptr->priority < - active_priority) - { - PREEMPTED; /*cmx_flag1 |= preempted;*/ /* yes, set preempted K_I_Scheduler flag */ - } - } - - compactflash_tcbptr = NULL; -#else - compactflash_enable = 0; /* command done ok */ -#endif - } -#if 0 - else { abyte('%'); } -#endif - /* we could also include retry stuff here */ - state = 0; - break; - - } - } - -void my_touchscreen_in(SDEV *device, char c) - { - static char state = 0; - static unsigned char message[8]; - - message[state] = c; - - switch (state) - { - - case 0: - switch (c) - { - - case 0x1b: - state++; - break; - - default: -#if 1 - (*tty_vector[6])(6, c); -#else - tty_inproc(2, c); -#endif - break; - - } - break; - - case 1: - if (c == 'T') - { - state++; - } - else - { - state = 0; - } - break; - - case 2: /* hour */ - case 3: /* mins */ - case 4: /* secs */ - case 5: /* month */ - case 6: /* day */ - state++; - break; - - case 7: /* year-1980 */ - tod.t_time = ((int)message[4] >> 1) | - ((int)message[3] << 5) | - ((int)message[2] << 11); - - tod.t_date = (int)message[6] | - ((int)message[5] << 5) | - ((int)message[7] << 9); - - state = 0; - break; - } - } - -void sttime(time_t *tvec) - { - char message[8]; - - message[0] = 0x1b; - message[1] = 'T'; - message[2] = (tvec->t_time >> 11) & 0x1f; /* hour */ - message[3] = (tvec->t_time >> 5) & 0x3f; /* mins */ - message[4] = (tvec->t_time << 1) & 0x3f; /* secs */ - message[5] = (tvec->t_date >> 5) & 0xf; /* month */ - message[6] = tvec->t_date & 0x1f; /* day */ - message[7] = (tvec->t_date >> 9) & 0x3f; /* year */ - - if (K_Put_Str_Wait(5, message, 8, 0x1000) != K_OK) - { - panic("can't sttime"); - } - } - -void hostname_setup(void) - { - register char i, j; - - for (i = 0; i < 5; i++) - { - if (rom_serial_no[i] != ' ') - { - break; - } - } - - j = 2; - while (i < 5 && rom_serial_no[i]) - { - HOST[j++] = rom_serial_no[i++]; - } - - HOST[j] = 0; - } - diff --git a/src/kernel/uzi/testsystem.c b/src/kernel/uzi/testsystem.c index 6c4ce833..c1d827f4 100644 --- a/src/kernel/uzi/testsystem.c +++ b/src/kernel/uzi/testsystem.c @@ -8,49 +8,284 @@ #include #include #include "devtty.h" +#include +#include +#include "kprintf.h" +#include "extern.h" +#include "devno.h" +#include "touchscreen.h" +#include "testsystem.h" + + +extern void _putc(int minor, char c); -void _putc(int minor, char c); void testsystem_rx_hook(SDEV *device, char c); void testsystem_rx_handler(SDEV *device, char c); -void (*save_rx_vector[PORTS])(SDEV *device, char c); +/* Testsystem defaults */ +tsysT tsys = { + 0, /* Testsystem not enabled */ + 0 /* No recording of RTC data */ + }; void testsystem_rx_handler(SDEV *device, char c) { - /* Do some special things */ + /* + * Receives and interprets the input stream from Serial 3, + * which is assumed to be simulated or recorded data, interleaved + * with special command sequences. + */ + static int state = 0, port = -1; + + if (tsys.enabled) + { + /* Hunt for a command or escaped sequence (starts with ESC) */ + if (c == 0x1b) + { + if (!state) + { + /* Start of command sequence */ + state = 1; + return; + } + else + { + /* Escaped sequence */ + state = 0; + } + } + else if (state) + { + switch (c) + { + case 'R': /* Toggle ext. RTC on/off */ + rtc.source = rtc.source == RTC_INT ? + RTC_EXT : + RTC_INT; + break; + case 'r': /* Toggle recording int. RTC on/off */ + tsys.rtc_rec = tsys.rtc_rec ? 0 : 1; + break; + default: /* 'Raw minor' device id */ + port = c; + } + + state = 0; + return; + } - /* For now, just simulate touchscreen */ - device->port = 5; - sdevs[device->port].rx_vector(device, c); + + /* + * First assume simulated INPUT from device + */ + switch (port) + { + case DEV_TS: /* Touchscreen */ + if (rtc.source == RTC_EXT && RTC_extract(c, RTC_EXT)) + break; + /* Fall through */ + case DEV_TP: /* Thermal printer */ + case DEV_S1: /* Serial 1 - scanner */ + case DEV_LC: /* Load cell */ + case DEV_CD: /* Customer display */ + port = _2SDEV(port); + sdevs[port].rx_vector(&sdevs[port], c); + break; + default: + /* + * Next, assume OUTPUT to device; + * Bring 'raw minor' device id in normal range + */ + port -= DEVOUT_BASE; + + switch (port) + { + case DEV_TS:/* Touchscreen */ + case DEV_TP:/* Thermal printer */ + case DEV_S1:/* Serial 1 - scanner */ + case DEV_LC:/* Load cell */ + case DEV_CD:/* Customer display */ +#ifdef RPB_DEBUG + kprintf("p=%d, c=0x%x\n", port, c); +#endif + _putc(port, c); + break; + default: + /* No such device */ + kprintf("testsystem_rx_handler: ERROR port = %d, c = %d\n", port, c); + } + } + } } + + void testsystem_rx_hook(SDEV *device, char c) { - /* For now, just echo character on serial 3 */ - _putc(4, c); + /* + * Tags each received character with its source device id. + * Escapes special characters in the data stream. + */ + static char current_port = 0; + char port; + + if (tsys.enabled) + { + port = _2MINOR(device->port); + + if (port != DEV_TS && + port != DEV_TP && + port != DEV_S1 && + port != DEV_LC && + port != DEV_CD) + { + /* Not supported yet or error */ + kprintf("testsystem_rx_hook p=0x%x\n", (int)c); + return; + } + +#if 0 + /* + * This part, remembering the current port, has problems + * with the testsystem_rx_handler() which keeps on + * interfering and overwrites 'current_port'. + * No solution to the problem yet (better understand it + * first), hence EACH received character output on S3 + * is tagged with the device id. + */ + + /* + * This may cause problems since all testsystem_rx_hooks + * access this same static current_port. Should be protected + * by a mutex => TODO + */ + if (port != current_port) + { + /* Insert minor device id before character received */ + _putc(DEV_S3, 0x1b); + _putc(DEV_S3, port); + current_port = port; + } +#endif - save_rx_vector[device->port](device, c); + /* Insert minor device id before character received */ + _putc(DEV_S3, 0x1b); + _putc(DEV_S3, port); + + /* Escape an ESC in the data stream */ + if (c == 0x1b) + _putc(DEV_S3, 0x1b); + + _putc(DEV_S3, c); + } + + /* Don't pass on RTC data */ + if (!rtc.seq) + wsdevs[device->port].saved_rx_vector[1](device, c); } void testsystem_init(void) { -#if 0 - int i; + /* + * Initialises testsystem + */ + char p; + + /* Configures which devices get the testsystem hook installed */ + wsdevs[_2SDEV(DEV_S1)].tsyshook = 1; + wsdevs[_2SDEV(DEV_LC)].tsyshook = 0; + wsdevs[_2SDEV(DEV_TS)].tsyshook = 1; + wsdevs[_2SDEV(DEV_CD)].tsyshook = 1; + wsdevs[_2SDEV(DEV_TP)].tsyshook = 1; - for (i = 0; i < PORTS; i++) + K_OS_Disable_Interrupts(); + + for (p = 0; p < PORTS; p++) { - save_rx_vector[i] = sdevs[i].rx_vector; + /* Skip Serial 3 itself */ + if (p != _2SDEV(DEV_S3)) + { + /* Install testsystem hook on selected ports */ + if (wsdevs[p].tsyshook) + { + if (wsdevs[p].saved_rx_vector[0]) + { + /* Install behind device special handler */ + wsdevs[p].saved_rx_vector[1] = wsdevs[p].saved_rx_vector[0]; + wsdevs[p].saved_rx_vector[0] = testsystem_rx_hook; + } + else + { + /* No device special handler */ + wsdevs[p].saved_rx_vector[1] = sdevs[p].rx_vector; + sdevs[p].rx_vector = testsystem_rx_hook; + } + } + } + else + { + /* Install testsystem RX handler on serial 3 */ + if (wsdevs[p].saved_rx_vector[0]) + { + /* Install behind device special handler */ + wsdevs[p].saved_rx_vector[1] = wsdevs[p].saved_rx_vector[0]; + wsdevs[p].saved_rx_vector[0] = testsystem_rx_handler; + } + else + { + /* No device special handler */ + wsdevs[p].saved_rx_vector[1] = sdevs[p].rx_vector; + sdevs[p].rx_vector = testsystem_rx_handler; + } + } } -#endif - /* For now, the test system only operates on the touchscreen */ - save_rx_vector[5] = sdevs[5].rx_vector; - sdevs[5].rx_vector = testsystem_rx_hook; + K_OS_Enable_Interrupts(); + tsys.enabled = 1; - /* And install testsystem rx handler on serial 3 */ - save_rx_vector[3] = sdevs[3].rx_vector; - sdevs[3].rx_vector = testsystem_rx_handler; + kprintf("Test system enabled\n"); } +void testsystem_exit(void) +{ + /* + * Disables the testsystem + */ + char p; + + K_OS_Disable_Interrupts(); + + for (p = 0; p < PORTS; p++) + { + /* Skip Serial 3 itself */ + if (p != _2SDEV(DEV_S3)) + { + /* De-install testsystem hook on selected ports */ + if (wsdevs[p].tsyshook) + { + if (wsdevs[p].saved_rx_vector[0]) + { + /* Remove behind device special handler */ + wsdevs[p].saved_rx_vector[0] = wsdevs[p].saved_rx_vector[1]; + } + else + { + /* No device special handler */ + sdevs[p].rx_vector = wsdevs[p].saved_rx_vector[1]; + } + } + } + else + { + /* Remove testsystem RX handler from Serial 3 */ + sdevs[p].rx_vector = wsdevs[p].saved_rx_vector[1]; + } + } + + K_OS_Enable_Interrupts(); + tsys.enabled = 0; + + kprintf("Test system disabled\n"); +} diff --git a/src/kernel/uzi/testsystem.h b/src/kernel/uzi/testsystem.h index 1e901a60..cd784bee 100644 --- a/src/kernel/uzi/testsystem.h +++ b/src/kernel/uzi/testsystem.h @@ -1,4 +1,13 @@ /* testsystem.h for uzi180 - testsystem definitions and declarations */ -extern void testsystem_init(); +typedef struct +{ + unsigned char enabled; /* status of test system */ + unsigned char rtc_rec; /* Internal RTC being recorded */ +} tsysT; + +extern tsysT tsys; + +extern void tsys_init(); +extern void tsys_exit(); diff --git a/src/kernel/uzi/touchscreen.c b/src/kernel/uzi/touchscreen.c index 31b42beb..0512ff67 100644 --- a/src/kernel/uzi/touchscreen.c +++ b/src/kernel/uzi/touchscreen.c @@ -8,57 +8,89 @@ #include #include #include "devtty.h" - -void sttime(time_t *tvec); -void touchscreen_rx_hook(SDEV *device, char c); -void (*touchscreen_save_rx_vector)(SDEV *device, char c); +#include "devno.h" +#include "touchscreen.h" +#include "testsystem.h" +/* RTC defaults */ +rtcT rtc = { + 0, /* No RTC sequence in progress */ + RTC_INT /* RTC source is internal */ + }; void touchscreen_init(void) { - touchscreen_save_rx_vector = sdevs[5].rx_vector; - sdevs[5].rx_vector = touchscreen_rx_hook; + K_OS_Disable_Interrupts(); + + /* Install touchscreen RX hook */ + wsdevs[_2SDEV(DEV_TS)].saved_rx_vector[0] = sdevs[_2SDEV(DEV_TS)].rx_vector; + sdevs[_2SDEV(DEV_TS)].rx_vector = touchscreen_rx_hook; + + K_OS_Enable_Interrupts(); } void touchscreen_rx_hook(SDEV *device, char c) - { - static char state = 0; - static unsigned char message[8]; +{ + /* Extract RTC data from input stream */ + if (!RTC_extract(c, RTC_INT)) + (*wsdevs[_2SDEV(DEV_TS)].saved_rx_vector[0])(device, c); - message[state] = c; + /* If the testsystem is recording, pass the RTC data on */ + else if (tsys.rtc_rec) + (*wsdevs[_2SDEV(DEV_TS)].saved_rx_vector[0])(device, c); +} - switch (state) - { +/* + * s: RTC source => s == RTC_INT : internal RTC + * s == RTC_EXT : external RTC +*/ +int RTC_extract(char c, char s) +{ + + static unsigned char state[2] = {0, 0}; + static unsigned char message[2][8]; + + message[s][state[s]] = c; + + switch (state[s]) + { case 0: switch (c) - { + { case 0x1b: - state++; + /* + * There's still a problem with this first ESC: + * it either IS or IS NOT given to the application + * depending on how the return code for this + * first ESC (1) is interpreted. + */ + state[s]++; + rtc.seq = 1; break; default: -#if 1 - (*touchscreen_save_rx_vector)(device, c); -#else - tty_inproc(2, c); -#endif - break; + /* Encountered no sequence at all */ + return(0); - } + } break; case 1: if (c == 'T') - { - state++; - } + { + state[s]++; + } else - { - state = 0; - } + { + state[s] = 0; + rtc.seq = 0; + /* Unknown ESC sequence */ + return(0); + } + break; case 2: /* hour */ @@ -66,25 +98,33 @@ void touchscreen_rx_hook(SDEV *device, char c) case 4: /* secs */ case 5: /* month */ case 6: /* day */ - state++; + state[s]++; break; case 7: /* year-1980 */ - tod.t_time = ((int)message[4] >> 1) | - ((int)message[3] << 5) | - ((int)message[2] << 11); - - tod.t_date = (int)message[6] | - ((int)message[5] << 5) | - ((int)message[7] << 9); + if (rtc.source == s) + { + tod.t_time = ((int)message[s][4] >> 1) | + ((int)message[s][3] << 5) | + ((int)message[s][2] << 11); - state = 0; - break; + tod.t_date = (int)message[s][6] | + ((int)message[s][5] << 5) | + ((int)message[s][7] << 9); } + + state[s] = 0; + rtc.seq = 0; + /* Encountered complete RTC sequence */ + return(2); } + /* Partial RTC sequence */ + return(1); +} + void sttime(time_t *tvec) - { +{ char message[8]; message[0] = 0x1b; @@ -96,9 +136,9 @@ void sttime(time_t *tvec) message[6] = tvec->t_date & 0x1f; /* day */ message[7] = (tvec->t_date >> 9) & 0x3f; /* year */ - if (K_Put_Str_Wait(5, message, 8, 0x1000) != K_OK) - { + if (K_Put_Str_Wait(_2SDEV(DEV_TS), message, 8, 0x1000) != K_OK) + { panic("can't sttime"); - } } +} diff --git a/src/kernel/uzi/touchscreen.h b/src/kernel/uzi/touchscreen.h index 5bc950a1..7c57599b 100644 --- a/src/kernel/uzi/touchscreen.h +++ b/src/kernel/uzi/touchscreen.h @@ -1,3 +1,17 @@ /* touchscreen.h for uzi180 - touchscreen definitions and declarations */ +#define RTC_INT 0 /* internal RTC */ +#define RTC_EXT 1 /* external RTC */ + +typedef struct +{ + unsigned char seq; /* RTC sequence in progress */ + unsigned char source; /* RTC source */ +} rtcT; + +extern rtcT rtc; + +extern int RTC_extract(char c, char s); +extern void sttime(time_t *tvec); extern void touchscreen_init(void); +extern void touchscreen_rx_hook(SDEV *device, char c); diff --git a/src/mkutil/revava-0.3/Avr.C b/src/mkutil/revava-0.3/Avr.C new file mode 100644 index 00000000..4f81c438 --- /dev/null +++ b/src/mkutil/revava-0.3/Avr.C @@ -0,0 +1,427 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Avr.C + Parts of this are Copyright (C) 1997-1999 Uros Platise + The rest of it is Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include /* Nick */ + +#include "Avr.h" +#include "Error.h" + +#define FALSE 0 +#define TRUE (!FALSE) + +//#define DEBUG_3 + +// The "---" entry at the end is necessary because of the way +// TAvr::Word2Instruction signals the calling function that no matching entry +// was found. It returns 0 to do that. If TAvr::InstSet[] had the "wdr" entry +// just before the NULL entry then an actual "wdr" causes 0 to be returned. +TAvr::TInstSet TAvr::InstSet [] = { + { "adc", "dr", "000111rdddddrrrr", ARG_0_31, ARG_0_31 }, // rol is a special case of adc + { "add", "dr", "000011rdddddrrrr", ARG_0_31, ARG_0_31 }, // Complement of lsl + { "adiw", "dK", "10010110KKddKKKK", ARG_24_26_28_30, ARG_0_63 }, + { "and", "dr", "001000rdddddrrrr", ARG_0_31, ARG_0_31 }, // tst is a special case of and + { "andi", "dK", "0111KKKKddddKKKK", ARG_16_31, ARG_0_255 }, // Complement of cbr + { "asr", "d", "1001010ddddd0101", ARG_0_31, ARG_none }, + { "bclr", "s", "100101001sss1000", ARG_0_7, ARG_none }, // clz is a special case of bclr + { "bld", "db", "1111100ddddd0bbb", ARG_0_31, ARG_0_7 }, + { "brbc", "sk", "111101kkkkkkksss", ARG_0_7, ARG_neg64_63 }, // brge, brid, brpl, brtc is a special case of brbc + { "brbs", "sk", "111100kkkkkkksss", ARG_0_7, ARG_neg64_63 }, // brcs, breq, brhs, brie, brlo, brlt, brts is a special case of brbs + { "brcc", "k", "111101kkkkkkk000", ARG_neg64_63, ARG_none }, + { "brcs", "k", "111100kkkkkkk000", ARG_neg64_63, ARG_none }, // brcs is a special case of brbs + { "breq", "k", "111100kkkkkkk001", ARG_neg64_63, ARG_none }, // breq is a special case of brbs + { "brge", "k", "111101kkkkkkk100", ARG_neg64_63, ARG_none }, // brge is a special case of brbc + { "brhc", "k", "111101kkkkkkk101", ARG_neg64_63, ARG_none }, + { "brhs", "k", "111100kkkkkkk101", ARG_neg64_63, ARG_none }, // brhs is a special case of brbs + { "brid", "k", "111101kkkkkkk111", ARG_neg64_63, ARG_none }, + { "brie", "k", "111100kkkkkkk111", ARG_neg64_63, ARG_none }, // brie is a special case of brbs + { "brlo", "k", "111100kkkkkkk000", ARG_neg64_63, ARG_none }, // brlo is a special case of brbs + { "brlt", "k", "111100kkkkkkk100", ARG_neg64_63, ARG_none }, // brlt is a special case of brbs + { "brmi", "k", "111100kkkkkkk010", ARG_neg64_63, ARG_none }, + { "brne", "k", "111101kkkkkkk001", ARG_neg64_63, ARG_none }, + { "brpl", "k", "111101kkkkkkk010", ARG_neg64_63, ARG_none }, // brpl is a special case of brbc + { "brsh", "k", "111101kkkkkkk000", ARG_neg64_63, ARG_none }, + { "brtc", "k", "111101kkkkkkk110", ARG_neg64_63, ARG_none }, // brtc is a special case of brbc + { "brts", "k", "111100kkkkkkk110", ARG_neg64_63, ARG_none }, // brts is a special case of brbs + { "brvc", "k", "111101kkkkkkk011", ARG_neg64_63, ARG_none }, + { "brvs", "k", "111100kkkkkkk011", ARG_neg64_63, ARG_none }, + { "bset", "s", "100101000sss1000", ARG_0_7, ARG_none }, + { "bst", "db", "1111101ddddd0bbb", ARG_0_31, ARG_0_7 }, +// { "call", "k", "1001010kkkkk111k", ARG_longCall, ARG_none }, // from ava: "Instruction not supported by selected model: call" + { "cbi", "Pb", "10011000PPPPPbbb", ARG_0_31, ARG_0_7 }, + { "cbr", "dK", "0111KKKKddddKKKK", ARG_16_31, ARG_cm0_cm255 }, // Complement of andi (Really Complement) + { "clc", "", "1001010010001000", ARG_none, ARG_none }, + { "clh", "", "1001010011011000", ARG_none, ARG_none }, + { "cli", "", "1001010011111000", ARG_none, ARG_none }, + { "cln", "", "1001010010101000", ARG_none, ARG_none }, + { "clr", "d", "001001CdddddCCCC", ARG_0_31, ARG_copyArg }, // Complement of eor + { "cls", "", "1001010011001000", ARG_none, ARG_none }, + { "clt", "", "1001010011101000", ARG_none, ARG_none }, + { "clv", "", "1001010010111000", ARG_none, ARG_none }, + { "clz", "", "1001010010011000", ARG_none, ARG_none }, // clz is a special case of bclr + { "com", "d", "1001010ddddd0000", ARG_0_31, ARG_none }, + { "cp", "dr", "000101rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "cpc", "dr", "000001rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "cpi", "dK", "0011KKKKddddKKKK", ARG_16_31, ARG_0_255 }, + { "cpse", "dr", "000100rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "dec", "d", "1001010ddddd1010", ARG_0_31, ARG_none }, + { "eor", "dr", "001001rdddddrrrr", ARG_0_31, ARG_0_31 }, // Complement of clr + { "icall","", "1001010100001001", ARG_none, ARG_none }, + { "ijmp", "", "1001010000001001", ARG_none, ARG_none }, + { "in", "dP", "10110PPdddddPPPP", ARG_0_31, ARG_0_63 }, + { "inc", "d", "1001010ddddd0011", ARG_0_31, ARG_none }, +// { "jmp", "k", "1001010kkkkk110k", ARG_longCall, ARG_none }, // from ava: "Instruction not supported by selected model: jmp" + { "ld", "dX", "1001000ddddd1100", ARG_0_31, ARG_specialX }, + { "ld", "dX", "1001000ddddd1101", ARG_0_31, ARG_specialIncX }, + { "ld", "dX", "1001000ddddd1110", ARG_0_31, ARG_specialDecX }, + { "ld", "dY", "1000000ddddd1000", ARG_0_31, ARG_specialY }, // ld4 is a special case of ldd1 + { "ld", "dY", "1001000ddddd1001", ARG_0_31, ARG_specialIncY }, + { "ld", "dY", "1001000ddddd1010", ARG_0_31, ARG_specialDecY }, + { "ld", "dZ", "1000000ddddd0000", ARG_0_31, ARG_specialZ }, // ld7 is a special case of ldd2 + { "ld", "dZ", "1001000ddddd0001", ARG_0_31, ARG_specialIncZ }, + { "ld", "dZ", "1001000ddddd0010", ARG_0_31, ARG_specialDecZ }, + { "ldd", "dY", "10Y0YY0ddddd1YYY", ARG_0_31, ARG_0_63 }, + { "ldd", "dZ", "10Z0ZZ0ddddd0ZZZ", ARG_0_31, ARG_0_63 }, + { "ldi", "dK", "1110KKKKddddKKKK", ARG_16_31, ARG_0_255 }, + { "lds", "dK", "1001000ddddd0000", ARG_0_31, ARG_longCall }, + { "lpm", "", "1001010111001000", ARG_none, ARG_none }, + { "lsl", "d", "000011CdddddCCCC", ARG_0_31, ARG_copyArg }, // Complement of add + { "lsr", "d", "1001010ddddd0110", ARG_0_31, ARG_none }, + { "mov", "dr", "001011rdddddrrrr", ARG_0_31, ARG_0_31 }, +// { "mul", "dr", "100111rdddddrrrr", ARG_0_31, ARG_0_31 }, // from ava: "Instruction not supported by selected model: mul" + { "neg", "d", "1001010ddddd0001", ARG_0_31, ARG_none }, + { "nop", "", "0000000000000000", ARG_none, ARG_none }, + { "or", "dr", "001010rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "ori", "dK", "0110KKKKddddKKKK", ARG_16_31, ARG_0_255 }, // Complement of sbr + { "out", "Pr", "10111PPrrrrrPPPP", ARG_0_63, ARG_0_31 }, + { "pop", "d", "1001000ddddd1111", ARG_0_31, ARG_none }, + { "push", "d", "1001001ddddd1111", ARG_0_31, ARG_none }, + { "rcall","k", "1101kkkkkkkkkkkk", ARG_neg2KB_2KB, ARG_none }, + { "ret", "", "1001010100001000", ARG_none, ARG_none }, + { "reti", "", "1001010100011000", ARG_none, ARG_none }, + { "rjmp", "k", "1100kkkkkkkkkkkk", ARG_neg2KB_2KB, ARG_none }, + { "rol", "d", "000111CdddddCCCC", ARG_0_31, ARG_copyArg }, // rol is a special case of adc + { "ror", "d", "1001010ddddd0111", ARG_0_31, ARG_none }, + { "sbc", "dr", "000010rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "sbci", "dK", "0100KKKKddddKKKK", ARG_16_31, ARG_0_255 }, + { "sbi", "pb", "10011010pppppbbb", ARG_0_31, ARG_0_7 }, + { "sbic", "pb", "10011001pppppbbb", ARG_0_31, ARG_0_7 }, + { "sbis", "pb", "10011011pppppbbb", ARG_0_31, ARG_0_7 }, + { "sbiw", "dK", "10010111KKddKKKK", ARG_24_26_28_30, ARG_0_63 }, + { "sbr", "dK", "0110KKKKddddKKKK", ARG_16_31, ARG_0_255 }, // Complement of ori + { "sbrc", "rb", "1111110rrrrr0bbb", ARG_0_31, ARG_0_7 }, + { "sbrs", "rb", "1111111rrrrr0bbb", ARG_0_31, ARG_0_7 }, + { "sec", "", "1001010000001000", ARG_none, ARG_none }, + { "seh", "", "1001010001011000", ARG_none, ARG_none }, + { "sei", "", "1001010001111000", ARG_none, ARG_none }, + { "sen", "", "1001010000101000", ARG_none, ARG_none }, + { "ser", "d", "11101111dddd1111", ARG_16_31, ARG_none }, + { "ses", "", "1001010001001000", ARG_none, ARG_none }, + { "set", "", "1001010001101000", ARG_none, ARG_none }, + { "sev", "", "1001010000111000", ARG_none, ARG_none }, + { "sez", "", "1001010000011000", ARG_none, ARG_none }, + { "sleep","", "1001010110001000", ARG_none, ARG_none }, + { "st", "Xr", "1001001rrrrr1100", ARG_specialX, ARG_0_31 }, /*DO NOT CHANGE THE ORDER!*/ + { "st", "Xr", "1001001rrrrr1101", ARG_specialIncX, ARG_0_31 }, + { "st", "Xr", "1001001rrrrr1110", ARG_specialDecX, ARG_0_31 }, + { "st", "Yr", "1000001rrrrr1000", ARG_specialY, ARG_0_31 }, // st4 is a special case of std1 + { "st", "Yr", "1001001rrrrr1001", ARG_specialIncY, ARG_0_31 }, + { "st", "Yr", "1001001rrrrr1010", ARG_specialDecY, ARG_0_31 }, + { "st", "Zr", "1000001rrrrr0000", ARG_specialZ, ARG_0_31 }, // st7 is a special case of std2 + { "st", "Zr", "1001001rrrrr0001", ARG_specialIncZ, ARG_0_31 }, + { "st", "Zr", "1001001rrrrr0010", ARG_specialDecZ, ARG_0_31 }, + { "std", "Yr", "10Y0YY1rrrrr1YYY", ARG_0_63, ARG_0_31 }, // st4 is a special case of std1 + { "std", "Zr", "10Z0ZZ1rrrrr0ZZZ", ARG_0_63, ARG_0_31 }, // st7 is a special case of std2 + { "sts", "Kd", "1001001ddddd0000", ARG_longCall, ARG_0_31 }, + { "sub", "dr", "000110rdddddrrrr", ARG_0_31, ARG_0_31 }, + { "subi", "dK", "0101KKKKddddKKKK", ARG_16_31, ARG_0_255 }, + { "swap", "d", "1001010ddddd0010", ARG_0_31, ARG_none }, + { "tst", "d", "001000CdddddCCCC", ARG_0_31, ARG_copyArg }, // tst is a special case of and + { "wdr", "", "1001010110101000", ARG_none, ARG_none }, + { "---", "", "", ARG_none, ARG_none }, + { "", "", "", ARG_none, ARG_none } +}; + +int TAvr::Word2Instruction( + TInstruction* pInstruction, + unsigned short code_word, + int index ){ + + TInstSet* pInstSet; + int match; + unsigned short mask; + unsigned short mask0; + unsigned short mask1; + unsigned short maskC; + int haveC; + unsigned short arg0 = 0; + unsigned short arg1 = 0; + unsigned short argC = 0; + char* pc; + + #ifdef DEBUG + printf( "DEBUG - Word2Instruction: Entering Function With index = %d\n", index ); + #endif + + // Look through the instruction set starting at index until we find a + // pInstSet->opcode[] that matches with our code_word. Return + // ( index + 1 ) of the Instruction found, or return 0 if there was + // no matching instruction between index passed in and the end of the + // array. + + if( index < 0 || + index >= (int)( sizeof( InstSet ) / sizeof( InstSet[ 0 ] ))){ + + char msg[ 80 ]; // FIXME - Magic Number + sprintf( msg, "Word2Instruction: illegal index: %d\n", index ); + throw TGenericError( msg ); + } + + pInstSet = &InstSet[ index ]; + match = FALSE; + while( !match && '\0' != pInstSet->name[ 0 ] ){ + + // Kludgy fix for the kludgy "---" instruction thing. We have to + // increment pInstSet and bust out of this loop to avoid matching on + // "---". + if( 0 == strcmp( "---", pInstSet->name ) ){ + pInstSet++; + break; + } + + haveC = FALSE; + + match = TRUE; + pc = pInstSet->opcode; + mask = 0x8000; + while( *pc ){ + + if( '0' == *pc ){ + // Current bit of opcode is a 0 + if( code_word & mask ){ + // Current bit of code_word is a 1 + match = FALSE; + break; + } + } else if( '1' == *pc ){ + // Current bit of opcode is a 1 + if( !( code_word & mask ) ){ + // Current bit of code_word is a 0 + match = FALSE; + break; + } + } + + // Go to the next bit + pc++; + mask >>= 1; + } + + if( match ){ + + #ifdef DEBUG + printf( "DEBUG - Word2Instruction: We Have A Match at index = %d\n", index ); + #endif + + strcpy( pInstruction->name, pInstSet->name ); + pInstruction->arg0_format = pInstSet->arg[ 0 ]; + pInstruction->arg1_format = pInstSet->arg[ 1 ]; + pInstruction->arg0_type = pInstSet->arg0_type; + pInstruction->arg1_type = pInstSet->arg1_type; + + #ifdef DEBUG_2 + printf( "pInstSet->name = %s\n", pInstSet->name ); + printf( "pInstSet->opcode = %s\n", pInstSet->opcode ); + printf( "pInstSet->arg[ 0 ] = '%c'\n", pInstSet->arg[ 0 ] ); + printf( "pInstSet->arg[ 1 ] = '%c'\n", pInstSet->arg[ 1 ] ); + #endif + + // The args are hard to get out of the code_word. We will use a + // process borrowed from above. One big difference though is that + // here we start on the least significant bit. + pc = pInstSet->opcode + 15; + mask = 0x0001; + arg0 = 0; + arg1 = 0; + argC = 0; + mask0 = 0x0001; + mask1 = 0x0001; + maskC = 0x0001; + while( pc >= pInstSet->opcode ){ + + #ifdef DEBUG_2 + printf( "*pc = %c\n", *pc ); + printf( "mask = 0x%04X\n", mask ); + printf( "arg0 = 0x%04X\n", arg0 ); + printf( "arg1 = 0x%04X\n", arg1 ); + printf( "argC = 0x%04X\n", argC ); + printf( "mask0 = 0x%04X\n", mask0 ); + printf( "mask1 = 0x%04X\n", mask1 ); + printf( "maskC = 0x%04X\n", maskC ); + #endif + + if( ARG_none != pInstSet->arg0_type && pInstSet->arg[ 0 ] == *pc ){ + + // Current bit of opcode is current bit of arg0 + if( code_word & mask ){ + arg0 |= mask0; + } + + mask0 <<= 1; + + } else if( ARG_none != pInstSet->arg1_type && pInstSet->arg[ 1 ] == *pc ){ + + // Current bit of opcode is current bit of arg1 + if( code_word & mask ){ + arg1 |= mask1; + } + + mask1 <<= 1; + } else if( 'C' == *pc ){ + + // We have to test and see if C equals arg[ 0 ] + if( code_word & mask ){ + argC |= maskC; + } + + haveC = TRUE; + maskC <<= 1; + } + + // Go to the next higher bit in the opcode + mask <<= 1; + pc--; + } + + pInstruction->arg0 = AdjustArg( arg0, pInstSet->arg0_type ); + pInstruction->arg1 = AdjustArg( arg1, pInstSet->arg1_type ); + + // If we're trying for a C equals arg[ 0 ] instruction this will + // correctly set match + match = !( haveC ) || ( argC == arg0 ); + } + + pInstSet++; + index++; + } + + if( '\0' == pInstSet->name[ 0 ] ) + index = 0; + + #ifdef DEBUG_3 + printf( "DEBUG - Word2Instruction Ending with index = %d\n", index ); + printf( "DEBUG - pInstruction->name = %s\n", pInstruction->name ); + printf( "DEBUG - pInstruction->arg0_format = '%c'\n", pInstruction->arg0_format ); + printf( "DEBUG - pInstruction->arg1_format = '%c'\n", pInstruction->arg1_format ); + printf( "DEBUG - pInstruction->arg0_type = %d\n", pInstruction->arg0_type ); + printf( "DEBUG - pInstruction->arg1_type = %d\n", pInstruction->arg1_type ); + printf( "DEBUG - pInstruction->arg0 = 0x%02X\n", pInstruction->arg0 ); + printf( "DEBUG - pInstruction->arg1 = 0x%02X\n", pInstruction->arg1 ); + #endif + + return( index ); +} + +unsigned short TAvr::AdjustArg( unsigned short arg, eArgTypes eArgType ){ + + switch( eArgType ){ + + case ARG_16_31: + arg += 16; + break; + + case ARG_neg64_63: + + // Take times 2 (because in the assembler source + // "brbc 0, -1" and "brbc 0, -2" are the same thing), + // and then sign extend it. + arg <<= 1; + + if( 0x80 & arg ) + arg |= 0xFF00; + + break; + + case ARG_cm0_cm255: + // complement bits + break; + + case ARG_neg2KB_2KB: + + // Take times 2 (because in the assembler source + // "rcall 2" and "rcall 3" are the same thing), + // and then sign extend it. + arg <<= 1; + + if( 0x1000 & arg ) + arg |= 0xF000; + + break; + + case ARG_24_26_28_30: + // 0 => 24 + // 1 => 26 + // 2 => 28 + // 3 => 30 + arg = 2 * ( arg + 12 ); + break; + + case ARG_specialX: + case ARG_specialY: + case ARG_specialZ: + arg = (unsigned short)' '; + break; + + case ARG_specialIncX: + case ARG_specialIncY: + case ARG_specialIncZ: + arg = (unsigned short)'+'; + break; + + case ARG_specialDecX: + case ARG_specialDecY: + case ARG_specialDecZ: + arg = (unsigned short)'-'; + break; + + + case ARG_none: + case ARG_0_31: + case ARG_0_7: + case ARG_0_63: + case ARG_0_255: + case ARG_longCall: + case ARG_copyArg: + // Do nothing + break; + + default: { + + char msg[ 80 ]; // FIXME - Magic Number + sprintf( msg, "AdjustArg: Unhandled Arg Type: %d\n", eArgType ); + throw TGenericError( msg ); + + break; + } + } + + return arg; +} diff --git a/src/mkutil/revava-0.3/Avr.h b/src/mkutil/revava-0.3/Avr.h new file mode 100644 index 00000000..c440ef97 --- /dev/null +++ b/src/mkutil/revava-0.3/Avr.h @@ -0,0 +1,91 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Avr.h + Parts of this are Copyright (C) 1997-1999 Uros Platise + The rest of it is Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __AVR +#define __AVR + +class TAvr{ + + public: + + enum eArgTypes { + ARG_none, + ARG_0_31, /* registers and constants */ + ARG_0_7, + ARG_0_63, + ARG_16_31, /* registers only */ + ARG_0_255, + ARG_neg64_63, + ARG_cm0_cm255, /* complement bits */ + ARG_neg2KB_2KB, + ARG_24_26_28_30, + ARG_longCall, + ARG_copyArg, + ARG_specialX, + ARG_specialIncX, + ARG_specialDecX, + ARG_specialY, + ARG_specialIncY, + ARG_specialDecY, + ARG_specialZ, + ARG_specialIncZ, + ARG_specialDecZ + }; + + // It was actually kind of dumb to make this structure since by the + // time I was done I basically just copied most of TInstSet to this. + struct TInstruction { + char name[ 6 ]; + char arg0_format; + char arg1_format; + eArgTypes arg0_type; + eArgTypes arg1_type; + unsigned short arg0; + unsigned short arg1; + }; + + TAvr (){} + ~TAvr (){} + + int TAvr::Word2Instruction( + TInstruction* pInstruction, + unsigned short code_word, + int index ); + + private: + + unsigned short AdjustArg( unsigned short arg, eArgTypes eArgType ); + + // protected, not private, so make_test_source can use it. + protected: + + struct TInstSet { /* instruction entry */ + char name[ 6 ]; + char arg[ 4 ]; + char opcode[ 17 ]; + eArgTypes arg0_type; + eArgTypes arg1_type; + }; + + static TInstSet InstSet []; +}; + +#endif diff --git a/src/mkutil/revava-0.3/Avr.o b/src/mkutil/revava-0.3/Avr.o new file mode 100644 index 0000000000000000000000000000000000000000..ad1378f4dc30888bca0486c0f37d84e3c00eee54 GIT binary patch literal 10005 zcmcgyZH!da89u{|>w>GZ;EYzro|sMY%#5=N{OLvpXZ!&&;6LY z*fdQK%)Re@&vV}I^RahkZKPAM&HIuN%Ow>P3v2oDnxxfb@+=`9pCv@%BK4faEg{6+ z3v-!TMzQ4e7(@-Vdl(>B2r;>E#IpR{)~8*-UEAyDuf=2Ug?`=&;(B^~%z1d)Mcfw^ zJBHhePRd)N82U=w0pP9-;;vuh!!aTUfg8}c2%Zz2;@GvRWXcOn;9(NDO&W&~X}vK-|Lnb4yIv+-G@s@*KCu(m(~@QX z`6UMV!)N0Y!x)fy^JUh=OJbK0_7gP-Y7Wk^e-}U0H)mq9Hh+0CK5->r%Tw_Qf%}bb zOvMk)nwT7YuYPhgIo;p2=hbddm&6Z6!F+0BGXD50@k4)DbIEX5qrYqS&uQm3?@AB9 z3c!hX?K`_;jsA|*Njuhk99l(VT}S-TVB5ai+HgC2-)(0%2QO^&U2LyxZ}cVXl^rii z+jy~GsK7Ritnb2I^6eLjlC|^`yS~F^ZUt%A$8n86)Q_PJ>tZ*4^^@=iOgOQmuPr_? z1<`vROo-a-C4FbdCl2Cqd0%b&EzQ{MrJuwPzi$1;u64IJ*0ne4)Nglm+pD@`$3Ldr z(T>gbO`WNejsAA{)2P!L_R{oK-R;MZ60{Sbo98y_jBI_fc7c+!d1;+y#_LBuot~Bn zm^uim-ee|g9Sv#zY>82>%JGUFnT#KvR1QuJO?wA12(zUb4H*!PBzx*AACfVgEj?<; zcxoisQvyi)q^>u_Y3dzVh9FM;!&n%ve*|ReyDw0 zB_fL@xyOSym|jSyMHaFg*fq6^ZCnZxXx$uV)Xykeq;B$0!!QG`mbs~ z1n>g@pW83RteQLT#8d8kIg-HG6W=!VaO7${Pwha7sI(thz~>^K8S(GZ@tp^Ba+h77pgBLL`&PR4P@?u~pH8K-tMp zCYN(D0EJ@;+aYHS7F@^yD7j`$F1H3vh}js;eG1iQa@w7+DLD>lI zI~fbc3CdEsl7!@_RoROUF_J9;#G{PHBvY1UQLErGFWX2_+A{(STT;sz83BjB6E{*F zL4d4#6(*UwS2f5|{cQ?^Cxc0bW3rF~F;bV2BkiFKwvlQUaty|i6Tsx}3&p^9SI(Ba z2jkcb2fdiBVfM%vx^lLL*%QDN5JY3M(UtPqQ}Ej3_=S*r?J1T$avV&+_actEMwf#L z__Yo7(}F>9cy*P$_Bb}9ZoQaF(IdxT{Bo?VVHkg$YoT%W%c+IN*^e0ulY>d(wRtQ| zjvr&?5ktVtyhygr3yXhIfBDgD+_FW4SvG?Kk~q!AEnB2LY%WI5X&oatIdodn~Ra|`E-pbh>KyM0)9Qvf@$%+ybYL^^-#*;I>wf*@anAd z$hUFQY4TozLZ^E}(UMWSkixcMZ>%WiD`0 zxd^kTkj)e^QC&F}MOPGl21H4lxzZFE-W{|1qC*P;q%JTC76a4K@H_>qc>g zbBp6Us^1I@+jB30nAewnt=fxAFFEaFjve+McQL*cIpt3bZxGTazAx3YTp6GgQ?2-uJ(6x zijoH|A^%!}DpBPYC!3Qm`tQ#dFnYuAV3<}KS_Et^=JRUh(Dumw07g!)JLG()%PJQH3c>x2^IaYxMF7uzZ@5&zTZ!H+t9)R)g^)oQkb-oX?DWHo*B*fe>jL}8Igt*`{Fx18U zP1(%#K>5WzPWvVIIL;dvqwL`xr)ysBaW01Svj)Ow4E{TN0d#Til5$2dwVbsDX$oCi zM!9h4wPl8LowYqv0S2<9E@vHsTBQdaqNe_K042>yhOLL&xxLAz<-n$3J@dWt|DsJ# zN3VDoLAc5hwgi#m#{V@&aE*SDoq*0i04RH(V%(n753={axZqtHUY)A9c*C#m-|v04 z``d@7DAV(5#@qiN;`h8iud%)zubg)s;afs6dJ*0MHgAdXWz{Y?VqQS; zBC?}hzf0&iE4D9k4fqLs2KYhbW4H@x_Id3Sv-k#7oEwXA=h$=B!?C?l;)y*9>_ONY zyBZHI_|Jp6H~MgF&sh(Gx&)s#@sOdu1?tO^cM&8k1JxzYfjq^#6coP>=@M6hVvV$k zWuO#p9VmX8(NfEtC`=2C{TP(e#@D8bqU(x^ z8LHh-9fs;ORF|RV8R}v~B@D&4!b5^k-?q!U1oIx#>BUTySI>Q4Y zdhltJ)xJG{Sg0JudYVjp1ycNzU6E zBPB%WFDJZej>Nxf40rZugjcsYn07skCxoc}M%+O;n6GFIwL~MI!`0R0P&XKi6OHwn z!}n6rh;sr_vYk=)8H_WEUzV_)gHJRvh^rezXVmisW z4EAc5xoXa2^KAx0Io@9kFx=6|vwDW%K{xNO1!zPxa;($obMD?>3Q$2*=g#SO?gg!# zQHe%YJ8a+mL5-o3XoTN2vm*Vit}(Pn1?GU}5UV&p&>YsP;=H0ctW3puTXR^4it|^^ zVZABNr<%hWP@D@)QWIj<44z(UFwUr3S~#^9&Lf5c$z11r#B642=4Ws z9{;W{OA147^`8b-rTWKIxrOv4eSQ8@MPOi{^GqWbSM!x}wbnndG@Z6?TD`V^aj)yp zYQK5j4!;Ux^w3~S4ETE+MrSZ6EWb6qxtiIQ7ik2dcL+;xYH{$_5B&qT4yG~C^Mi=DlM5Z)kh`&Vq z>cf&LMSM2Qtw=vsniwL(@MYqbns3efYe?AAJiajJ_vKcKan6LFSvaOSk%$6chNME4k=wRxJ3l^;6`K`s^^`-6jWls7Vd23YF^3aA`Q^|BX zJ3gKnDU793*Mlx*EGu0@MAC)Q=CZcf2kXHQs}P1vZy6s?SMpV>T*?#+wfoa!NvMVV mOu8~!&8No-)!JyL= + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/src/mkutil/revava-0.3/Error.h b/src/mkutil/revava-0.3/Error.h new file mode 100644 index 00000000..1c1e28b3 --- /dev/null +++ b/src/mkutil/revava-0.3/Error.h @@ -0,0 +1,99 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Error.h + Parts of this are Copyright (C) 1997-1999 Uros Platise + The rest of it is Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __ERROR +#define __ERROR + +#include + +/* Global Error Class - Abstract Type */ +class TGlobalError{ + public: + TGlobalError(){} + virtual ~TGlobalError(){} + virtual void report(FILE* fd=stderr) = 0; +}; + +/* Generic Error Class */ +class TGenericError : public TGlobalError{ + public: + TGenericError(const char* msg){ + strcpy( errmsg, msg ); + op[0] = '\0'; + } + + TGenericError(const char* msg, const char* _op){ + strcpy( errmsg, msg ); + strcpy( op, _op ); + } + + ~TGenericError(){} + + void report(FILE* fd=stderr){ + if( op[0] == '\0' ){ + fprintf (fd, "Fatal Error: %s\n", errmsg); + } else { + fprintf (fd, "Fatal Error: %s: %s\n", errmsg, op); + } + } + + void prepend_message( const char* msg ){ + char temp[256]; + sprintf( temp, "%s%s", msg, errmsg ); + strcpy( errmsg, temp ); + } + +// void append_message( const char* msg ){ +// sprintf( errmsg, "%s%s", errmsg, msg ); +// } + + private: + char errmsg[256]; + char op[256]; +}; + +/* File Error Class */ +class TFileError: public TGlobalError{ + public: + TFileError(const char *msg, const char* _op=NULL){ + errmsg = msg; + op = _op; + } + + void report(FILE* fd=stderr){ + + if ( op == NULL ){ + fprintf ( fd, "Fatal Error: %s, ", errmsg); + } else { + fprintf( fd, "Fatal Error:%s %s, ", errmsg, op); + } + + perror( "" ); + } + + ~TFileError (){} + + private: + const char* errmsg; + const char* op; +}; + +#endif diff --git a/src/mkutil/revava-0.3/Flash.C b/src/mkutil/revava-0.3/Flash.C new file mode 100644 index 00000000..01000f46 --- /dev/null +++ b/src/mkutil/revava-0.3/Flash.C @@ -0,0 +1,268 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Flash.C, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include "Error.h" +#include "Flash.h" + +#define FALSE 0 +#define TRUE (!FALSE) + +TFlash::TFlash(){ + // Clear the Arrays because I don't remember what the rules of + // C++ are on this. + memset( (void *)code_space, 0, sizeof( code_space )); + memset( (void *)code_byte_written, 0, sizeof( code_byte_written )); +} + +void TFlash::FlipEndian( void ){ + int i; + unsigned char temp; + + for( i = 0; i < FLASH_SIZE; i += 2 ){ + temp = code_space[ i ]; + code_space[ i ] = code_space[ i + 1 ] ; + code_space[ i + 1 ] = temp; + } +} + +void TFlash::flashset( + unsigned short addr, + unsigned char nbytes, + const unsigned char* data){ + + int* pi; + unsigned char* pc; + + pi = code_byte_written + addr; + pc = code_space + addr; + + // Check boundries + if(( addr + nbytes ) > FLASH_SIZE ){ + char msg[ 80 ]; // FIXME - Magic Number + sprintf( + msg, + "Address: %04X, Offset: %02X exceeds FLASH_SIZE: %04X", + addr, nbytes - 1, FLASH_SIZE); + throw TGenericError( msg ); + } + + while( nbytes-- ){ + // Increment counter for this byte, then increment the pointer + // to the byte counter. + ++( *( pi++ ) ); + + *pc++ = *data++; + } +} + +unsigned short TFlash::get_flash_word( + unsigned short addr, + int* high_byte_written, + int* low_byte_written ){ + + // Check boundry + if(( addr + 1 ) >= FLASH_SIZE ){ + char msg[ 80 ]; // FIXME - Magic Number + sprintf( + msg, + "get_flash_word: Word Address: %04X, exceeds FLASH_SIZE: %04X", + addr, FLASH_SIZE); + throw TGenericError( msg ); + } + + *high_byte_written = code_byte_written[ addr ]; + *low_byte_written = code_byte_written[ addr + 1 ]; + + return( ( code_space[ addr ] << 8 ) | code_space[ addr + 1 ] ); +} + +void TFlash::Dump( void ){ + char code_line[ 60 ]; // FIXME - Magic Number + char ascii_line[ 20 ]; // FIXME - Magic Number + char* pcode_line; + char* pascii_line; + unsigned char c1; + unsigned char c2; + int have_data; + + int i; + int j; + + for( i = 0; i < FLASH_SIZE; i += 0x10 ){ + + pcode_line = code_line; + pascii_line = ascii_line; + have_data = FALSE; + + for( j = 0; j < 0x8; j += 2 ){ + + c1 = code_space[ i + j ]; + c2 = code_space[ i + j + 1 ]; + + sprintf( pcode_line, "%02X%02X ", c1, c2 ); + + sprintf( + pascii_line, + "%c%c", + c1 >= (unsigned char)' ' && c1 <= (unsigned char)'~' ? c1 : '.', + c2 >= (unsigned char)' ' && c2 <= (unsigned char)'~' ? c2 : '.' ); + + // Cover them up if they weren't really there. + if( code_byte_written[ i + j ] ){ + have_data = TRUE; + } else { + *( pcode_line + 0 ) = '-'; + *( pcode_line + 1 ) = '-'; + *( pascii_line + 0 ) = ' '; + } + + if( code_byte_written[ i + j + 1 ] ){ + have_data = TRUE; + } else { + *( pcode_line + 2 ) = '-'; + *( pcode_line + 3 ) = '-'; + *( pascii_line + 1 ) = ' '; + } + + pcode_line += 5; + pascii_line += 2; + } + + *pascii_line++ = ' '; + + while( j < 0x10 ){ + + c1 = code_space[ i + j ]; + c2 = code_space[ i + j + 1 ]; + + sprintf( pcode_line, " %02X%02X", c1, c2 ); + + sprintf( + pascii_line, + "%c%c", + c1 >= (unsigned char)' ' && c1 <= (unsigned char)'~' ? c1 : '.', + c2 >= (unsigned char)' ' && c2 <= (unsigned char)'~' ? c2 : '.' ); + + // Cover them up if they weren't really there. + if( code_byte_written[ i + j ] ){ + have_data = TRUE; + } else { + *( pcode_line + 1 ) = '-'; + *( pcode_line + 2 ) = '-'; + *( pascii_line + 0 ) = ' '; + } + + if( code_byte_written[ i + j + 1 ] ){ + have_data = TRUE; + } else { + *( pcode_line + 3 ) = '-'; + *( pcode_line + 4 ) = '-'; + *( pascii_line + 1 ) = ' '; + } + + pcode_line += 5; + pascii_line += 2; + j += 2; + } + + if( have_data ){ + printf( "%04X: %s %s\n", i, code_line, ascii_line ); + } + } +} + +void TFlash::DebugDump( void ){ + char code_line[ 60 ]; // FIXME - Magic Number + char flag_line[ 20 ]; // FIXME - Magic Number + char ascii_line[ 20 ]; // FIXME - Magic Number + char* pcode_line; + char* pflag_line; + char* pascii_line; + unsigned char c1; + unsigned char c2; + + int i; + int j; + + for( i = 0; i < FLASH_SIZE; i += 0x10 ){ + + pcode_line = code_line; + pflag_line = flag_line; + pascii_line = ascii_line; + + for( j = 0; j < 0x8; j += 2 ){ + + c1 = code_space[ i + j ]; + c2 = code_space[ i + j + 1 ]; + + sprintf( pcode_line, "%02X%02X ", c1, c2 ); + + pcode_line += 5; + + sprintf( + pflag_line, + "%1.1d%1.1d", + code_byte_written[ i + j ], + code_byte_written[ i + j + 1 ] ); + + pflag_line += 2; + + sprintf( + pascii_line, + "%c%c", + c1 >= (unsigned char)' ' && c1 <= (unsigned char)'~' ? c1 : '.', + c2 >= (unsigned char)' ' && c2 <= (unsigned char)'~' ? c2 : '.' ); + + pascii_line += 2; + } + + *pflag_line++ = ' '; + *pascii_line++ = ' '; + + while( j < 0x10 ){ + + c1 = code_space[ i + j ]; + c2 = code_space[ i + j + 1 ]; + + sprintf( pcode_line, " %02X%02X", c1, c2 ); + + pcode_line += 5; + + sprintf( + pflag_line, + "%1.1d%1.1d", + code_byte_written[ i + j ], + code_byte_written[ i + j + 1 ] ); + + pflag_line += 2; + + sprintf( + pascii_line, + "%c%c", + c1 >= (unsigned char)' ' && c1 <= (unsigned char)'~' ? c1 : '.', + c2 >= (unsigned char)' ' && c2 <= (unsigned char)'~' ? c2 : '.' ); + + pascii_line += 2; + j += 2; + } + + printf( "%04X: %s %s %s\n", i, code_line, flag_line, ascii_line ); + } +} diff --git a/src/mkutil/revava-0.3/Flash.h b/src/mkutil/revava-0.3/Flash.h new file mode 100644 index 00000000..11a1bc82 --- /dev/null +++ b/src/mkutil/revava-0.3/Flash.h @@ -0,0 +1,55 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Flash.h, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __EEPROM +#define __EEPROM + +// Code Size is 8K Flash +#define FLASH_SIZE ( 0x2000 ) + +/* Flash Class */ +class TFlash{ + + public: + + TFlash(); + ~TFlash(){} + + void FlipEndian( void ); + + void flashset( + unsigned short addr, + unsigned char nbytes, + const unsigned char* data); + + unsigned short get_flash_word( + unsigned short addr, + int* high_byte_written, + int* low_byte_written ); + + void Dump( void ); + void DebugDump( void ); + + private: + + unsigned char code_space[ FLASH_SIZE ]; + int code_byte_written[ FLASH_SIZE ]; +}; + +#endif diff --git a/src/mkutil/revava-0.3/Flash.o b/src/mkutil/revava-0.3/Flash.o new file mode 100644 index 0000000000000000000000000000000000000000..c3a3015e77f03b5d4e90ef5fb19ed533794009f8 GIT binary patch literal 6829 zcmcIoe{2)i9e)>Jf}x=fTQ;>L+pd%8kOm=60u8L)f`~&|LzgWMMQzRDBo48bCXsy( zVIsw;WAN>8m8xXok1|c_DlxU%vvNz|zZAb(scUX| zit@~eI`ta2=e-*lny9|p?bL5*ch6Ly!BS7lQ?p-YY*s&a@^YDeVT#2VyZ&bEMvk?vryC!(~rt?zhP?b!6VSJ2o*YM7;7|0<1#`9HR$W9;fH zNNB_BbiF!SX+*1C>CURu{$u2Qs%C*J{idE6|4%k6-F%3kJuWqi?{U2hb_2|viccih8XjS#m**y)$5rZONc&qd}!&_~gsK7XKM7Ih^PJ_pXZM;3g%f^8qM8qSwxi2_0x|gWgpK#wyb+u zH{;nzZAM9o9E>Qq7BO@Gd8T;=zCbII*qzO0Q)!4S^#;{5-Wc6H)5d0}o){r*^spgl zqeBVW25`F4VNFIr=KgmdG8bn$W~|UvJ$(sZ71@*bFXC$*MvvLB)K7-HC`B_ zMM%8o8vnh-=YX1F>5cI?Ep1}jHU45=5$E$Ni)YH?GiCAP)W-tXv&(VIcqf!MC{;0O zohwqK$#|wZKC{p~FYYk&7BTZb70&!j(ko`(_NmYOmv9@aS3GlV)CA|4wafMF3R*{R zEHNGZN}R89)!1>$3EC{KXFtGx9Xm~#!jBgm2p?c}W;#TZc#KqHmE@H7FfA5e+AGJ* zbQ0%Xrq!`B(<-mbY?PGCyU_2I#ksA{@0nH!`m&Xo1KhN|19n3#Vmsz=PB*+-4j>FECJ{7y7Bvai$C~5VCkEC3Lc=}Q&$bW-7L}|$F z%W3QU3Qu3@O=J8yrie`dksnYvYj}ub|K4VZE*tqlL>tK3JbcvR{ewr!WX_v-ri}Lz zPmmADf4U+6zla;oG337^i^T`B-4>3nj4$(OIpj=T9!kr%*6l@O) z3bOupSQ0Z+a4=|i796L{5V@bktrAb(Dl@E6Ii&AwmphQotl zI-3`mf{sfJnrdT zsIaYjo&L+zW8O8J{(t1huik?VXLu`PQ}jB)qD!%VQs0tkAH?x#M9*CwR{jv?D*h<` z0kMg6K#;`7xboWqZzd+3=8SW9YI+)c8-oMEaHyLv0Q1!QHuev81^Pvk(f1A&>HF<% zOxo?_Z^DdKmdi6oDa@Zb7!uCZAo3^muSXc#8MDRk8M1Kb?jE+Nry=!5YEo>KVGtO7#0szIvr_B=`cM`aWw!7|_)N)5pQ#mmh9U+l(f%68e5lR1 zSXgaus6U7nmD^dyc1W%C)?d3pKvw-2Z5I@YDg3AtEqlEKoLG*-RXfQF7q{ZbbHuSB zuMh{N9G63?Monua3euIAjLD%r>X2wXa+Sv|9P0d7IqByX z2W!DQ$e0K=60E3yGZ+Q-?^~Rl)h!dbi(7S|&PU!=M@molaGhTxHtOPl2Aqsj{hr*!&trw$EA%w~W8;6ifHbjjSn(=;mOOS{b?jG7j z#weVlKHk&cJ}dx^WYKHwj_z)ielHAZsut+N3B_01tv>GCQvBvnps~M0@C1U%qxN@; z7LRvWB-b3eI-Ab^j#6Y;q`Z^mns9JvFsymo*Q#oybyJ&nO=EsSo9yltD(pj8PWw7a zVnBbhDLNg+odx^U-f-ZlAX5>DH9mg0Z>YyC3)>Wtg0`owwLdiE9q0)K2JD(9{!0jd z+Pqp{`y+jMU*}(yO(nk4A9b;k_Vp_Cpwa&S$*Z-8I_lIyCmUO$PYv0 +#include /* Nick */ + +#include "Error.h" +#include "IntelHex.h" + +static unsigned char Ascii2Hex(const char* ps){ + unsigned char retval; + + retval = *ps < 'A' ? *ps - '0' : *ps - 'A' + 0xA; + retval <<= 4; + ps++; + retval |= *ps < 'A' ? *ps - '0' : *ps - 'A' + 0xA; + + return( retval ); +} + +void TIntelHexRecord::StringToRecord(const char* ps){ + const char* pc; + unsigned char uc; + unsigned char cs = 0; + unsigned char n; + + pc = ps; + + if( *pc++ != ':' ){ + char msg[ 80 ]; // FIXME - Magic Number + sprintf( msg, + "StringToRecord: Invalid Record (doesn't begin with ':'):\n" + "\"%s\"", ps ); + throw TGenericError( msg ); + } + + nbytes = Ascii2Hex( pc ); + cs -= nbytes; + pc += 2; + + uc = Ascii2Hex( pc ); + cs -= uc; + addr = uc << 8; + pc += 2; + + uc = Ascii2Hex( pc ); + cs -= uc; + addr |= uc; + pc += 2; + + type = Ascii2Hex( pc ); + cs -= type; + pc += 2; + + for( n = 0; n < nbytes; n++ ){ + uc = Ascii2Hex( pc ); + cs -= uc; + data[ n ] = uc; + pc += 2; + } + + if( Ascii2Hex( pc ) != cs ){ + char msg[ 80 ]; // FIXME - Magic Number + sprintf( msg, + "Invalid Record (bad checksum)\n" + "%s", ps ); + throw TGenericError( msg ); + } +} diff --git a/src/mkutil/revava-0.3/IntelHex.h b/src/mkutil/revava-0.3/IntelHex.h new file mode 100644 index 00000000..e56f843c --- /dev/null +++ b/src/mkutil/revava-0.3/IntelHex.h @@ -0,0 +1,42 @@ +/* + Program: revava - Atmel Dis-Assembler + File: IntelHex.h, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __INTELHEX +#define __INTELHEX + +/* Intel Hex Record Class */ +class TIntelHexRecord{ + public: + TIntelHexRecord(){} + ~TIntelHexRecord(){} + + void StringToRecord(const char* ps); + inline unsigned char get_nbytes(){ return nbytes; } + inline unsigned short get_addr() { return addr; } + inline unsigned char get_type() { return type; } + inline const unsigned char* get_data() { return data; } + + private: + unsigned char nbytes; + unsigned short addr; + unsigned char type; + unsigned char data[ 256 ]; // FIXME - Magic Number +}; + +#endif diff --git a/src/mkutil/revava-0.3/IntelHex.o b/src/mkutil/revava-0.3/IntelHex.o new file mode 100644 index 0000000000000000000000000000000000000000..dc629ec28149adf3323c0ca354bd4f21c45abca3 GIT binary patch literal 4758 zcmcgvU2GIp6u#4)u1hH{U`2wc6SAd6q3mvd*+})3uZG)EyA^9jp4V#um%?Zocz^NuAY9VC5dAe3@U8<- zg0*5Zc#X9T;5}yKF7P&So&aNMA-S>EQ(w9F==l^8<47eRjYhu zD=L#KNc#Tv^zS>myAIqr0vkH9zkFiQk=ZJYyyA0?eE^7aYNN2e+4=rEAg^{$-w>Ts zSDaI?QcOnux6`Ay-17jtGJ2t8e98E+!+&S9_fKH&oT4;O5!1ycQ?RQZL;i&uj&QoQ zgqz)hLd>7>d%*M=!_KMehN<)G){=SGP1eVYSPz@5neq58v6_bJ`PDhKr0MGTu|p6? zvNJPfnG!29E z4_w5}cw?8`Gn3xua%6grXHFjhN9pCR%PlT^0LU%u&S1@_>s;xvan!!)5-EIX?8w7x zmRuHHBDkT@*=As7QsRSqCodDU%A64)cm|(F`n{8B(eMtlAc@)DUSKIe8f@ciM>d;X z-8j1zZkexEA~|!e3U6HhC-|JqXe$YjE`iM9cR>Uslta7>c`Ap@!eW5)1KhaP#|+tz zt1Oa`W|)>P^Z!W*B)M^qijgshSN8W&IAQ%MlO-s1(>PXa@knh7YApz^sTkqzzI` z+ee(U07fs`(lYPYC=vE^fnNO{{pwH!ytH>#Xqg!3& zNEx*%9^qYsqgy%n0`WPXE5b^HgI4B$09=htxD9&T>0C2^|KpUl+_DXl`P&~SD8@nZ z%Y1gsfla{bEo@sk2cJ5d(2jip>2(faWwJEHID&P^5PWZ7!>VJ*haABgW5{P5!CGR- zd5+-zGUOUZ@C{m0WbHsCHw}(%H9xn_+)sT0ve`huGrA#i0TQ(!axwuQy;_)(F&-j^ z3y`Fyh7!Y!!Z`BIzG&x=2{{B_Yx+YWSxJSIgeGgjUU)~)op#AP1Ks&&jY(rYb!Y*B zNr&|`YVr7oSaB86xh*>Dsg`G$r+k!UgQ_Irs^;%pC(Fs!wswC*U2Z{b*6_><>l8-N zfv$oa;Qumarz_u?G9ZW5;2wp@n27p-{(fbDCZ0O$pNhY8b0`#K@FEY6xdIBG9+*8)u$u^W=T#CTTC#{4ET}k!SwjQj_SoJ?tWVyiz#lX%#z1$6 z$1TgDR4UjT8S;1EKNm(0CC~_ngj{B*9E6ocg$w)D#+@DIx2}MoDWAN*)4a-Ar oum}G^IWedz@=!$827^%@(+1S|UVRXZM&qHNrtnuzBpxIG04%!sjQ{`u literal 0 HcmV?d00001 diff --git a/src/mkutil/revava-0.3/Main.C b/src/mkutil/revava-0.3/Main.C new file mode 100644 index 00000000..ba5af52f --- /dev/null +++ b/src/mkutil/revava-0.3/Main.C @@ -0,0 +1,149 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Main.C + Parts of this are Copyright (C) 1997-1999 Uros Platise + The rest of it is Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include /* Nick */ +#include /* Nick */ + +#include "Error.h" +#include "Flash.h" +#include "Object.h" +#include "Source.h" + +const char* version = "Atmel Dis-Assembler 0.3\n"; + +const char* help = +"Syntax: revava [switches] file\n" +"Switches:\n" +" -d Dump Flash and exit.\n" +" -D Debug Dump Flash and exit (maybe should be Dubious Dump).\n" +" -e Use little endian (Intel byte order).\n" +" -o file Set output file name (to redirect the output to stdout: -o stdout)\n" +" -v Verbose (enable info - currently does nothing).\n" +" --help Print this help.\n" +" --version Output version information.\n"; + +#define FALSE 0 +#define TRUE (!FALSE) + +int arg_d = FALSE; +int arg_D = FALSE; +int arg_e = FALSE; +int arg_v = FALSE; + +int main( int argc, char* argv[] ){ + + TFlash* pFlash; + TObjectIn* pObjectIn; + TSourceOut* pSourceOut; + + char* infile = NULL; + char* OutFile = "out.s"; + int ai; + + try{ + for ( ai = 1; ai < argc; ai++ ){ + if ( argv[ ai ][ 0 ] == '-' ){ + if ( argv[ ai ][ 2 ] == '\0' ){ + switch( argv[ ai ][ 1 ] ){ + + case 'd': + arg_d = TRUE; + break ; + + case 'D': + arg_D = TRUE; + break ; + + case 'e': + arg_e = TRUE; + break ; + + case 'o': + if ( ++ai >= argc ) + throw TGenericError( "-o: File name is missing." ); + + OutFile = argv[ ai ]; + + break ; + + case 'v': + arg_v = TRUE; + break ; + + default: + throw TGenericError("Invalid switch:", argv[ai]); + } + } + else if ( argv[ ai ][ 1 ] == '-' ){ + if ( strcmp( &argv[ ai ][ 2 ], "help" ) == 0 ){ + printf( "%s\n\n%s\n", version, help ); + exit( 1 ); + } + else if ( strcmp( &argv[ ai ][ 2 ], "version" ) == 0 ){ + printf( "%s\n", version ); + exit( 1 ); + } + else{ + throw TGenericError( "Invalid switch:", argv[ ai ] ); + } + } + } + else{ + infile = argv[ ai ]; + } + } + + if ( !infile ){ + printf( "%s\n\n%s\n", version, help ); + exit( 1 ); + } + + // Set up the Memory + pFlash = new TFlash(); + + // Read the code into the fake flash + pObjectIn = new TObjectIn( infile, pFlash ); + + // Fix Big Endian/Little Endian if that's a problem. + if( arg_e ) + pFlash->FlipEndian(); + + if( arg_d ) { + pFlash->Dump(); + } else if ( arg_D ) { + pFlash->DebugDump(); + } + else { + //pObjectIn->~TObjectIn(); + pSourceOut = new TSourceOut( OutFile, pFlash ); + } + + } + catch ( TGenericError E ){ + E.report(); + } + catch ( TFileError E ){ + E.report(); + } + + return 0 ; +} diff --git a/src/mkutil/revava-0.3/Main.o b/src/mkutil/revava-0.3/Main.o new file mode 100644 index 0000000000000000000000000000000000000000..9d293ec21ce0bb8c94ef6cd269d8e59d7cad456e GIT binary patch literal 9054 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 literal 0 HcmV?d00001 diff --git a/src/mkutil/revava-0.3/Makefile b/src/mkutil/revava-0.3/Makefile new file mode 100644 index 00000000..4dbcfd96 --- /dev/null +++ b/src/mkutil/revava-0.3/Makefile @@ -0,0 +1,67 @@ +# Program: revava - Atmel Dis-Assembler +# File: Makefile +# Parts of this are Copyright (C) 1997-1999 Uros Platise +# The rest of it is Copyright (C) 2001 Daniel J. Winker +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +# The following lines declare compile options. +# +# Note: -O option cannot be specifed for GNU C++ version 2.7.2.1 +# due to the internal bug. That is why is not specifed by default. + + SRC = Avr.C Flash.C IntelHex.C Main.C Object.C Source.C + OBJ = Avr.o Flash.o IntelHex.o Main.o Object.o Source.o + CC = g++ + LIBS = + +# Old testing flags ... +# CPPFLAGS= -DAVA_LIB="\"$(AVA_LIB)\"" -Wall \ +# -fhandle-exceptions -fenum-int-equiv -fnonnull-objects \ +# -fforce-addr -fthread-jumps -felide-constructors + +# Add -O option for version 2.8 or more ... + +# GNU C++ compiler +# CPPFLAGS= -Wall -fhandle-exceptions -fenum-int-equiv + +# egcs C++ compiler with debug +# CPPFLAGS= -g -O3 -Wall + +# egcs C++ compiler without debug + CPPFLAGS= -O3 -Wall + +# Do the stuff as specified above. +all: revava make_test_source + +revava: $(OBJ) + $(CC) -o $@ $(CPPFLAGS) $(OBJ) $(LIBS) + +make_test_source: Avr.o make_test_source.o + $(CC) -o $@ $(CPPFLAGS) Avr.o make_test_source.o + +Avr.o: Avr.C Avr.h Error.h +Flash.o: Flash.C Error.h Flash.h +IntelHex.o: IntelHex.C IntelHex.h Error.h +Main.o: Main.C Error.h Flash.h Object.h +Object.o: Object.C Error.h Flash.h IntelHex.h Object.h Source.h +Source.o: Source.C Avr.h Error.h Flash.h Source.h + +make_test_source.o: make_test_source.C Avr.h + +clean: + rm -f *~ *.o revava make_test_source + diff --git a/src/mkutil/revava-0.3/Object.C b/src/mkutil/revava-0.3/Object.C new file mode 100644 index 00000000..37e1517a --- /dev/null +++ b/src/mkutil/revava-0.3/Object.C @@ -0,0 +1,66 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Object.C, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include + +#include "Error.h" +#include "Flash.h" +#include "IntelHex.h" +#include "Object.h" +#include "Source.h" + +TObjectIn::TObjectIn(const char* infile, TFlash* pFlash){ + TIntelHexRecord HexRec; + FILE* pf; + char s[256]; // FIXME - Magic Number + char* pc; + int line = 0; + + pf = fopen(infile, "r"); + + if( NULL == pf ) + throw TFileError("Cannot open file:", infile); + + try{ + while( fgets( s, 256, pf )) + { + // Replace the newline with '\0' + if( NULL != ( pc = rindex( s, '\n' ))) + *pc = '\0' ; + + line++; + HexRec.StringToRecord( s ); + + if( 0 == HexRec.get_type()) + pFlash->flashset( + HexRec.get_addr(), + HexRec.get_nbytes(), + HexRec.get_data()); + } + } + catch ( TGenericError E ){ + char msg[ 80 ]; // FIXME - Magic Number + sprintf( msg, "Error: File: %s, Line: %d\n", infile, line ); + E.prepend_message( msg ); + throw E ; + } + + fclose(pf); +} diff --git a/src/mkutil/revava-0.3/Object.h b/src/mkutil/revava-0.3/Object.h new file mode 100644 index 00000000..eb1662e1 --- /dev/null +++ b/src/mkutil/revava-0.3/Object.h @@ -0,0 +1,31 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Object.h, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __Object +#define __Object + +#include "Flash.h" + +class TObjectIn{ + public: + TObjectIn( const char* infile, TFlash* pFlash ); + ~TObjectIn(){} +}; + +#endif diff --git a/src/mkutil/revava-0.3/Object.o b/src/mkutil/revava-0.3/Object.o new file mode 100644 index 0000000000000000000000000000000000000000..5d0aab171f37e522549c892144db607511099612 GIT binary patch literal 7319 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 a`IcW}ET21OJtQ-k9D3E&J1d>bivI$z#IYm* literal 0 HcmV?d00001 diff --git a/src/mkutil/revava-0.3/README b/src/mkutil/revava-0.3/README new file mode 100644 index 00000000..5d80752e --- /dev/null +++ b/src/mkutil/revava-0.3/README @@ -0,0 +1,211 @@ +README for revava-0.3, Copyright (C) 2001, Daniel J. Winker + +Short description: +Disassembler for Atmel AVR microcontroller firmware. + +Full description: +revava is a single pass disassembler that reads in a file containing a +program intended for an Atmel AVR microcontroller and outputs assembly +code that can be input to an avr assembler. The output of revava +contains assembler mnemonics where possible and dc.W declarations where +no mnemonic matches the data. The comment field for each assembly +instruction contains the address from the object code and the +destination address for branches, calls, jumps, etc. In the case where +there are multiple assembly instructions that assemble to the same +opcode, all choices are presented in a group with all but the first +choice commented out. make_labels.pl is a Perl script that's been +included. It takes the output of revava and puts "jump to" and function +labels in the code. + +This is an early release of revava. Right now only Intel hex files are +supported for input. It would not be hard to add support for other +formats. See the file TODO for more ideas. + +I took a lot of the code (probably about half) from AVA Version 0.3b +which was written by Uros Platise and is available from +http://medo.fov.uni-mb.si/mapp. AVA is an Atmel AVR assembler. + +Compiling: + +The code is pretty vannilla C++. It should build with just about any +C++ compiler. I tried it with gcc egcs-2.91.66 on linux and gcc 2.95.1 +on Solaris 7. The only problem I noticed is that the Linux version +wanted + + #include + +and the Solaris version wanted + + #include + +I left it at , so you might have to adjust that to get it to +compile on your system. + +After downloading the latest tarball (x.y is the version number) + + tar -xvzf revava-x.y.tar.gz + cd revava-x.y + +Here you might want to edit the Makefile for your own preferences, then: + + make + +This should make two executables: "revava" and "make_test_source". revava +is the disassembler. make_test_source just spits out some AVR assembly code +that uses every instruction with different combinations of arguments. + +After that you might want to + + strip revava + +I thought not using -g as a compiler flag made the executable as small +as possible, but "strip revava" makes it even smaller. + +Testing: + +If you want to test it and you have AVA (which can be obtained at +http://medc.fov.uni-mb.si/mapp) you can execute the following: + + # This makes some crazy assembly code. Don't try to run it! + ./make_test_source > test_source.s + + # The following two lines create an Intel hex file named test.flash + ava test_source.s + ava --intel -o test test_source.o + + # This creates another assembly file that should be equivalent + # to test_source.s + revava test.flash + + # Try to assemble revava's output + ava out.s + ava --intel out.o + + # See if we ended up back where we started + diff test.flash a.out.flash + +There should be no difference. + +Installing: + +There is no "make install" target in the makefile. (See TODO file). +So, just copy or move the executable "revava" to /usr/local/bin or +wherever you want to keep it. This README file is the extent of the +documentation (See TODO file), so keep it around when you use revava. + +Using: + +Just typing "revava" and hitting enter returns something like this: + + Atmel Dis-Assembler 0.1 + + Syntax: revava [switches] file + Switches: + -d Dump Flash and exit. + -D Debug Dump Flash (maybe should be Dubious Dump). + -e Use little endian (Intel byte order). + -o file Output file name (to redirect to stdout -o stdout). + --help Print this help. + --version Output version information. + +"file" is of course the object file that we want to disassemble. I'll +go through the switches one at a time. + +-d Dump Flash and exit. + +This does the (probably) familiar hex dump that looks something like +this: + + 04E0: 5000 570F 5F0F 5080 578F 5F8F 50F0 57FF P.W._.P. W._.P.W. + 04F0: 5FFF 9402 94F2 95F2 2000 20FF 23FF 95A8 _....... . .#... + 1000: FFFF 940E 940C ---- ---- ---- ---- ---- ...... + +The leftmost column is the address in hex. Then we have the hex data +and finally an ASCII representation of the data if it seems appropriate. +The '-' characters in the hex data area mean that that data did not show +up in the input object file. (There was data at addresses 1000 to 1005, +but nothing from 1006 to 100F). Similarily, there are no addresses +shown from 0500 to 09FF because they didn't show up in the input file. + +This option in combination with the -e flag is actually very useful for +finding text strings embedded in the object file. + +-D Debug Dump Flash and exit. + +This is mostly for debugging revava itself. The output is pretty +similar to what you get with the -d flag, except the entire flash space +is dumped - whether it was present in the input file or not - and there +is an extra field that is the flags that keep track of what parts of +flash showed up in the input. One problem with this output is that it +is more than 80 columns wide. + +-e Use little endian (Intel byte order) + +This flips the bytes in each word right after reading in the input file. +This is useful because typically the way that works for disassembling is +oppisite of the way that makes strings show up right with the -d flag. +Try it once without -e and once with -e to see which one disassembles +right. Then try the -d flag once without -e and once with -e to see +which one displays any strings correctly. + +-o file Output file name + +Should be pretty straightforward. I suppose redirecting to stdout with + + revava -o stdout input.hex + +is a little strange. Oh well. + +--help Print this help. +--version Output version information. + +These two should also be pretty straightforward. + +make_labels.pl: + +Run this on the output of revava to add function labels and simple +"jump to" labels. This makes the output source a little easier to read. +For instance, it will change this: + + clr r16 ; 04E0 + ;eor r16, r16 ; 04E0 + + ldi r16, 0x6 ; 04E2 + sts 0x0074, r16 ; 04E4 + rjmp 910 ; 04F8, Dest: 0888 + rcall 1528 ; 04FA, Dest: 0AF4 + +into this: + + L042: + clr r16 ; 04E0 + ;eor r16, r16 ; 04E0 + + ldi r16, 0x6 ; 04EA + sts 0x0074, r16 ; 04EC + rjmp L115 ; 04F0, Dest: 0888 + + Func005: + rcall Func008 ; 04F2, Dest: 0AF4 + +make_labels.pl reads in a file and outputs to stdout, so typically you +would do something like this: + + revava -o prog.s program.hex + make_labels.pl prog.s > program.s + +If make_labels.pl can't find the "jump to" or function address it just +adds "##### Dest BOGUS #####" to the end of the source line. This means +that the destination address is either in the middle of a double word +instruction or the destination address was never included in the +original object file. A section of the code with lots of +"##### Dest BOGUS #####" comments is probably really a data section. + +Note, make_labels.pl is much less tested than revava. You should use an +assembler to make sure you can recreate the object code from your brand +new source. + +Contact: + +The website for revava is currently http://www.visi.com/~dwinker/revava. +I can be contacted at dwinker@tiny.net. diff --git a/src/mkutil/revava-0.3/Source.C b/src/mkutil/revava-0.3/Source.C new file mode 100644 index 00000000..e8876d94 --- /dev/null +++ b/src/mkutil/revava-0.3/Source.C @@ -0,0 +1,735 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Source.C, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + CHANGES: + 14-Mar-2001, Dan Winker + Added op_code_addr. See Bug_0001 in CHANGES. +*/ + +#include +#include + +#include "Avr.h" +#include "Error.h" +#include "Flash.h" +#include "Source.h" + +#define FALSE 0 +#define TRUE (!FALSE) + +//#define DEBUG + +TSourceOut::TSourceOut( const char* OutFile, TFlash* pFlash ){ + TAvr Avr; + TAvr::TInstruction Instruction; + int Index; + int line_count; + FILE* pOutFile; + TSourceString* pSourceString_temp; + TSourceString* pSourceString_head; + TSourceString* pSourceString_tail; + int last_line_was_blank = FALSE; + int look_for_new_segment = TRUE; + int code_seg_num = 0; + unsigned short code_word; + unsigned short temp_short; + unsigned long temp_long; + int addr; + int op_code_addr; + int dest = 0; + int have_dest; + int high_byte_written; + int low_byte_written; + char temp_string[ 80 ]; // FIXME - Magic Number + char temp_string2[ 80 ]; // FIXME - Magic Number + char* pLastTab; + char* tabs; + + prolog_head = NULL; + prolog_tail = NULL; + body_head = NULL; + body_tail = NULL; + + if( 0 == strcmp( "stdout", OutFile ) ){ + pOutFile = stdout; + } else { + pOutFile = fopen( OutFile, "w" ); + } + + if( NULL == pOutFile ) + throw TFileError( "Cannot open file for writing:", OutFile ); + + // FIXME - This probably doesn't belong burried deep withing a function. + // This probably should be much more configurable. + push_prolog( "#arch AT90S8515" ); + push_prolog( "#include \"avr.inc\"" ); + + for( addr = 0; addr < FLASH_SIZE; addr += 2 ){ + + // Sometimes addr will get bumped because of a double word + // instruction, but we still want to report the address of the + // first word of the instruction. op_code_addr is what is + // reported. + op_code_addr = addr; + + code_word = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + #ifdef DEBUG_1 + printf( "DEBUG - SourceOut: ##############################\n" ); + printf( "DEBUG - SourceOut: addr = %04X\n", addr ); + printf( "DEBUG - SourceOut: code_word = %04X\n", code_word ); + printf( "DEBUG - SourceOut: high_byte_written = %04X\n", high_byte_written ); + printf( "DEBUG - SourceOut: low_byte_written = %04X\n", low_byte_written ); + #endif + + if( high_byte_written != low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: high_byte_written != low_byte_written.", + addr ); + throw TGenericError( temp_string ); + } + + + if( high_byte_written ){ + + if( look_for_new_segment ){ + #ifdef DEBUG + printf( "DEBUG - SourceOut: Need Org Statement For: %04X\n", addr ); + #endif + + sprintf( temp_string, "\tseg abs=0x%X flash.code%d", addr, code_seg_num ); + push_body( "" ); + push_body( temp_string ); + push_body( "" ); + last_line_was_blank = TRUE; + + code_seg_num++; + look_for_new_segment = FALSE; + } + + // First Time Through + pSourceString_head = NULL; + pSourceString_tail = NULL; + Index = 0; + while( 0 != ( Index = Avr.Word2Instruction( + &Instruction, + code_word, + Index ))){ + + #ifdef DEBUG + printf( "DEBUG - SourceOut: Index = %d\n", Index); + printf( "DEBUG - SourceOut: Addr:OpCode = %04X:%04X\n", addr, code_word ); + printf( "DEBUG - SourceOut: Instruction.name = %s\n", Instruction.name ); + printf( "DEBUG - SourceOut: Instruction.arg0_format = %c\n", Instruction.arg0_format ); + printf( "DEBUG - SourceOut: Instruction.arg1_format = %c\n", Instruction.arg1_format ); + printf( "DEBUG - SourceOut: Instruction.arg0_type = %d\n", Instruction.arg0_format ); + printf( "DEBUG - SourceOut: Instruction.arg1_type = %d\n", Instruction.arg1_format ); + printf( "DEBUG - SourceOut: Instruction.arg0 = %04X\n", Instruction.arg0 ); + printf( "DEBUG - SourceOut: Instruction.arg1 = %04X\n", Instruction.arg1 ); + #endif + + have_dest = FALSE; + + if( TAvr::ARG_longCall == Instruction.arg0_type ){ + + // These arg types are special because they also use the + // next word as part of the opcode. + + // A really paranoid programmer would do a bounds check + // on addr here. + addr += 2; + temp_short = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + if( !high_byte_written || !low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: Needed Entire Word Written", + addr ); + throw TGenericError( temp_string ); + } + + temp_long = + ( (unsigned long)Instruction.arg0 << 16 ) | + ( (unsigned long)temp_short ); + + sprintf( + temp_string, + "\t%s\t0x%04lX", + Instruction.name, + temp_long ); + + } else if( + TAvr::ARG_neg64_63 == Instruction.arg0_type || + TAvr::ARG_neg2KB_2KB == Instruction.arg0_type ) { + + // We insist that arg types of ARG_neg64_63 and + // ARG_neg2KB_2KB have an arg format of 'k'. + if( 'k' != Instruction.arg0_format ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg0_type = ARG_neg64_63 or ARG_neg2KB_2KB\n" + "\twith 'k' != ( arg0_format = '%c' )", + Instruction.name, + Instruction.arg0_format ); + + throw TGenericError( temp_string ); + } + + // We also insist that arg0 types of ARG_neg64_63 and + // ARG_neg2KB_2KB do not have an arg1. + if( TAvr::ARG_none != Instruction.arg1_type ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg0_type = ARG_neg64_63 or ARG_neg2KB_2KB\n" + "\twith ARG_none != arg1_type", + Instruction.name ); + + throw TGenericError( temp_string ); + } + + sprintf( + temp_string, + "\t%s\t%d", + Instruction.name, + (short)Instruction.arg0 ); + + have_dest = TRUE; +#if 0 /* Nick */ + dest = addr; /* + 1 + (short)Instruction.arg0; */ +#else + dest = addr + 2 + (short)Instruction.arg0; +#endif + + } else { + + switch( Instruction.arg0_format ){ + + case '\0': + + // No args to this instruction + sprintf( + temp_string, + "\t%s", + Instruction.name ); + + break; + + case 'd': + case 'r': + + sprintf( + temp_string, + "\t%s\tr%d", + Instruction.name, + Instruction.arg0 ); + + break; + + case 'k': + case 's': + + sprintf( + temp_string, + "\t%s\t%d", + Instruction.name, + (short)Instruction.arg0 ); + + break; + + case 'P': + case 'p': + + sprintf( + temp_string, + "\t%s\t0x%X", + Instruction.name, + Instruction.arg0 ); + + break; + + case 'X': + case 'Y': + case 'Z': + + if( 0 == strcmp( "std", Instruction.name )){ + sprintf( + temp_string, + "\t%s\t%c+%d", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + } else { + + // It's a little convoluted how we get the + // information back from TAvr::AdjustArg about + // whether to us "X", "X+", or "-X". In this + // arg_format is 'X'. We differentiate by + // setting the value of arg (which is an + // (unsigned short)) to one of ' ', '+' or '-'. + switch( (char)Instruction.arg0 ){ + + case ' ': + + sprintf( + temp_string, + "\t%s\t%c", + Instruction.name, + Instruction.arg0_format ); + + break; + + case '+': + + sprintf( + temp_string, + "\t%s\t%c+", + Instruction.name, + Instruction.arg0_format ); + + break; + + case '-': + + sprintf( + temp_string, + "\t%s\t-%c", + Instruction.name, + Instruction.arg0_format ); + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has special arg0_format: '%c'\n" + "\twith unknown arg0 of: 0x%X", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + throw TGenericError( temp_string ); + + break; + + } + } + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has unknown arg0_format: '%c'\n" + "\targ0 is 0x%X", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + throw TGenericError( temp_string ); + + break; + + } // end "switch( Instruction.arg0_format )" + + } // end else part of "if( Arg_longCall == Instruction.arg0_type )" + + if( TAvr::ARG_longCall == Instruction.arg1_type ){ + + // These arg types are special because they also use the + // next word as part of the opcode. + + // A really paranoid programmer would do a bounds check + // on addr here. + addr += 2; + temp_short = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + + if( !high_byte_written || !low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: Needed Entire Word Written", + addr ); + throw TGenericError( temp_string ); + } + + temp_long = + ( (unsigned long)Instruction.arg1 << 16 ) | + ( (unsigned long)temp_short ); + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, 0x%04lX", + temp_string2, + temp_long ); + + } else if( TAvr::ARG_neg64_63 == Instruction.arg1_type ) { + + // We insist that an ARG_neg64_63 arg type have + // an arg format of 'k'. + if( 'k' != Instruction.arg1_format ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg1_type = ARG_neg64_63\n" + "\twith 'k' != ( arg1_format = '%c' )", + Instruction.name, + Instruction.arg1_format ); + + throw TGenericError( temp_string ); + } + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, %d", + temp_string2, + (short)Instruction.arg1 ); + + have_dest = TRUE; + dest = addr + 2 + (short)Instruction.arg1; + + } else { + + switch( Instruction.arg1_format ){ + + case '\0': + // No arg1 to this instruction. No more to do. + break; + + case 'b': + case 'k': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, %d", + temp_string2, + (short)Instruction.arg1 ); + + break; + + case 'd': + case 'r': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, r%d", + temp_string2, + Instruction.arg1 ); + + break; + + case 'K': + case 'P': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, 0x%X", + temp_string2, + Instruction.arg1 ); + + break; + + case 'X': + case 'Y': + case 'Z': + + strcpy( temp_string2, temp_string ); + + if( 0 == strcmp( "ldd", Instruction.name )){ + sprintf( + temp_string, + "%s, %c+%d", + temp_string2, + Instruction.arg1_format, + Instruction.arg1 ); + + } else { + + // It's a little convoluted how we get the + // information back from TAvr::AdjustArg about + // whether to us "X", "X+", or "-X". In this + // arg_format is 'X'. We differentiate by setting + // the value of arg (which is an (unsigned short)) + // to one of ' ', '+', or '-'. + switch( (char)Instruction.arg1 ){ + + case ' ': + + sprintf( + temp_string, + "%s, %c", + temp_string2, + Instruction.arg1_format ); + + break; + + case '+': + + sprintf( + temp_string, + "%s, %c+", + temp_string2, + Instruction.arg1_format ); + + break; + + case '-': + + sprintf( + temp_string, + "%s, -%c", + temp_string2, + Instruction.arg1_format ); + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has special arg1_format: '%c'\n" + "\twith unknown arg1 of: 0x%X", + Instruction.name, + Instruction.arg1_format, + Instruction.arg1 ); + + throw TGenericError( temp_string ); + + break; + } + } + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has unknown arg1_format: '%c'\n" + "\targ1 is 0x%X", + Instruction.name, + Instruction.arg1_format, + Instruction.arg1 ); + + throw TGenericError( temp_string ); + + break; + } // end "switch( Instruction.arg1_format )" + + } // end else part of "if( Arg_longCall == Instruction.arg1_type )" + + // We'll make it line up pretty assuming 8 space tabs. I'm + // taking a chance here and making the code as a whole a little + // longer to try to decouple this process from the rest of this + // function. + pLastTab = rindex( temp_string, '\t' ); + + if( index( temp_string, '\t' ) == pLastTab ){ + + // There is only one tab. Therefore this is a simple + // instruction with no arguments. Since none of these are + // 8 or more characters long, we know we haven't advanced + // the hypothetical cursor to the args column yet. + // Therefore we know that we need 3 tabs. + tabs = "\t\t\t"; + + } else if( 8 > strlen ( pLastTab + 1 ) ){ + + // This is a short set of arguments. We need 2 tabs to get + // into the comments column. + tabs = "\t\t"; + + } else { + + // This is a long set of arguments. We need 1 tab to get + // into the comments column. + tabs = "\t"; + } + + // Add the address and possibly the destination. + if( have_dest ){ + + sprintf( + temp_string2, + "%s%s; %04X, Dest: %04X", + temp_string, + tabs, + op_code_addr, + dest ); + + } else { + + sprintf( + temp_string2, + "%s%s; %04X", + temp_string, + tabs, + op_code_addr ); + } + + pSourceString_tail = + new TSourceString( temp_string2, pSourceString_tail ); + + if ( NULL == pSourceString_head ){ + pSourceString_head = pSourceString_tail; + } + + } // end while( 0 != ( Index = Avr.Word2Instruction + + line_count = 0; + if( pSourceString_head ){ + + // We were able to match the opcode to an instruction. + + if( pSourceString_head->next && !last_line_was_blank ){ + // There is more than one equavalent source strings that + // can make this opcode. Put in a blank line to seperate + // these equivalent source strings from the other source. + push_body( "" ); + } + + while( pSourceString_head ){ + + if ( 0 == line_count ){ + strcpy( temp_string, pSourceString_head->string ); + } else { + sprintf( + temp_string, + "\t;%s", + pSourceString_head->string + 1 ); + } + + push_body( temp_string ); + pSourceString_temp = pSourceString_head->next; + delete pSourceString_head; + pSourceString_head = pSourceString_temp; + + line_count++; + } + + if ( 1 < line_count ){ + + // There was more than one line in this block. + // Put out a blank line. + last_line_was_blank = TRUE; + push_body( "" ); + + } else { + + last_line_was_blank = FALSE; + } + + } else { + + // No instruction matched this opcode. Print it as data. + + sprintf( + temp_string, + "\tdc.W\t0x%04X\t\t; %04X", + code_word, + op_code_addr ); + + push_body( temp_string ); + last_line_was_blank = FALSE; + } + + } else { + + look_for_new_segment = TRUE; + + } + } + + while( prolog_head ){ + fputs( prolog_head->string, pOutFile ); + fputc( '\n', pOutFile ); + pSourceString_temp = prolog_head->next; + delete prolog_head; + prolog_head = pSourceString_temp; + } + + while( body_head ){ + fputs( body_head->string, pOutFile ); + fputc( '\n', pOutFile ); + pSourceString_temp = body_head->next; + delete body_head; + body_head = pSourceString_temp; + } +} + +void TSourceOut::push_prolog( const char* s){ + + prolog_tail = new TSourceString( s, prolog_tail ); + + if( NULL == prolog_head ){ + prolog_head = prolog_tail; + } +} + +void TSourceOut::push_body( const char* s){ + + body_tail = new TSourceString( s, body_tail ); + + if( NULL == body_head ){ + body_head = body_tail; + } +} + +TSourceOut::TSourceString::TSourceString( + const char* s, + TSourceString* previous ){ + + strncpy( string, s, 79 ); // FIXME - magic number + string[ 79 ] = '\0'; + + if( NULL != previous ) + previous->next = this; + + next = NULL; +} diff --git a/src/mkutil/revava-0.3/Source.C% b/src/mkutil/revava-0.3/Source.C% new file mode 100644 index 00000000..c3de637e --- /dev/null +++ b/src/mkutil/revava-0.3/Source.C% @@ -0,0 +1,735 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Source.C, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + CHANGES: + 14-Mar-2001, Dan Winker + Added op_code_addr. See Bug_0001 in CHANGES. +*/ + +#include +#include + +#include "Avr.h" +#include "Error.h" +#include "Flash.h" +#include "Source.h" + +#define FALSE 0 +#define TRUE (!FALSE) + +//#define DEBUG + +TSourceOut::TSourceOut( const char* OutFile, TFlash* pFlash ){ + TAvr Avr; + TAvr::TInstruction Instruction; + int Index; + int line_count; + FILE* pOutFile; + TSourceString* pSourceString_temp; + TSourceString* pSourceString_head; + TSourceString* pSourceString_tail; + int last_line_was_blank = FALSE; + int look_for_new_segment = TRUE; + int code_seg_num = 0; + unsigned short code_word; + unsigned short temp_short; + unsigned long temp_long; + int addr; + int op_code_addr; + int dest = 0; + int have_dest; + int high_byte_written; + int low_byte_written; + char temp_string[ 80 ]; // FIXME - Magic Number + char temp_string2[ 80 ]; // FIXME - Magic Number + char* pLastTab; + char* tabs; + + prolog_head = NULL; + prolog_tail = NULL; + body_head = NULL; + body_tail = NULL; + + if( 0 == strcmp( "stdout", OutFile ) ){ + pOutFile = stdout; + } else { + pOutFile = fopen( OutFile, "w" ); + } + + if( NULL == pOutFile ) + throw TFileError( "Cannot open file for writing:", OutFile ); + + // FIXME - This probably doesn't belong burried deep withing a function. + // This probably should be much more configurable. + push_prolog( "#arch AT90S8515" ); + push_prolog( "#include \"avr.inc\"" ); + + for( addr = 0; addr < FLASH_SIZE; addr += 2 ){ + + // Sometimes addr will get bumped because of a double word + // instruction, but we still want to report the address of the + // first word of the instruction. op_code_addr is what is + // reported. + op_code_addr = addr; + + code_word = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + #ifdef DEBUG_1 + printf( "DEBUG - SourceOut: ##############################\n" ); + printf( "DEBUG - SourceOut: addr = %04X\n", addr ); + printf( "DEBUG - SourceOut: code_word = %04X\n", code_word ); + printf( "DEBUG - SourceOut: high_byte_written = %04X\n", high_byte_written ); + printf( "DEBUG - SourceOut: low_byte_written = %04X\n", low_byte_written ); + #endif + + if( high_byte_written != low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: high_byte_written != low_byte_written.", + addr ); + throw TGenericError( temp_string ); + } + + + if( high_byte_written ){ + + if( look_for_new_segment ){ + #ifdef DEBUG + printf( "DEBUG - SourceOut: Need Org Statement For: %04X\n", addr ); + #endif + + sprintf( temp_string, "\tseg abs=0x%X flash.code%d", addr, code_seg_num ); + push_body( "" ); + push_body( temp_string ); + push_body( "" ); + last_line_was_blank = TRUE; + + code_seg_num++; + look_for_new_segment = FALSE; + } + + // First Time Through + pSourceString_head = NULL; + pSourceString_tail = NULL; + Index = 0; + while( 0 != ( Index = Avr.Word2Instruction( + &Instruction, + code_word, + Index ))){ + + #ifdef DEBUG + printf( "DEBUG - SourceOut: Index = %d\n", Index); + printf( "DEBUG - SourceOut: Addr:OpCode = %04X:%04X\n", addr, code_word ); + printf( "DEBUG - SourceOut: Instruction.name = %s\n", Instruction.name ); + printf( "DEBUG - SourceOut: Instruction.arg0_format = %c\n", Instruction.arg0_format ); + printf( "DEBUG - SourceOut: Instruction.arg1_format = %c\n", Instruction.arg1_format ); + printf( "DEBUG - SourceOut: Instruction.arg0_type = %d\n", Instruction.arg0_format ); + printf( "DEBUG - SourceOut: Instruction.arg1_type = %d\n", Instruction.arg1_format ); + printf( "DEBUG - SourceOut: Instruction.arg0 = %04X\n", Instruction.arg0 ); + printf( "DEBUG - SourceOut: Instruction.arg1 = %04X\n", Instruction.arg1 ); + #endif + + have_dest = FALSE; + + if( TAvr::ARG_longCall == Instruction.arg0_type ){ + + // These arg types are special because they also use the + // next word as part of the opcode. + + // A really paranoid programmer would do a bounds check + // on addr here. + addr += 2; + temp_short = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + if( !high_byte_written || !low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: Needed Entire Word Written", + addr ); + throw TGenericError( temp_string ); + } + + temp_long = + ( (unsigned long)Instruction.arg0 << 16 ) | + ( (unsigned long)temp_short ); + + sprintf( + temp_string, + "\t%s\t0x%04lX", + Instruction.name, + temp_long ); + + } else if( + TAvr::ARG_neg64_63 == Instruction.arg0_type || + TAvr::ARG_neg2KB_2KB == Instruction.arg0_type ) { + + // We insist that arg types of ARG_neg64_63 and + // ARG_neg2KB_2KB have an arg format of 'k'. + if( 'k' != Instruction.arg0_format ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg0_type = ARG_neg64_63 or ARG_neg2KB_2KB\n" + "\twith 'k' != ( arg0_format = '%c' )", + Instruction.name, + Instruction.arg0_format ); + + throw TGenericError( temp_string ); + } + + // We also insist that arg0 types of ARG_neg64_63 and + // ARG_neg2KB_2KB do not have an arg1. + if( TAvr::ARG_none != Instruction.arg1_type ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg0_type = ARG_neg64_63 or ARG_neg2KB_2KB\n" + "\twith ARG_none != arg1_type", + Instruction.name ); + + throw TGenericError( temp_string ); + } + + sprintf( + temp_string, + "\t%s\t%d", + Instruction.name, + (short)Instruction.arg0 ); + + have_dest = TRUE; +#if 1 /* Nick */ + dest = addr; /* + 1 + (short)Instruction.arg0; */ +#else + dest = addr + 2 + (short)Instruction.arg0; +#endif + + } else { + + switch( Instruction.arg0_format ){ + + case '\0': + + // No args to this instruction + sprintf( + temp_string, + "\t%s", + Instruction.name ); + + break; + + case 'd': + case 'r': + + sprintf( + temp_string, + "\t%s\tr%d", + Instruction.name, + Instruction.arg0 ); + + break; + + case 'k': + case 's': + + sprintf( + temp_string, + "\t%s\t%d", + Instruction.name, + (short)Instruction.arg0 ); + + break; + + case 'P': + case 'p': + + sprintf( + temp_string, + "\t%s\t0x%X", + Instruction.name, + Instruction.arg0 ); + + break; + + case 'X': + case 'Y': + case 'Z': + + if( 0 == strcmp( "std", Instruction.name )){ + sprintf( + temp_string, + "\t%s\t%c+%d", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + } else { + + // It's a little convoluted how we get the + // information back from TAvr::AdjustArg about + // whether to us "X", "X+", or "-X". In this + // arg_format is 'X'. We differentiate by + // setting the value of arg (which is an + // (unsigned short)) to one of ' ', '+' or '-'. + switch( (char)Instruction.arg0 ){ + + case ' ': + + sprintf( + temp_string, + "\t%s\t%c", + Instruction.name, + Instruction.arg0_format ); + + break; + + case '+': + + sprintf( + temp_string, + "\t%s\t%c+", + Instruction.name, + Instruction.arg0_format ); + + break; + + case '-': + + sprintf( + temp_string, + "\t%s\t-%c", + Instruction.name, + Instruction.arg0_format ); + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has special arg0_format: '%c'\n" + "\twith unknown arg0 of: 0x%X", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + throw TGenericError( temp_string ); + + break; + + } + } + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has unknown arg0_format: '%c'\n" + "\targ0 is 0x%X", + Instruction.name, + Instruction.arg0_format, + Instruction.arg0 ); + + throw TGenericError( temp_string ); + + break; + + } // end "switch( Instruction.arg0_format )" + + } // end else part of "if( Arg_longCall == Instruction.arg0_type )" + + if( TAvr::ARG_longCall == Instruction.arg1_type ){ + + // These arg types are special because they also use the + // next word as part of the opcode. + + // A really paranoid programmer would do a bounds check + // on addr here. + addr += 2; + temp_short = pFlash->get_flash_word( + addr, + &high_byte_written, + &low_byte_written ); + + + if( !high_byte_written || !low_byte_written ){ + sprintf( + temp_string, + "TSourceOut: Word Address: %04X: Needed Entire Word Written", + addr ); + throw TGenericError( temp_string ); + } + + temp_long = + ( (unsigned long)Instruction.arg1 << 16 ) | + ( (unsigned long)temp_short ); + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, 0x%04lX", + temp_string2, + temp_long ); + + } else if( TAvr::ARG_neg64_63 == Instruction.arg1_type ) { + + // We insist that an ARG_neg64_63 arg type have + // an arg format of 'k'. + if( 'k' != Instruction.arg1_format ){ + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruciton has arg1_type = ARG_neg64_63\n" + "\twith 'k' != ( arg1_format = '%c' )", + Instruction.name, + Instruction.arg1_format ); + + throw TGenericError( temp_string ); + } + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, %d", + temp_string2, + (short)Instruction.arg1 ); + + have_dest = TRUE; + dest = addr + 2 + (short)Instruction.arg1; + + } else { + + switch( Instruction.arg1_format ){ + + case '\0': + // No arg1 to this instruction. No more to do. + break; + + case 'b': + case 'k': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, %d", + temp_string2, + (short)Instruction.arg1 ); + + break; + + case 'd': + case 'r': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, r%d", + temp_string2, + Instruction.arg1 ); + + break; + + case 'K': + case 'P': + + strcpy( temp_string2, temp_string ); + + sprintf( + temp_string, + "%s, 0x%X", + temp_string2, + Instruction.arg1 ); + + break; + + case 'X': + case 'Y': + case 'Z': + + strcpy( temp_string2, temp_string ); + + if( 0 == strcmp( "ldd", Instruction.name )){ + sprintf( + temp_string, + "%s, %c+%d", + temp_string2, + Instruction.arg1_format, + Instruction.arg1 ); + + } else { + + // It's a little convoluted how we get the + // information back from TAvr::AdjustArg about + // whether to us "X", "X+", or "-X". In this + // arg_format is 'X'. We differentiate by setting + // the value of arg (which is an (unsigned short)) + // to one of ' ', '+', or '-'. + switch( (char)Instruction.arg1 ){ + + case ' ': + + sprintf( + temp_string, + "%s, %c", + temp_string2, + Instruction.arg1_format ); + + break; + + case '+': + + sprintf( + temp_string, + "%s, %c+", + temp_string2, + Instruction.arg1_format ); + + break; + + case '-': + + sprintf( + temp_string, + "%s, -%c", + temp_string2, + Instruction.arg1_format ); + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has special arg1_format: '%c'\n" + "\twith unknown arg1 of: 0x%X", + Instruction.name, + Instruction.arg1_format, + Instruction.arg1 ); + + throw TGenericError( temp_string ); + + break; + } + } + + break; + + default: + + sprintf( + temp_string, + "TSourceOut:\n" + "\t%s instruction has unknown arg1_format: '%c'\n" + "\targ1 is 0x%X", + Instruction.name, + Instruction.arg1_format, + Instruction.arg1 ); + + throw TGenericError( temp_string ); + + break; + } // end "switch( Instruction.arg1_format )" + + } // end else part of "if( Arg_longCall == Instruction.arg1_type )" + + // We'll make it line up pretty assuming 8 space tabs. I'm + // taking a chance here and making the code as a whole a little + // longer to try to decouple this process from the rest of this + // function. + pLastTab = rindex( temp_string, '\t' ); + + if( index( temp_string, '\t' ) == pLastTab ){ + + // There is only one tab. Therefore this is a simple + // instruction with no arguments. Since none of these are + // 8 or more characters long, we know we haven't advanced + // the hypothetical cursor to the args column yet. + // Therefore we know that we need 3 tabs. + tabs = "\t\t\t"; + + } else if( 8 > strlen ( pLastTab + 1 ) ){ + + // This is a short set of arguments. We need 2 tabs to get + // into the comments column. + tabs = "\t\t"; + + } else { + + // This is a long set of arguments. We need 1 tab to get + // into the comments column. + tabs = "\t"; + } + + // Add the address and possibly the destination. + if( have_dest ){ + + sprintf( + temp_string2, + "%s%s; %04X, Dest: %04X", + temp_string, + tabs, + op_code_addr, + dest ); + + } else { + + sprintf( + temp_string2, + "%s%s; %04X", + temp_string, + tabs, + op_code_addr ); + } + + pSourceString_tail = + new TSourceString( temp_string2, pSourceString_tail ); + + if ( NULL == pSourceString_head ){ + pSourceString_head = pSourceString_tail; + } + + } // end while( 0 != ( Index = Avr.Word2Instruction + + line_count = 0; + if( pSourceString_head ){ + + // We were able to match the opcode to an instruction. + + if( pSourceString_head->next && !last_line_was_blank ){ + // There is more than one equavalent source strings that + // can make this opcode. Put in a blank line to seperate + // these equivalent source strings from the other source. + push_body( "" ); + } + + while( pSourceString_head ){ + + if ( 0 == line_count ){ + strcpy( temp_string, pSourceString_head->string ); + } else { + sprintf( + temp_string, + "\t;%s", + pSourceString_head->string + 1 ); + } + + push_body( temp_string ); + pSourceString_temp = pSourceString_head->next; + delete pSourceString_head; + pSourceString_head = pSourceString_temp; + + line_count++; + } + + if ( 1 < line_count ){ + + // There was more than one line in this block. + // Put out a blank line. + last_line_was_blank = TRUE; + push_body( "" ); + + } else { + + last_line_was_blank = FALSE; + } + + } else { + + // No instruction matched this opcode. Print it as data. + + sprintf( + temp_string, + "\tdc.W\t0x%04X\t\t; %04X", + code_word, + op_code_addr ); + + push_body( temp_string ); + last_line_was_blank = FALSE; + } + + } else { + + look_for_new_segment = TRUE; + + } + } + + while( prolog_head ){ + fputs( prolog_head->string, pOutFile ); + fputc( '\n', pOutFile ); + pSourceString_temp = prolog_head->next; + delete prolog_head; + prolog_head = pSourceString_temp; + } + + while( body_head ){ + fputs( body_head->string, pOutFile ); + fputc( '\n', pOutFile ); + pSourceString_temp = body_head->next; + delete body_head; + body_head = pSourceString_temp; + } +} + +void TSourceOut::push_prolog( const char* s){ + + prolog_tail = new TSourceString( s, prolog_tail ); + + if( NULL == prolog_head ){ + prolog_head = prolog_tail; + } +} + +void TSourceOut::push_body( const char* s){ + + body_tail = new TSourceString( s, body_tail ); + + if( NULL == body_head ){ + body_head = body_tail; + } +} + +TSourceOut::TSourceString::TSourceString( + const char* s, + TSourceString* previous ){ + + strncpy( string, s, 79 ); // FIXME - magic number + string[ 79 ] = '\0'; + + if( NULL != previous ) + previous->next = this; + + next = NULL; +} diff --git a/src/mkutil/revava-0.3/Source.h b/src/mkutil/revava-0.3/Source.h new file mode 100644 index 00000000..9c182abc --- /dev/null +++ b/src/mkutil/revava-0.3/Source.h @@ -0,0 +1,54 @@ +/* + Program: revava - Atmel Dis-Assembler + File: Source.h, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef __SOURCE +#define __SOURCE + +#include "Flash.h" + +class TSourceOut{ + + public: + + TSourceOut( const char* OutFile, TFlash* pFlash ); + ~TSourceOut (); + + void push_prolog( const char* s ); + void push_body ( const char* s ); + // void push_epilog( const char* s ); + + private: + + class TSourceString{ + public: + TSourceString( const char* s, TSourceString* previous ); + ~TSourceString(){} + TSourceString* next; + char string[ 80 ]; // FIXME - magic number + }; + + TSourceString* prolog_head; + TSourceString* prolog_tail; + TSourceString* body_head; + TSourceString* body_tail; + // TSourceString* epilog_head; + // TSourceString* epilog_tail; +}; + +#endif diff --git a/src/mkutil/revava-0.3/Source.o b/src/mkutil/revava-0.3/Source.o new file mode 100644 index 0000000000000000000000000000000000000000..63e335c22ca54b6fe0c01ea5c956edb0a58184d3 GIT binary patch literal 26096 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 O#P9u^WhZ{WTm2t2?3I!L literal 0 HcmV?d00001 diff --git a/src/mkutil/revava-0.3/TODO b/src/mkutil/revava-0.3/TODO new file mode 100644 index 00000000..7f5287c6 --- /dev/null +++ b/src/mkutil/revava-0.3/TODO @@ -0,0 +1,24 @@ +Many "FIXME"s in the source code. Mostly for using hard coded numbers +to set the size of strings. This would be easy to fix. + +Right now revava only handles Intel Hex as an object file format (input +to this program). At the very least it should also handle Motorola +S-Record files and uAsm files. This would probably be pretty easy to +do. + +Some kind of symbol handling would be nice. Intel Hex files can't carry +symbols, but I think Motorola S-Record files sometimes do. Also it +would be nice if revava could suck in a text symbol file and use it. + +revava should be able to tell where all the jumps go and put in labels +at the code place to jump to and then use that label for all branches, +jumps, calls, etc that reference that address. make_labels.pl is a +kludgy way to do just this. It would be a lot nicer if this +functionality were built into revava itself. That would be a lot of +work. + +A man page and "make install" target in the Makefile would be nice. + +Right now there's no way to take input from stdin. I don't know if +anyone ever would want to do this, but I suppose the option would be +nice. diff --git a/src/mkutil/revava-0.3/make_labels.pl b/src/mkutil/revava-0.3/make_labels.pl new file mode 100644 index 00000000..1014a586 --- /dev/null +++ b/src/mkutil/revava-0.3/make_labels.pl @@ -0,0 +1,228 @@ +#!/bin/perl -w +############################################################################## +# Program: revava - Atmel Dis-Assembler +# File: make_labels.pl +# Copyright (C) 2001 Daniel J. Winker +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +############################################################################## + +use strict ; + +die "usage: $0 infile > outfile\n" if ( 0 != $#ARGV ); +open( INFILE, $ARGV[ 0 ] ) or die "$0: Can't open $ARGV[ 0 ]. $!\n"; + +my %AddrList; +my %Addr2Func; +my $FuncNum = 0; +my %Addr2Label; +my $LabelNum = 0; + +# Read the file into a buffer because we're going to make several +# passes through it. This will be more efficient. +my @Buf = ; + +# First spin through collecting addresses and looking for "Dest"s. We +# will put in function labels or simple labels anywere there is a +# "Dest". This first pass just gets a list of addresses. +LOOP0: foreach( @Buf ){ + + next LOOP0 unless m/; (\w+)/o; + ++$AddrList{ $1 }; + + if( m/, Dest: (\w+)$/o ){ + my $Address = $1; + + # Create a cross reference if one does not exist. + if( m/rcall/o ){ + + # We will call these things that are rcalled "functions". + + $Addr2Func{ $Address } = ""; + + } else { + + $Addr2Label{ $Address } = ""; + } + } +} + +# Now sort the addresses and assign labels in increasing order. +foreach my $Address ( sort keys %Addr2Func ){ + $Addr2Func{ $Address } = sprintf( "Func%03d", $FuncNum++ ); +} + +foreach my $Address ( sort keys %Addr2Label ){ + $Addr2Label{ $Address } = sprintf( "L%03d", $LabelNum++ ); +} + +# I suppose we wouldn't really have to revisit every single line in the +# source file here, if we would have kept track of the Buf Indexes that +# need updating. Oh well. This is pass 2. +LOOP1: foreach( @Buf ){ + + if( m/^(\s;*\w+\s+)-*[\d]+(\s+; \w+, Dest: (\w+))$/o || + m/^(\s;*\w+\s+\d+, )-*[\d]+(\s+; \w+, Dest: (\w+))$/o ){ + my $LineBeg = $1; + my $LineEnd = $2; + my $Address = $3; + + # Check for the existance of a Labelable target + if( !exists( $AddrList{ $Address } )){ + + # No Labelable target. Mark this line. + chomp; + $_ = $_." ##### Dest BOGUS #####\n"; + + # Delete this key so we don't look for the place to put the + # label later. + + if( $LineBeg =~ m/rcall/o ){ + delete $Addr2Func{ $Address }; + } else { + delete $Addr2Label{ $Address }; + } + + next LOOP1; + + } + + # Change the source line to include our new label + if( $LineBeg =~ m/rcall/o ){ + + $_ = "$LineBeg$Addr2Func{ $Address }$LineEnd\n"; + + } else { + + $_ = "$LineBeg$Addr2Label{ $Address }$LineEnd\n"; + } + } +} + +# Now go through and put in the labels. First get a list of function +# addresses and label addresses in order. +my @FuncAddrList = sort keys %Addr2Func; +my $FuncAddress = shift @FuncAddrList; +my @LabelAddrList = sort keys %Addr2Label; +my $LabelAddress = shift @LabelAddrList; +#print "FuncAddrList=@FuncAddrList\nLabelAddrList=@LabelAddrList\n"; + +# I guess this is pass 3. Actually, it might be easier to read if this +# pass were split into two seperate passes - one for Func's and one for +# Label's. +LOOP2: for( my $Index = 0; $Index < $#Buf; $Index++ ){ + + next LOOP2 unless $Buf[ $Index ] =~ m/; (\w+)/o; + my $ThisAddr = $1; + + $FuncAddress = shift @FuncAddrList if( $FuncAddress and $ThisAddr gt $FuncAddress ); + $LabelAddress = shift @LabelAddrList if( $LabelAddress and $ThisAddr gt $LabelAddress ); + + next LOOP2 if( $FuncAddress and $ThisAddr lt $FuncAddress ) and + ( $LabelAddress and $ThisAddr lt $LabelAddress ); + + #printf "ThisAddr=%s FuncAddress=%s LabelAddress=%s\n", + # defined $ThisAddr ? $ThisAddr : "undef", + # defined $FuncAddress ? $FuncAddress : "undef", + # defined $LabelAddress ? $LabelAddress : "undef"; + + if( $FuncAddress and $ThisAddr eq $FuncAddress ){ + + #print "Before\n"; + #print "Index - 2 =".( $Index - 2 )." $Buf[ $Index - 2 ]"; + #print "Index - 1 =".( $Index - 1 )." $Buf[ $Index - 1 ]"; + #print "Index =".( $Index + 0 )." $Buf[ $Index + 0 ]"; + #print "Index + 1 =".( $Index + 1 )." $Buf[ $Index + 1 ]"; + #print "Index + 2 =".( $Index + 2 )." $Buf[ $Index + 2 ]"; + #print "Index + 3 =".( $Index + 3 )." $Buf[ $Index + 3 ]"; + + # The outer if is just because I'm paranoid. It would only be false + # on the first line of the input file which should never even have + # an address. + if( $Index ){ + + # If there is a blank line above this, just put in the function + # label. Otherwise, add a blank line and the function label. + if( $Buf[ $Index - 1 ] eq "\n" ){ + splice( @Buf, $Index, 0, "$Addr2Func{ $FuncAddress }:\n" ); + $Index += 1; + } else { + splice( @Buf, $Index, 0, "\n", "$Addr2Func{ $FuncAddress }:\n" ); + $Index += 2; + } + + } else { + splice( @Buf, $Index, 0, "$Addr2Func{ $FuncAddress }:\n" ); + $Index += 1; + } + + #print "After\n"; + #print "Index - 4 =".( $Index - 4 )." $Buf[ $Index - 4 ]"; + #print "Index - 3 =".( $Index - 3 )." $Buf[ $Index - 3 ]"; + #print "Index - 2 =".( $Index - 2 )." $Buf[ $Index - 2 ]"; + #print "Index - 1 =".( $Index - 1 )." $Buf[ $Index - 1 ]"; + #print "Index =".( $Index + 0 )." $Buf[ $Index + 0 ]"; + #print "Index + 1 =".( $Index + 1 )." $Buf[ $Index + 1 ]"; + + $FuncAddress = shift @FuncAddrList; + } + + if( $LabelAddress and $ThisAddr eq $LabelAddress ){ + + #print "Before\n"; + #print "Index - 2 =".( $Index - 2 )." $Buf[ $Index - 2 ]"; + #print "Index - 1 =".( $Index - 1 )." $Buf[ $Index - 1 ]"; + #print "Index =".( $Index + 0 )." $Buf[ $Index + 0 ]"; + #print "Index + 1 =".( $Index + 1 )." $Buf[ $Index + 1 ]"; + #print "Index + 2 =".( $Index + 2 )." $Buf[ $Index + 2 ]"; + #print "Index + 3 =".( $Index + 3 )." $Buf[ $Index + 3 ]"; + + # The outer if is just because I'm paranoid. It would only be true + # on the first line of the input file which should never even have + # an address. + if( $Index ){ + + # If there is a blank line above this, just put in the function + # label. Otherwise, add a blank line and the function label. + if( $Buf[ $Index - 1 ] eq "\n" ){ + splice( @Buf, $Index, 0, "$Addr2Label{ $LabelAddress }:\n" ); + $Index += 1; + } else { + splice( @Buf, $Index, 0, "\n", "$Addr2Label{ $LabelAddress }:\n" ); + $Index += 2; + } + + } else { + splice( @Buf, $Index, 0, "$Addr2Label{ $LabelAddress }:\n" ); + $Index += 1; + } + + #print "After\n"; + #print "Index - 4 =".( $Index - 4 )." $Buf[ $Index - 4 ]"; + #print "Index - 3 =".( $Index - 3 )." $Buf[ $Index - 3 ]"; + #print "Index - 2 =".( $Index - 2 )." $Buf[ $Index - 2 ]"; + #print "Index - 1 =".( $Index - 1 )." $Buf[ $Index - 1 ]"; + #print "Index =".( $Index + 0 )." $Buf[ $Index + 0 ]"; + #print "Index + 1 =".( $Index + 1 )." $Buf[ $Index + 1 ]"; + + $LabelAddress = shift @LabelAddrList; + } +} + +# Pass 4 is the shortest code, but probably the longest time. +# Isn't that funny? +foreach( @Buf ){ + print; +} diff --git a/src/mkutil/revava-0.3/make_test_source.C b/src/mkutil/revava-0.3/make_test_source.C new file mode 100644 index 00000000..4f73bd12 --- /dev/null +++ b/src/mkutil/revava-0.3/make_test_source.C @@ -0,0 +1,478 @@ +/* + Program: make_test_source - Creates test source for revava. + File: make_test_source.C, Copyright (C) 2001 Daniel J. Winker + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include /* Nick */ +#include /* Nick */ + +#include "Avr.h" + +class TMyAvr : public TAvr{ + + public: + + void make_test_source( void ); + + private: + + struct arg_tries { + char* arg; + struct arg_tries* prev; + struct arg_tries* next; + }; + + void test_instruction( TInstSet* pInstSet ); + struct arg_tries* get_tries( eArgTypes pArgType ); +}; + +TMyAvr MyAvr; + +int main( void ){ + + MyAvr.make_test_source(); + return 0; +} + +void TMyAvr::make_test_source( void ){ + + TAvr::TInstSet* pInstSet; + + puts( "#arch AT90S8515" ); + puts( "#include \"avr.inc\"" ); + puts( "" ); + puts( "\tseg abs=0x0 flash.code0" ); + puts( "" ); + + for( pInstSet = TAvr::InstSet; '\0' != pInstSet->opcode[ 0 ]; pInstSet++ ){ + MyAvr.test_instruction( pInstSet ); + } + + // The last two are "call" and "jmp" which are not defined in this model. + puts( "" ); + puts( "\tseg abs=0x1000 flash.code1" ); + puts( "" ); + puts( "\tdc.W\t0xFFFF" ); + puts( "\tdc.W\t0x940E" ); + puts( "\tdc.W\t0x940C" ); +} + +void TMyAvr::test_instruction( TAvr::TInstSet* pInstSet ){ + + struct arg_tries* pt0; + struct arg_tries* pt1; + struct arg_tries* pt_temp; + char format_string[ 40 ]; + + if( ARG_none == pInstSet->arg0_type ){ + + // There can be no arg1 + printf( "\t%s\n", pInstSet->name ); + + } else if( ARG_none == pInstSet->arg1_type || ARG_copyArg == pInstSet->arg1_type ) { + + // There is an arg0, but no arg1 + pt0 = get_tries( pInstSet->arg0_type ); + + switch( pInstSet->arg[ 0 ] ){ + + case 'd': + strcpy( format_string, "\t%s\tr%s\n" ); + break; + + case 'k': + case 's': + strcpy( format_string, "\t%s\t%s\n" ); + break; + + default: + fprintf( stderr, "Bad Error 10: arg0 of %s is type '%c'\n", pInstSet->name, pInstSet->arg[ 0 ] ); + exit( 1 ); + break; + } + + while( pt0 ){ + + printf( + format_string, + pInstSet->name, + pt0->arg ); + + pt_temp = pt0; + pt0 = pt0->next; + delete pt_temp; + } + + } else { + + // This is both an arg0 and an arg1 + pt0 = get_tries( pInstSet->arg0_type ); + + switch( pInstSet->arg[ 0 ] ){ + + case 'd': + case 'r': + strcpy( format_string, "\t%s\tr%s" ); + break; + + case 'K': + case 'P': + case 'p': + case 's': + strcpy( format_string, "\t%s\t%s" ); + break; + + case 'X': + case 'Y': + case 'Z': + + if( 0 == strcmp( "std", pInstSet->name )){ + sprintf( + format_string, + "\t%%s\t%c+%%s", + pInstSet->arg[ 0 ] ); + } + else { + strcpy( format_string, "\t%s\t%s" ); + } + + break; + + default: + fprintf( stderr, "Bad Error 11: arg0 of %s is type '%c'\n", pInstSet->name, pInstSet->arg[ 0 ] ); + exit( 1 ); + break; + } + + switch( pInstSet->arg[ 1 ] ){ + + case 'd': + case 'r': + sprintf( format_string, "%s, r%%s\n", format_string ); + break; + + case 'K': + case 'P': + case 'b': + case 'k': + sprintf( format_string, "%s, %%s\n", format_string ); + break; + + case 'X': + case 'Y': + case 'Z': + + if( 0 == strcmp( "ldd", pInstSet->name )){ + sprintf( + format_string, + "%s, %c+%%s\n", + format_string, + pInstSet->arg[ 1 ] ); + } + else { + sprintf( + format_string, + "%s, %%s\n", + format_string ); + } + + break; + + default: + fprintf( stderr, "Bad Error 12: arg1 of %s is type '%c'\n", pInstSet->name, pInstSet->arg[ 1 ] ); + exit( 1 ); + break; + } + + while( pt0 ){ + + pt1 = MyAvr.get_tries( pInstSet->arg1_type ); + + while( pt1 ){ + + printf( + format_string, + pInstSet->name, + pt0->arg, + pt1->arg ); + + pt_temp = pt1; + pt1 = pt1->next; + delete pt_temp; + } + + pt_temp = pt0; + pt0 = pt0->next; + delete pt_temp; + } + } +} + +struct TMyAvr::arg_tries* TMyAvr::get_tries( TAvr::eArgTypes ArgType ){ + + arg_tries* pt = NULL; + arg_tries* pt_temp = NULL; + + switch( ArgType ){ + + case ARG_none: + case ARG_copyArg: + + pt = NULL; + + break; + + case ARG_0_31: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "15"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "31"; + + pt_temp->next = NULL; + + break; + + case ARG_0_7: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "4"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "7"; + + pt_temp->next = NULL; + + break; + + case ARG_0_63: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "0x0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0x20"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0x3F"; + + pt_temp->next = NULL; + + break; + + case ARG_16_31: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "16"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "24"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "31"; + + pt_temp->next = NULL; + + break; + + case ARG_0_255: + case ARG_cm0_cm255: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "0x0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0x7F"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0xFF"; + + pt_temp->next = NULL; + + break; + + case ARG_neg64_63: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "-64"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "62"; + + pt_temp->next = NULL; + + break; + + case ARG_neg2KB_2KB: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "-2048"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "2048"; + + pt_temp->next = NULL; + + break; + + case ARG_24_26_28_30: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "24"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "30"; + + pt_temp->next = NULL; + + break; + + case ARG_longCall: + + pt = new arg_tries; + pt_temp = pt; + pt_temp->arg = "0x0000"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0x8000"; + + pt_temp->next = new arg_tries; + pt_temp = pt_temp->next; + pt_temp->arg = "0xFFFF"; + + pt_temp->next = NULL; + + break; + + case ARG_specialX: + + pt = new arg_tries; + pt->arg = "X"; + pt->next = NULL; + + break; + + case ARG_specialIncX: + + pt = new arg_tries; + pt->arg = "X+"; + pt->next = NULL; + + break; + + case ARG_specialDecX: + + pt = new arg_tries; + pt->arg = "-X"; + pt->next = NULL; + + break; + + case ARG_specialY: + + pt = new arg_tries; + pt->arg = "Y"; + pt->next = NULL; + + break; + + case ARG_specialIncY: + + pt = new arg_tries; + pt->arg = "Y+"; + pt->next = NULL; + + break; + + case ARG_specialDecY: + + pt = new arg_tries; + pt->arg = "-Y"; + pt->next = NULL; + + break; + + case ARG_specialZ: + + pt = new arg_tries; + pt->arg = "Z"; + pt->next = NULL; + + break; + + case ARG_specialIncZ: + + pt = new arg_tries; + pt->arg = "Z+"; + pt->next = NULL; + + break; + + case ARG_specialDecZ: + + pt = new arg_tries; + pt->arg = "-Z"; + pt->next = NULL; + + break; + + default: + fputs( "Bad Error 2\n", stderr ); + exit( 1 ); + break; + } + + return( pt ); +} diff --git a/src/mkutil/revava-0.3/make_test_source.exe b/src/mkutil/revava-0.3/make_test_source.exe new file mode 100644 index 0000000000000000000000000000000000000000..45ab90a76e3e5b6ffc238a5a6133f72294b6e936 GIT binary patch literal 98755 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 II=!m@4=1rs-2eap literal 0 HcmV?d00001 diff --git a/src/nicktemp/avr_make b/src/nicktemp/avr_make new file mode 100644 index 00000000..261036ed --- /dev/null +++ b/src/nicktemp/avr_make @@ -0,0 +1,68 @@ +# GCC-AVR standard makefile +# Based on AVRfreaks.net January 2000 sample makefile +# For compilation under Microsoft Windows environment + +# Variables definitions + CC = avr-gcc + AS = avr-gcc -x assembler-with-cpp + RM = rm -f + RN = mv + BIN = avr-objcopy + SIZE = avr-size + INCDIR = . + LIBDIR = avr/lib + SHELL = sh.exe + +# Output format (srec or ihex, avrobj is always created) + FORMAT = ihex + +# Project specific object files + OBJ = $(ASRC:.s=.o) $(SRC:.c=.o) + CPFLAGS += -mmcu=$(MCU) + ASFLAGS += -mmcu=$(MCU) + LDFLAGS += -mmcu=$(MCU) + +# Define make process + +#all: $(TRG).obj $(TRG).elf $(TRG).rom $(TRG).eep $(TRG).ok +all: $(TRG).s $(TRG).elf $(TRG).hex $(TRG).eep $(TRG).ok +%.o : %.c + $(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.s : %.c + $(CC) -S $(CPFLAGS) -I$(INCDIR) $< -o $@ +%.o : %.s + $(AS) -c $(ASFLAGS) -I$(INCDIR) $< -o $@ +%.elf: $(OBJ) + $(CC) $(OBJ) $(LIB) $(LDFLAGS) -o $@ +%.obj: %.elf + $(BIN) -O avrobj -R .eeprom $< $@ +%.rom: %.elf + $(BIN) -O $(FORMAT) -R .eeprom $< $@ +#%.eep: %.elf +# $(BIN) -j .eeprom --set-section-flags=.eeprom="alloc,load" section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.eep: %.elf + $(BIN) -j .eeprom --set-section-flags .eeprom="alloc,load" --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ +%.hex: %.elf + $(BIN) -O ihex $< $@ + +# No error message if successfully compiled +%ok: + @echo "Errors: none" + +# Clean up directory +clean: + $(RM) $(OBJ) + $(RM) $(SRC:.c=.s) + $(RM) $(SRC:.c=.lst) + $(RM) $(TRG).map + $(RM) $(TRG).elf + + $(RM) $(TRG).obj + $(RM) $(TRG).a90 + $(RM) $(TRG).hex + $(RM) *.bak + $(RM) *.log + +size: + $(SIZE) $(TRG).elf + diff --git a/src/nicktemp/hello.c b/src/nicktemp/hello.c new file mode 100644 index 00000000..57fa35c9 --- /dev/null +++ b/src/nicktemp/hello.c @@ -0,0 +1,49 @@ +/* hello.c by Nick for Hytech AVR */ + +#include +#include +#include "hello.h" + +int my_putc(char c) + { + while (bit_is_set(UCSRA, UDRE) == 0) + ; + UDR = c; + return 0; + } + +int my_getc(void) + { + if (bit_is_set(UCSRA, RXC) == 0) + return -1; + return UDR; + } + +int main(void) + { + /* initialise the AVR's built-in UART for 9600 bps */ + UCSRA = _BV(TXC); + UCSRB = _BV(TXEN) | _BV(RXEN); + UBRR = 71; + /* UBRRH = 0; */ /* = (11059200 / (9600 * 16)) - 1 */ + +#if 0 + /* send a demo message to ISPD via the AVR's UART */ + my_putc('h'); + my_putc('e'); + my_putc('l'); + my_putc('l'); + my_putc('o'); +#else + /* setup the standard input, output and error streams */ + fdevopen(my_putc, my_getc, 0); + + /* send a demo message to ISPD via the AVR's UART */ + printf("hello, world\r\n"); +#endif + + /* enter an infinite loop as we can never exit */ + while (1) + ; + } + diff --git a/src/nicktemp/hello.eep b/src/nicktemp/hello.eep new file mode 100644 index 00000000..1996e8fd --- /dev/null +++ b/src/nicktemp/hello.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/src/nicktemp/hello.elf b/src/nicktemp/hello.elf new file mode 100644 index 0000000000000000000000000000000000000000..ea5327a26411a68df594cb2f8bf46a62346686f4 GIT binary patch literal 18368 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 j>C6Jg + 4:hello.c **** #include + 5:hello.c **** #include "hello.h" + 6:hello.c **** + 7:hello.c **** int my_putc(char c) + 8:hello.c **** { + 70 .stabn 68,0,8,.LM1-my_putc + 71 .LM1: + 72 /* prologue: frame size=1 */ + 73 0000 CF93 push r28 + 74 0002 DF93 push r29 + 75 0004 CDB7 in r28,__SP_L__ + 76 0006 DEB7 in r29,__SP_H__ + 77 0008 2197 sbiw r28,1 + 78 000a 0FB6 in __tmp_reg__,__SREG__ + 79 000c F894 cli + 80 000e DEBF out __SP_H__,r29 + 81 0010 0FBE out __SREG__,__tmp_reg__ + 82 0012 CDBF out __SP_L__,r28 + 83 /* prologue end (size=10) */ + 84 0014 8983 std Y+1,r24 + 9:hello.c **** nclude "hello.h" + 85 .stabn 68,0,9,.LM2-my_putc + 86 .LM2: + 87 .L2: + 88 0016 8091 2B00 lds r24,43 + 89 001a 9927 clr r25 + 90 001c 8072 andi r24,lo8(32) + 91 001e 9070 andi r25,hi8(32) + 92 0020 0097 sbiw r24,0 + 93 0022 C9F3 breq .L2 + 10:hello.c **** o.h> + 11:hello.c **** #include + 94 .stabn 68,0,11,.LM3-my_putc + 95 .LM3: + 96 0024 8981 ldd r24,Y+1 + 97 0026 8093 2C00 sts 44,r24 + 12:hello.c **** R */ + 98 .stabn 68,0,12,.LM4-my_putc + 99 .LM4: + 100 002a 80E0 ldi r24,lo8(0) + 101 002c 90E0 ldi r25,hi8(0) + 13:hello.c **** /* hello.c by Nick for Hytech AVR */ + GAS LISTING C:\cygwin\tmp/cc8iaaaa.s page 3 + + + 102 .stabn 68,0,13,.LM5-my_putc + 103 .LM5: + 104 /* epilogue: frame size=1 */ + 105 002e 2196 adiw r28,1 + 106 0030 0FB6 in __tmp_reg__,__SREG__ + 107 0032 F894 cli + 108 0034 DEBF out __SP_H__,r29 + 109 0036 0FBE out __SREG__,__tmp_reg__ + 110 0038 CDBF out __SP_L__,r28 + 111 003a DF91 pop r29 + 112 003c CF91 pop r28 + 113 003e 0895 ret + 114 /* epilogue end (size=9) */ + 115 /* function my_putc size 32 (13) */ + 116 .size my_putc, .-my_putc + 117 .Lscope0: + 118 .stabs "",36,0,0,.Lscope0-my_putc + 119 .stabs "my_getc:F(0,1)",36,0,16,my_getc + 120 .global my_getc + 121 .type my_getc, @function + 122 my_getc: + 14:hello.c **** /* hello.c by Nick for Hytech AVR */ + 15:hello.c **** + 16:hello.c **** #include + 123 .stabn 68,0,16,.LM6-my_getc + 124 .LM6: + 125 /* prologue: frame size=2 */ + 126 0040 CF93 push r28 + 127 0042 DF93 push r29 + 128 0044 CDB7 in r28,__SP_L__ + 129 0046 DEB7 in r29,__SP_H__ + 130 0048 2297 sbiw r28,2 + 131 004a 0FB6 in __tmp_reg__,__SREG__ + 132 004c F894 cli + 133 004e DEBF out __SP_H__,r29 + 134 0050 0FBE out __SREG__,__tmp_reg__ + 135 0052 CDBF out __SP_L__,r28 + 136 /* prologue end (size=10) */ + 17:hello.c **** by Nick for Hytech AVR */ + 137 .stabn 68,0,17,.LM7-my_getc + 138 .LM7: + 139 0054 8091 2B00 lds r24,43 + 140 0058 8823 tst r24 + 141 005a 2CF0 brlt .L6 + 18:hello.c **** /* hello.c by Nick for Hytech AVR */ + 142 .stabn 68,0,18,.LM8-my_getc + 143 .LM8: + 144 005c 8FEF ldi r24,lo8(-1) + 145 005e 9FEF ldi r25,hi8(-1) + 146 0060 8983 std Y+1,r24 + 147 0062 9A83 std Y+2,r25 + 148 0064 05C0 rjmp .L5 + 149 .L6: + 19:hello.c **** /* hello.c by Nick for Hytech AVR */ + 150 .stabn 68,0,19,.LM9-my_getc + 151 .LM9: + 152 0066 8091 2C00 lds r24,44 + GAS LISTING C:\cygwin\tmp/cc8iaaaa.s page 4 + + + 153 006a 9927 clr r25 + 154 006c 8983 std Y+1,r24 + 155 006e 9A83 std Y+2,r25 + 20:hello.c **** /* hello.c by Nick for Hytech AVR */ + 156 .stabn 68,0,20,.LM10-my_getc + 157 .LM10: + 158 .L5: + 159 0070 8981 ldd r24,Y+1 + 160 0072 9A81 ldd r25,Y+2 + 161 /* epilogue: frame size=2 */ + 162 0074 2296 adiw r28,2 + 163 0076 0FB6 in __tmp_reg__,__SREG__ + 164 0078 F894 cli + 165 007a DEBF out __SP_H__,r29 + 166 007c 0FBE out __SREG__,__tmp_reg__ + 167 007e CDBF out __SP_L__,r28 + 168 0080 DF91 pop r29 + 169 0082 CF91 pop r28 + 170 0084 0895 ret + 171 /* epilogue end (size=9) */ + 172 /* function my_getc size 35 (16) */ + 173 .size my_getc, .-my_getc + 174 .Lscope1: + 175 .stabs "",36,0,0,.Lscope1-my_getc + 176 .data + 177 .LC0: + 178 0000 6865 6C6C .string "hello, world\r\n" + 178 6F2C 2077 + 178 6F72 6C64 + 178 0D0A 00 + 179 .text + 180 .stabs "main:F(0,1)",36,0,23,main + 181 .global main + 182 .type main, @function + 183 main: + 21:hello.c **** /* hello.c by Nick for Hytech AVR */ + 22:hello.c **** + 23:hello.c **** #include + 184 .stabn 68,0,23,.LM11-main + 185 .LM11: + 186 /* prologue: frame size=0 */ + 187 0086 C0E0 ldi r28,lo8(__stack - 0) + 188 0088 D0E0 ldi r29,hi8(__stack - 0) + 189 008a DEBF out __SP_H__,r29 + 190 008c CDBF out __SP_L__,r28 + 191 /* prologue end (size=4) */ + 24:hello.c **** by Nick for Hytech AVR */ + 25:hello.c **** + 192 .stabn 68,0,25,.LM12-main + 193 .LM12: + 194 008e 80E4 ldi r24,lo8(64) + 195 0090 8093 2B00 sts 43,r24 + 26:hello.c **** /* hello.c by Nick for Hytech AVR */ + 196 .stabn 68,0,26,.LM13-main + 197 .LM13: + 198 0094 88E1 ldi r24,lo8(24) + 199 0096 8093 2A00 sts 42,r24 + GAS LISTING C:\cygwin\tmp/cc8iaaaa.s page 5 + + + 27:hello.c **** /* hello.c by Nick for Hytech AVR */ + 200 .stabn 68,0,27,.LM14-main + 201 .LM14: + 202 009a 87E4 ldi r24,lo8(71) + 203 009c 8093 2900 sts 41,r24 + 28:hello.c **** /* hello.c by Nick for Hytech AVR */ + 29:hello.c **** + 30:hello.c **** #include + 31:hello.c **** #include + 32:hello.c **** #include "hello.h" + 33:hello.c **** + 34:hello.c **** int my_putc(char c) + 35:hello.c **** { + 36:hello.c **** while (bit_is_set(UCSRA, UDRE) == 0) + 37:hello.c **** ; + 38:hello.c **** UDR = c; + 39:hello.c **** return 0; + 204 .stabn 68,0,39,.LM15-main + 205 .LM15: + 206 00a0 40E0 ldi r20,lo8(0) + 207 00a2 50E0 ldi r21,hi8(0) + 208 00a4 60E0 ldi r22,lo8(pm(my_getc)) + 209 00a6 70E0 ldi r23,hi8(pm(my_getc)) + 210 00a8 80E0 ldi r24,lo8(pm(my_putc)) + 211 00aa 90E0 ldi r25,hi8(pm(my_putc)) + 212 00ac 00D0 rcall fdevopen + 40:hello.c **** UDRE) == 0) + 41:hello.c **** ; + 42:hello.c **** UDR = c; + 213 .stabn 68,0,42,.LM16-main + 214 .LM16: + 215 00ae 80E0 ldi r24,lo8(.LC0) + 216 00b0 90E0 ldi r25,hi8(.LC0) + 217 00b2 9F93 push r25 + 218 00b4 8F93 push r24 + 219 00b6 00D0 rcall printf + 220 00b8 0F90 pop __tmp_reg__ + 221 00ba 0F90 pop __tmp_reg__ + 43:hello.c **** _set(UCSRA, UDRE) == 0) + 44:hello.c **** ; + 45:hello.c **** UDR = c; + 46:hello.c **** return 0; + 222 .stabn 68,0,46,.LM17-main + 223 .LM17: + 224 .L8: + 225 00bc FFCF rjmp .L8 + 47:hello.c **** UDRE) == 0) + 48:hello.c **** ; + 226 .stabn 68,0,48,.LM18-main + 227 .LM18: + 228 /* epilogue: frame size=0 */ + 229 /* epilogue: noreturn */ + 230 /* epilogue end (size=0) */ + 231 /* function main size 28 (24) */ + 232 .size main, .-main + 233 .Lscope2: + 234 .stabs "",36,0,0,.Lscope2-main + GAS LISTING C:\cygwin\tmp/cc8iaaaa.s page 6 + + + 235 .text + 236 .stabs "",100,0,0,Letext + 237 Letext: + 238 /* File "hello.c": code 95 = 0x005f ( 53), prologues 24, epilogues 18 */ + GAS LISTING C:\cygwin\tmp/cc8iaaaa.s page 7 + + +DEFINED SYMBOLS + *ABS*:00000000 hello.c + *ABS*:0000003f __SREG__ + *ABS*:0000003e __SP_H__ + *ABS*:0000003d __SP_L__ + *ABS*:00000000 __tmp_reg__ + *ABS*:00000001 __zero_reg__ +C:\cygwin\tmp/cc8iaaaa.s:69 .text:00000000 my_putc +C:\cygwin\tmp/cc8iaaaa.s:122 .text:00000040 my_getc +C:\cygwin\tmp/cc8iaaaa.s:183 .text:00000086 main +C:\cygwin\tmp/cc8iaaaa.s:237 .text:000000be Letext + +UNDEFINED SYMBOLS +__do_copy_data +__do_clear_bss +__stack +fdevopen +printf diff --git a/src/nicktemp/hello.map b/src/nicktemp/hello.map new file mode 100644 index 00000000..3a569e80 --- /dev/null +++ b/src/nicktemp/hello.map @@ -0,0 +1,426 @@ +Archive member included because of file (symbol) + +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + hello.o (__do_copy_data) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + hello.o (__do_clear_bss) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + hello.o (fdevopen) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + hello.o (printf) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) (vfprintf) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) (calloc) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) (fputc) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) (malloc) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(memset.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) (memset) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_mulhi3.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) (__mulhi3) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_udivmodsi4.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) (__udivmodsi4) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_prologue.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) (__prologue_saves__) +c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_epilogue.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) (__epilogue_restores__) + +Allocating common symbols +Common symbol size file + +__iob 0x6 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + +Memory Configuration + +Name Origin Length Attributes +text 0x00000000 0x00002000 xr +data 0x00800060 0x0000ffa0 rw !x +eeprom 0x00810000 0x00010000 rw !x +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +LOAD hello.o +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a +LOAD c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.text + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t*) + +.rela.text + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t*) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.rodata + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r*) + +.rela.rodata + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r*) + +.rel.data + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d*) + +.rela.data + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.bss + *(.rel.bss) + +.rela.bss + *(.rela.bss) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x00000000 0xa6a + *(.vectors) + .vectors 0x00000000 0x1c c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x00000000 __vectors + 0x00000000 __vector_default + 0x0000001c __ctors_start = . + *(.ctors) + 0x0000001c __ctors_end = . + 0x0000001c __dtors_start = . + *(.dtors) + 0x0000001c __dtors_end = . + *(.progmem.gcc*) + *(.progmem*) + 0x0000001c . = ALIGN (0x2) + *(.init0) + *(.init1) + *(.init2) + .init2 0x0000001c 0xc c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + *(.init3) + *(.init4) + .init4 0x00000028 0x18 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + 0x00000028 __do_copy_data + .init4 0x00000040 0x10 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + 0x00000040 __do_clear_bss + *(.init5) + *(.init6) + *(.init7) + *(.init8) + *(.init9) + .init9 0x00000050 0x2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + *(.text) + .text 0x00000052 0x2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x00000052 __vector_1 + 0x00000052 __vector_12 + 0x00000052 __bad_interrupt + 0x00000052 __vector_6 + 0x00000052 __vector_3 + 0x00000052 __vector_11 + 0x00000052 __vector_13 + 0x00000052 __vector_7 + 0x00000052 __vector_5 + 0x00000052 __vector_4 + 0x00000052 __vector_9 + 0x00000052 __vector_2 + 0x00000052 __vector_8 + 0x00000052 __vector_10 + .text 0x00000054 0xbe hello.o + 0x000000da main + 0x00000094 my_getc + 0x00000054 my_putc + .text 0x00000112 0x8e c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + 0x00000112 fdevopen + .text 0x000001a0 0x2c c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + 0x000001a0 printf + .text 0x000001cc 0x518 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + 0x000001cc vfprintf + .text 0x000006e4 0x30 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + 0x000006e4 calloc + .text 0x00000714 0x5a c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + 0x00000714 fputc + .text 0x0000076e 0x20a c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + 0x0000076e malloc + 0x000008a8 free + .text 0x00000978 0x10 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(memset.o) + 0x00000978 memset + 0x00000988 . = ALIGN (0x2) + *(.text.*) + .text.libgcc 0x00000988 0x24 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_mulhi3.o) + 0x00000988 __mulhi3 + .text.libgcc 0x000009ac 0x4e c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_udivmodsi4.o) + 0x000009ac __udivmodsi4 + .text.libgcc 0x000009fa 0x38 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_prologue.o) + 0x000009fa __prologue_saves__ + .text.libgcc 0x00000a32 0x38 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_epilogue.o) + 0x00000a32 __epilogue_restores__ + 0x00000a6a . = ALIGN (0x2) + *(.fini9) + *(.fini8) + *(.fini7) + *(.fini6) + *(.fini5) + *(.fini4) + *(.fini3) + *(.fini2) + *(.fini1) + *(.fini0) + 0x00000a6a _etext = . + +.data 0x00800060 0x16 load address 0x00000a6a + 0x00800060 PROVIDE (__data_start, .) + *(.data) + .data 0x00800060 0xf hello.o + .data 0x0080006f 0x6 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + 0x00800071 __malloc_heap_start + 0x00800073 __malloc_heap_end + 0x0080006f __malloc_margin + *(.gnu.linkonce.d*) + 0x00800076 . = ALIGN (0x2) + *fill* 0x00800075 0x1 00 + 0x00800076 _edata = . + 0x00800076 PROVIDE (__data_end, .) + +.bss 0x00800076 0xa + 0x00800076 PROVIDE (__bss_start, .) + *(.bss) + .bss 0x00800076 0x4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + *(COMMON) + COMMON 0x0080007a 0x6 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + 0x0 (size before relaxing) + 0x0080007a __iob + 0x00800080 PROVIDE (__bss_end, .) + 0x00000a6a __data_load_start = LOADADDR (.data) + 0x00000a80 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x00800080 0x0 + 0x00800080 PROVIDE (__noinit_start, .) + *(.noinit*) + 0x00800080 PROVIDE (__noinit_end, .) + 0x00800080 _end = . + 0x00800080 PROVIDE (__heap_start, .) + +.eeprom 0x00810000 0x0 load address 0x00000a80 + *(.eeprom*) + 0x00810000 __eeprom_end = . + +.stab 0x00000000 0x1db8 + *(.stab) + .stab 0x00000000 0x2a0 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + .stab 0x000002a0 0x3b4 hello.o + 0x3c0 (size before relaxing) + .stab 0x00000654 0x3e4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + 0x3f0 (size before relaxing) + .stab 0x00000a38 0x1d4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + 0x2ac (size before relaxing) + .stab 0x00000c0c 0x7b0 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + 0x8a0 (size before relaxing) + .stab 0x000013bc 0x21c c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + 0x264 (size before relaxing) + .stab 0x000015d8 0x204 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + 0x2f4 (size before relaxing) + .stab 0x000017dc 0x570 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + 0x5d0 (size before relaxing) + .stab 0x00001d4c 0x6c c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(memset.o) + 0x78 (size before relaxing) + +.stabstr 0x00000000 0x100b + *(.stabstr) + .stabstr 0x00000000 0x100b c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + 0x0 (size before relaxing) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment + *(.comment) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info) + *(.gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) +OUTPUT(hello.elf elf32-avr) + +Cross Reference Table + +Symbol File +__bad_interrupt c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__bss_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) +__bss_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) +__data_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__data_load_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__data_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) +__do_clear_bss c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_clear_bss.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + hello.o +__do_copy_data c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_copy_data.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + hello.o +__epilogue_restores__ c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_epilogue.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) +__heap_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +__heap_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +__init c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__iob c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) +__malloc_heap_end c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +__malloc_heap_start c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +__malloc_margin c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +__mulhi3 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_mulhi3.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) +__prologue_saves__ c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_prologue.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) +__stack c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o + hello.o +__udivmodsi4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\libgcc.a(_udivmodsi4.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) +__vector_1 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_10 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_11 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_12 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_13 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_2 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_3 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_4 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_5 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_6 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_7 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_8 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_9 c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vector_default c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +__vectors c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +calloc c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) +fdevopen c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fdevopen.o) + hello.o +fputc c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(fputc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) +free c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) +main hello.o + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\crts4433.o +malloc c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(malloc.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) +memset c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(memset.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(calloc.o) +my_getc hello.o +my_putc hello.o +printf c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) + hello.o +vfprintf c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(vfprintf_std.o) + c:\WinAVR\bin\..\lib\gcc-lib\avr\3.3\..\..\..\..\avr\lib\libc.a(printf.o) diff --git a/src/nicktemp/hello.o b/src/nicktemp/hello.o new file mode 100644 index 0000000000000000000000000000000000000000..1e702032c37b5e41781b8846bfc8a4483d5c27f1 GIT binary patch literal 3972 zcma)8U2IfE6h5Vef>0|zY7}D%HqeFb{&%}{L91CR4Kc7FC z@4Rzwe)?Q(b}xOgyXMT4>GIEiPfyk6f>f)|)OTEJupZ9dpIv`Zt>3Aw=hf%m2tK*+ z`0C^7b63u-U8v0lVUO|j)Rn27O;#4_i}eTd_vUMlYI9ioTWxL+eFhw$!TNCh!+N>S z-f5AaSLZIw(PHOJ=gji`anrU-!LCy!$If>=$FJqR?|am>j%WkMc~(MRM^ktg@P1Z8 z`p{|&An&8q7(hyBH3pFDXf+0qI$8~lWhb1~1R`=Zd{@JNXt)Q-SNtOy{z$_YHGEUU ziyGe0+OQMU@UVs_HGECO-vfUlWByUY4>e3}Y(FGeFA5wMc(1@wfd>VS34BywZ&#fV zn6pYWC2+sMmjq4;d_&*?fqxP>EigZ>N%Sl9D$WgSIi9^@W|zR0WHtC{=oSCC;QZ3W zVTH2)vBv*W!wVYL`K#gISKqYOr`nRpQhY+))9o5M~DT| zk#sbM8M{<0bgAX>z=1(G9!s;0I4F@=#21XB{l28BT6C>K(aigc6Q1b=uhT@0yv5RC z)8anOb6>NCxbIknydv%-uTCaJ+)1pCYW^EA9cft6kPJx}Y>KO2v)tblmzIzf2Ho+J zQ}Gj%@)DB@JXI8r)#P%YN8i`v&3hA-N11)Uve5{Kni4qxPWMJ*DX+x7hXxn>#OFrg zC>`tTOVgNL%F2Bt_X*|_n5BHFI%=EV7Q-fydrVA;yy^3DAE>3gNp17ApN%L=?Is*E zYY&K>8pN(mrmcx=L5`zIR$$M{g<4dovv7?Xr#LJ{(cPnBf`e+U;55Z4%MwLh1ko@? ztCn4{ipI&TVOy@u1j?}ofyR(tuOs7~QpxsClgwi;0``w)ZXo=DRebyCk#P2;6Sj&u zyP7w{ZY6J(LgP5q|2K;RSeY!FE(m}rgMG*OG;@j~0jg?Rl!mp@08^t$$wgII>rs6z zY5{FRP~$O4MFF6UdsJVG+(O$YsL6z+BAHMoJ*uxo=Ai8t)N;j zS2)72Q3&61?nulX&#`PrYZJ(O+{F*_G$7wWnZt9N(D?t$V_dg{{Do(y#M~)+L14Z; zD4uq$XPVFB|EgNU`Zf#}u&A8}5apL|ZF+qB;q(x693QSHK9BFk$|oS*#Uj2-D^b2S zL!t8?;r4w{kV0fXYPKaLj_hXH2Ig2Zv2@+6*IK!fmWPX^3Oz4Q(^)7<>TbAy7nx%G|ZUCQBEZ!ZXk*{6ykG%x7SO^_=@3B<8yR2NP7* A(f|Me literal 0 HcmV?d00001 diff --git a/src/nicktemp/hello.s b/src/nicktemp/hello.s new file mode 100644 index 00000000..b87285f1 --- /dev/null +++ b/src/nicktemp/hello.s @@ -0,0 +1,238 @@ + .file "hello.c" + .arch at90s4433 +__SREG__ = 0x3f +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__tmp_reg__ = 0 +__zero_reg__ = 1 + .global __do_copy_data + .global __do_clear_bss + .stabs "c:\\uzi\\src\\nicktemp/",100,0,0,.Ltext0 + .stabs "hello.c",100,0,0,.Ltext0 + .text +.Ltext0: + .stabs "gcc2_compiled.",60,0,0,0 + .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 + .stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0 + .stabs "long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0 + .stabs "unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0 + .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0 + .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,0 + .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,0 + .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0 + .stabs "short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0 + .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0 + .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0 + .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0 + .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0 + .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0 + .stabs "complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0 + .stabs "complex float:t(0,16)=r(0,16);8;0;",128,0,0,0 + .stabs "complex double:t(0,17)=r(0,17);8;0;",128,0,0,0 + .stabs "complex long double:t(0,18)=r(0,18);8;0;",128,0,0,0 + .stabs "__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0 + .stabs "_Bool:t(0,21)=@s8;-16;",128,0,0,0 + .stabs "hello.c",130,0,0,0 + .stabs "c:/WinAVR/avr/include/stdio.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/inttypes.h",130,0,0,0 + .stabs "int8_t:t(3,1)=(0,10)",128,0,46,0 + .stabs "uint8_t:t(3,2)=(0,11)",128,0,47,0 + .stabs "int16_t:t(3,3)=(0,1)",128,0,49,0 + .stabs "uint16_t:t(3,4)=(0,4)",128,0,50,0 + .stabs "int32_t:t(3,5)=(0,3)",128,0,52,0 + .stabs "uint32_t:t(3,6)=(0,5)",128,0,53,0 + .stabs "int64_t:t(3,7)=(0,6)",128,0,55,0 + .stabs "uint64_t:t(3,8)=(0,7)",128,0,56,0 + .stabs "intptr_t:t(3,9)=(3,3)",128,0,58,0 + .stabs "uintptr_t:t(3,10)=(3,4)",128,0,59,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stdarg.h",130,0,0,0 + .stabs "__gnuc_va_list:t(4,1)=(0,19)",128,0,43,0 + .stabs "va_list:t(4,2)=(4,1)",128,0,105,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/lib/gcc-lib/avr/3.3/include/stddef.h",130,0,0,0 + .stabs "size_t:t(5,1)=(0,4)",128,0,213,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/io4433.h",130,0,0,0 + .stabs "c:/WinAVR/avr/include/avr/sfr_defs.h",130,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabn 162,0,0,0 + .stabs "hello.h",130,0,0,0 + .stabn 162,0,0,0 + .stabs "my_putc:F(0,1)",36,0,8,my_putc + .stabs "c:p(0,2)",160,0,7,1 +.global my_putc + .type my_putc, @function +my_putc: + .stabn 68,0,8,.LM1-my_putc +.LM1: +/* prologue: frame size=1 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,1 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + std Y+1,r24 + .stabn 68,0,9,.LM2-my_putc +.LM2: +.L2: + lds r24,43 + clr r25 + andi r24,lo8(32) + andi r25,hi8(32) + sbiw r24,0 + breq .L2 + .stabn 68,0,11,.LM3-my_putc +.LM3: + ldd r24,Y+1 + sts 44,r24 + .stabn 68,0,12,.LM4-my_putc +.LM4: + ldi r24,lo8(0) + ldi r25,hi8(0) + .stabn 68,0,13,.LM5-my_putc +.LM5: +/* epilogue: frame size=1 */ + adiw r28,1 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function my_putc size 32 (13) */ + .size my_putc, .-my_putc +.Lscope0: + .stabs "",36,0,0,.Lscope0-my_putc + .stabs "my_getc:F(0,1)",36,0,16,my_getc +.global my_getc + .type my_getc, @function +my_getc: + .stabn 68,0,16,.LM6-my_getc +.LM6: +/* prologue: frame size=2 */ + push r28 + push r29 + in r28,__SP_L__ + in r29,__SP_H__ + sbiw r28,2 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 +/* prologue end (size=10) */ + .stabn 68,0,17,.LM7-my_getc +.LM7: + lds r24,43 + tst r24 + brlt .L6 + .stabn 68,0,18,.LM8-my_getc +.LM8: + ldi r24,lo8(-1) + ldi r25,hi8(-1) + std Y+1,r24 + std Y+2,r25 + rjmp .L5 +.L6: + .stabn 68,0,19,.LM9-my_getc +.LM9: + lds r24,44 + clr r25 + std Y+1,r24 + std Y+2,r25 + .stabn 68,0,20,.LM10-my_getc +.LM10: +.L5: + ldd r24,Y+1 + ldd r25,Y+2 +/* epilogue: frame size=2 */ + adiw r28,2 + in __tmp_reg__,__SREG__ + cli + out __SP_H__,r29 + out __SREG__,__tmp_reg__ + out __SP_L__,r28 + pop r29 + pop r28 + ret +/* epilogue end (size=9) */ +/* function my_getc size 35 (16) */ + .size my_getc, .-my_getc +.Lscope1: + .stabs "",36,0,0,.Lscope1-my_getc + .data +.LC0: + .string "hello, world\r\n" + .text + .stabs "main:F(0,1)",36,0,23,main +.global main + .type main, @function +main: + .stabn 68,0,23,.LM11-main +.LM11: +/* prologue: frame size=0 */ + ldi r28,lo8(__stack - 0) + ldi r29,hi8(__stack - 0) + out __SP_H__,r29 + out __SP_L__,r28 +/* prologue end (size=4) */ + .stabn 68,0,25,.LM12-main +.LM12: + ldi r24,lo8(64) + sts 43,r24 + .stabn 68,0,26,.LM13-main +.LM13: + ldi r24,lo8(24) + sts 42,r24 + .stabn 68,0,27,.LM14-main +.LM14: + ldi r24,lo8(71) + sts 41,r24 + .stabn 68,0,39,.LM15-main +.LM15: + ldi r20,lo8(0) + ldi r21,hi8(0) + ldi r22,lo8(pm(my_getc)) + ldi r23,hi8(pm(my_getc)) + ldi r24,lo8(pm(my_putc)) + ldi r25,hi8(pm(my_putc)) + rcall fdevopen + .stabn 68,0,42,.LM16-main +.LM16: + ldi r24,lo8(.LC0) + ldi r25,hi8(.LC0) + push r25 + push r24 + rcall printf + pop __tmp_reg__ + pop __tmp_reg__ + .stabn 68,0,46,.LM17-main +.LM17: +.L8: + rjmp .L8 + .stabn 68,0,48,.LM18-main +.LM18: +/* epilogue: frame size=0 */ +/* epilogue: noreturn */ +/* epilogue end (size=0) */ +/* function main size 28 (24) */ + .size main, .-main +.Lscope2: + .stabs "",36,0,0,.Lscope2-main + .text + .stabs "",100,0,0,Letext +Letext: +/* File "hello.c": code 95 = 0x005f ( 53), prologues 24, epilogues 18 */ diff --git a/src/nicktemp/hello.tar.gz b/src/nicktemp/hello.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a9cb3bd6f894a86151de22710fddba3c091da66 GIT binary patch literal 1810 zcmV+t2krPDiwFShtK2>U1MOICZ`(!^_E!n;e;C*fBBi22NtS%JqawEKBrg0CNO>uW z0>+A5NgI(|g1fS43x7j{$?Q?&>*}&6Mqus*zpwl^MG@I=v-Zz@9MrVuMt*<~crCCC>)tAHJm)3>T zaUy5&ZE)*v{U6cuXEaGufQECr7T%ObGNCtf&AkboeCX4&=jHOQh`eCtb9$k)FJyi4 z{R)fSCC}G*JE_jePPr^1P2v1Do@uY*P2g&;S}y%sF5OQ=z^O76`c|l0#dYOJ1qCIamU2%q%dS+5;-T$hHiGCnKWoniRx>4(ZY zY=4}xP8Y26>ni}sZOFn5okkih6trO|NPhfQqroGNy^XVmCa ztK?84i`0l*E3J6s6C7lXHFbSK!#L9G48- zz#oLRdb4b9WGRb8`ip%3*@yZq>%ZG*9i;W&ZFX86*Vg}LyQu$Pwf;}ORR1>=@#Eju z-{ZCFdHk383jV%?=6xHoDgTDwf2*1S53ksj5d@(+@0~v1CpFA}%Qw#%O-4Vy{p_JQ>C!U|K+W7WwFw zSHerAk|RwYMdZtSg*JO95*dYPx7%eS_<<#Y4Fj&w)otU2wAwD0dc9JYkgLwv^DsRb zET`l=pf4*PLM(Cag`PNG9G9@Fe}z>^NY2Pit}zMkFgm@s&ZOn=lPBXjc!P_d&NHSG zzu*j|i|gLmMIXF6CYKkd>BL~&Kn#t=VeCjk5ex3wT#*NlYVKE|?$u5I>f{}?nWd#ts_kteKXFf!in%970;+~~Zrp6V za&!6vY}%`w4EnvJy6VlOHLSiv+iEys`tKXo%p#omuH`O zLuAZ4GoeWXPH`eVKrd@A3xcE4Ugcf?b+v8|nhkj{%7=*z7hE3aLpg=oRbjP36mHol zx?O%!mvlr=aD##AdzBuLzT;s*c5=)v_9|&O;hq=dNZNa8#8fJ_lp6dIsdO`CrA`Lf zUYRdHFNKpFVI3k?UF?@m@j!an$62mqvDfgE*$l!~2$_qQH+dpCeKNkVPJNL{V6sVK zuaYKMb%W6E6T?_Y?JmSVEmk@XU_Aaj^F2DFfQ^xC>AUU@A}76CAep~I`H~=Hxp3Eg zY{0_Q)lL7{p0sgK#{ndX#@zWcn*qWEPKdxCK70!#SYzdmMKOH-n06UO;=`t9Ama!HWf2Hf+?eqx5euM zWc?3Q-nGBw?|%oaX8!wMyOsX_*KW58{P%V6-#}RScC`ZEKFDASymq4}RPn0RI6OQw z1q82_L}}3_JprBxfCqqTJWnRRh{onun7N!K1|3+yvim!-+6+`OKhi`j`;qn-fWst$j7YXwg?x|x&pnD1Mp%Yr46%@i+9vxu$VGpFmOaBC?ANSXjSn;1m?Ba~=Df#^(A5DTBIi)KIB z+J#v&OVMvBTbnTxvMt!0E`vx|;Ed5Uo8){%KgNHh6X9tGQP)z>V<^R&n!_eRsDL3~ ztTwI3O8&e87-G(~v}=J{q48r-bFNt2UG~HpP(s2->q(3t0>8^y;GUM%XvRfUoLa2=xqfRR8T<$6;x0`1r=0KK?N=8UxO4L8~`W)0LGe( APyhe` literal 0 HcmV?d00001 diff --git a/src/nicktemp/makefile b/src/nicktemp/makefile new file mode 100644 index 00000000..eda5bc89 --- /dev/null +++ b/src/nicktemp/makefile @@ -0,0 +1,39 @@ +# Simple Makefile +# Volker Oth (c) 1999 + + +########### change this lines according to your project ################## + +#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) + MCU = at90s4433 + +#put the name of the target file here (without extension) + TRG = hello + +#put your C sourcefiles here +# SRC = uart.c $(TRG).c + SRC = $(TRG).c + +#put additional assembler source file here + ASRC = + +#additional libraries and object files to link + LIB = + +#additional includes to compile + INC = + +#compiler flags +# CPFLAGS = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + CPFLAGS = -g -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst) + +#linker flags + LDFLAGS = -Wl,-Map=$(TRG).map,--cref + +########### you should not need to change the following line ############# +include avr_make + +###### dependecies, add any dependencies you need here ################### + +#uart.o : uart.c uart.h +$(TRG).o : $(TRG).c diff --git a/src/testsystem/aap.diff b/src/testsystem/aap.diff new file mode 100644 index 00000000..d1c8d2cc --- /dev/null +++ b/src/testsystem/aap.diff @@ -0,0 +1,2 @@ +aap1: d2ff d2ff d2ff 92ff d2ff daff d2ff d2ff +aap2: d2ff d2ff daff d2ff daff daff daff 92ff diff --git a/src/testsystem/aap.interleave b/src/testsystem/aap.interleave new file mode 100644 index 0000000000000000000000000000000000000000..4fa3476a723d13974c3d41ab84b805d29f2440bc GIT binary patch literal 126 zcmb1UGneKxV31}5VRIz>AINTG0Ln?T83LI`Kx_=eCO~Wo#AZMYQf>jnmOy0|(rkec L3aE)l9h?RLJjx8D literal 0 HcmV?d00001 diff --git a/src/testsystem/cdout b/src/testsystem/cdout new file mode 100644 index 00000000..522a88a8 --- /dev/null +++ b/src/testsystem/cdout @@ -0,0 +1 @@ +''S''''R'' diff --git a/src/testsystem/cdout2 b/src/testsystem/cdout2 new file mode 100644 index 0000000000000000000000000000000000000000..76f296bcc8ed760b7078ddf1bad650dfa1e22a03 GIT binary patch literal 62 acmb1EmzI`R50h4BkjBSigv%nac)0)qum}eL literal 0 HcmV?d00001 diff --git a/src/testsystem/doit b/src/testsystem/doit new file mode 100644 index 00000000..b3ae5699 --- /dev/null +++ b/src/testsystem/doit @@ -0,0 +1,12 @@ +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout +tter -p /dev/ttyS1 prout diff --git a/src/testsystem/n.sh b/src/testsystem/n.sh index 4bc77d95..9e3271fe 100644 --- a/src/testsystem/n.sh +++ b/src/testsystem/n.sh @@ -1,2 +1,2 @@ #!/bin/sh -gcc -g -DPOSIX_TERMIOS testter.c -o testter +gcc -g -DPOSIX_TERMIOS tter.c -o tter diff --git a/src/testsystem/n.sh.org b/src/testsystem/n.sh.org new file mode 100644 index 00000000..4bc77d95 --- /dev/null +++ b/src/testsystem/n.sh.org @@ -0,0 +1,2 @@ +#!/bin/sh +gcc -g -DPOSIX_TERMIOS testter.c -o testter diff --git a/src/testsystem/prout b/src/testsystem/prout new file mode 100644 index 00000000..a0564bdc --- /dev/null +++ b/src/testsystem/prout @@ -0,0 +1 @@ +)H)e)l)l)o) )P)r)i)n)t)e)r)!) diff --git a/src/testsystem/prout2 b/src/testsystem/prout2 new file mode 100644 index 00000000..713645b7 --- /dev/null +++ b/src/testsystem/prout2 @@ -0,0 +1 @@ +)H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) )H)e)l)l)o) )P)r)i)n)t)e)r)!) diff --git a/src/testsystem/rtc b/src/testsystem/rtc new file mode 100644 index 0000000000000000000000000000000000000000..a0ae62cc4722366616e4d540230183585122e8f7 GIT binary patch literal 770 zcmZ{iM-Bop5Cnn4NJ!+gz>wj@i5&jHhj=+SNZ#(T_To#G$K4~VsH%Ka3YDWuOQo*T zP#GzMHh`yL9bh$;lZrd7)Md%xD7ljo^uYUhsp;mC(FcRTpb88D#E0pg>zYc(@Px;J zD`QVc@|kV10*p|MTTKDe^D_Y7eC!&02G6c(1B~{tEkX7rb|vGj?yJBdfj?gTKfV9} literal 0 HcmV?d00001 diff --git a/src/testsystem/rtc1 b/src/testsystem/rtc1 new file mode 100644 index 0000000000000000000000000000000000000000..9a5aef8a1bccb345273bf7fa1acf8c607e77566f GIT binary patch literal 772 zcmZ{iNe;p=3`K#3C6LMt1U**Mt@4|Rnd!q+G9Bbr zXKFAF^=B#oJPd0Ct1%s! +#include +#ifdef POSIX_TERMIOS +#include +#else +#include +#endif +#include + +#include +#include + +/* ------------------------------------------------------------------------- */ +/* definitions */ + +#define BUFFER 0x80 + +/* ------------------------------------------------------------------------- */ +/* prototypes */ + +void process_esc(char *buf, int *count); +void exit_error(char *mess1, char *mess2); +void exit_restore(void); +void entry_setup(void); +int main(int argc, char **argv); + +/* ------------------------------------------------------------------------- */ +/* global variables */ + +int fd_in, fd_out, fd_ter, fd_file; +char *pname; +char usage[80]; +#ifdef POSIX_TERMIOS +struct termios state_in, state_ter; +#else +int raw_in, raw_ter; +#endif + +/* ------------------------------------------------------------------------- */ + +void exit_error(char *mess1, char *mess2) +{ + char header[20]; + exit_restore(); + sprintf(header, "%s: ", pname); + write(fileno(stderr), header, strlen(header)); + write(fileno(stderr), mess1, strlen(mess1)); + perror(mess2); + exit(1); +} + +void exit_restore(void) + { +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + if (fd_in >= 0 && isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_in, TCSADRAIN, &state_in); +#else + gtty(fd_in, &state); + state.sg_flags = raw_in; + stty(fd_in, &state); +#endif + } + + if (fd_ter >= 0 && isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_ter, TCSADRAIN, &state_ter); +#else + gtty(fd_ter, &state); + state.sg_flags = raw_ter; + stty(fd_ter, &state); +#endif + close(fd_ter); + close(fd_file); + } + } + +void entry_setup(void) + { +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + fd_in = fileno(stdin); + fd_out = fileno(stdout); + + if (isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcgetattr(fd_in, &state); + memcpy(&state_in, &state, sizeof(struct termios)); + state.c_iflag &= (IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | + IXANY | IXON | IXOFF | INPCK | ISTRIP); + state.c_iflag |= (BRKINT | IGNPAR); + state.c_oflag &= ~OPOST; +#ifdef CYGWIN + state.c_lflag &= ~(ECHONL | NOFLSH | +#else + state.c_lflag &= ~(XCASE | ECHONL | NOFLSH | +#endif + ICANON | ISIG | ECHO); + state.c_cflag |= CREAD; + state.c_cc[VTIME] = 5; + state.c_cc[VMIN] = 1; + tcsetattr(fd_in, TCSADRAIN, &state); + tcsetattr(fd_in, TCSADRAIN, &state); + +#else + gtty(fd_in, &state); + raw_in = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_in, &state); +#endif + } + + if (isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + tcgetattr(fd_ter, &state); + memcpy(&state_ter, &state, sizeof(struct termios)); + +#if 0 + state.c_iflag &= (IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | + IXANY | IXON | IXOFF | INPCK | ISTRIP); + state.c_iflag |= (BRKINT | IGNPAR); + state.c_oflag &= ~OPOST; + state.c_lflag &= ~(XCASE | ECHONL | NOFLSH | + ICANON | ISIG | ECHO); + state.c_cflag |= CREAD; + state.c_cc[VTIME] = 5; + state.c_cc[VMIN] = 1; + +#endif +#ifndef CYGWIN + cfmakeraw(&state); + //tcsetattr(fd_ter, TCSADRAIN, &state); + tcsetattr(fd_ter, TCSANOW, &state); +#endif +#else + gtty(fd_ter, &state); + raw_ter = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_ter, &state); +#endif + } + } + +void process_esc(char *buf, int *count) + { + switch (buf[0]) + { + case 'x': + case 'X': + exit_restore(); + fprintf(stderr, "\n%s: exiting\n", pname); + exit(0); + + case 0x1b: + return; /* with count = 1, so as to write it */ + + default: + *count = 0; + return; + } + } + +int main(int argc, char **argv) +{ + int escflag, count; + char buf[BUFFER]; + + pname = argv[0]; + + sprintf(usage, "usage: %s -r|-p devicename filename", pname); + + if (argc < 4) + { + printf("%s\n", usage); + exit(1); + } + + fd_in = -1; + fd_out = -1; + + fd_ter = open(argv[2], O_RDWR); + if (fd_ter < 0) + { + exit_error("can't open ", argv[1]); + } + + entry_setup(); + + escflag = 0; + + if (!strcmp("-p", argv[1])) + { + /* + * PLAYBACK + */ + fd_file = open(argv[3], O_RDONLY); + + if (fd_file < 0) + { + exit_error("can't open ", argv[3]); + } + + count = read(fd_file, buf, BUFFER); + if (count < 0) + { + exit_error("can't read ", argv[3]); + } + + if (count) + { + int i; + + for (i = 0; i < count; i++) + { + struct timeval t; + + t.tv_sec = 0; + t.tv_usec = 100000; /* 100ms */ + + if (write(fd_ter, &buf[i], 1) != 1) + { + exit_error("can't write ", argv[2]); + } + + /* + * A little delay to give the character just + * written time to be transmitted + */ + (void)select(0, NULL, NULL, NULL, &t); + } + } + + } + else if (!strcmp("-r", argv[1])) + { + /* + * RECORD + */ + fprintf(stderr, "%s: ready\n", pname); + fflush(stderr); + + fd_file = open(argv[3], O_WRONLY|O_CREAT); + + if (fd_file < 0) + { + exit_error("can't open ", argv[3]); + } + + while (1) + { + fd_set readfds; + int fdmax, fdrdy; + + FD_ZERO(&readfds); + FD_SET(fd_in, &readfds); + FD_SET(fd_ter, &readfds); + + fdmax = fd_in > fd_ter ? fd_in : fd_ter; + fdrdy = select(fdmax+1, &readfds, NULL, NULL, NULL); + + if (fdrdy < 0) + { + exit_error("can't select on read ", "select"); + } + + if (FD_ISSET(fd_in, &readfds)) + { + exit_restore(); + fprintf(stderr, "%s: exiting\n", pname); + exit(0); + } + + if (FD_ISSET(fd_ter, &readfds)) + { + count = read(fd_ter, buf, BUFFER); + if (count < 0) + { + exit_error("can't read ", argv[1]); + } + + if (count) + { + if (write(fd_out, buf, count) != count) + { + exit_error("can't write ", "stdout"); + } + + if (write(fd_file, buf, count) != count) + { + exit_error("can't write ", argv[3]); + } + } + } + } + } + else + { + exit_restore(); + printf("%s\n", usage); + exit(1); + } + + exit_restore(); + fprintf(stderr, "%s: ready\n", pname); + close(fd_ter); + close(fd_file); + exit(0); +} + +/* ------------------------------------------------------------------------- */ diff --git a/src/testsystem/testter.c b/src/testsystem/testter.c.org similarity index 100% rename from src/testsystem/testter.c rename to src/testsystem/testter.c.org diff --git a/src/testsystem/testter.exe b/src/testsystem/testter.exe new file mode 100644 index 0000000000000000000000000000000000000000..b12a5f1c3a031c85a7df0894b704f3c767ac8885 GIT binary patch literal 40242 zcmeHw4}4rzmH(Y&N(Ts?2muNdn9@{QENx~onI;YBw9S+vEfi>>AaycHChge#bN=)X zTOef;==_HG%dUUGm32`-(RH=DQmUe+r8dQ_8vdw7P$O2Hkg5?&skM^*o^$Vgf99oy z_2as~&;ItcFYml_&pr2?bI(2Z&%5u<@>}~wsSv`Ab9`Kgow(8w=D#QZ(~aaQ7k_<< z`0A0-Tv@JU+AKzVSei@fO)VjmgcZ+y&6$2X-><^wbEhXf*BNg2!0C`9AjmRLFl zT$u3m2Re&cI4wt5h=I9DNw|}AS%H&yU53+ggo&;xl_FFl8Lg2Z=h01c3CWLb0~;|v zstd~zCc0EQ)&yMTnfTLm7vY;T-UFwin-|*O9CTOuD#D_$=OQ6; zht@nL^A{eSCd6PvrCT(H1xUmSkZe6&lJxiOAVvDVO@Af5Cb{+uMbfX2nW+Un(GRK{ zvxkC(2Pj|UK+auB%=^p3;#0#YA=gmpDZJ(r;!{D~<-=tlDD1|4?kP!Kc$98-=cZNC zJ+kIjBFFZk9Q~XlAMsH3l+Ho-I>((r<|E90F+hk-&8BcEV3IL=XleG!?GQn1n)@lb z5~E`m3o_+}8bOj%qr}zI4VuE!Ajn?X#o3mAimsIHDVc4)Mp(0jDce7QKqnS5bTg!~ zuEWjKvL==)i@1s9cHkc-u@sW^`~)Ef2uUeKb~P{%c%w%2MfQ;a3NGNGG0Ch@q{19B zz>iS-z-{&Y{)Y@?J*V_V_Gf)>_C=o0`X1iCpA(_KxGL)929NyFB=N zK{_(J0M||FlF>lnED*S+^b)&^yY!i#|6VuN&pVl%1O+V}$B z%#`o)Kye;00%pHvO33<~v<^)4MBAJ6mO z!iUa>23Mo)Lxa3{m=r`UjnM^4_uG_S1VyuVcuMc`f#j=5A`&7ktfSzen$~`TCy{HS zl<~ny0}4U`*#S?U99Gv?!3WxhyFj2?)8?t*vJ;#QVw6zW{-^Qr!q1O`S>!O;7&Ln{ zjT;P!X72^;dcD>Xn=|Dcva=RXDcDb?HaSp&rI}%x*#8o=W@ES=gcgFrX}B+{0~dG{0>Hm@9qj(& z_;|mPwRaiG*1H0KNrUV+37Wj2Wb}eOC+#IQh-MsDN*foWKarto_pVnbNoZI07Z>j& z3qCh|YR^Z>1~P6i1vy{tL=?RZAkOpOdiLl$PM0h#2{|^Stl%&_&ag7O4M`1yvHfvH z%z_<`O@$lvt_1JwH|ej~Tmk$47B(f@x~X&i=21wwon*7?k(UZQcQiZfLc|XgYGEyl z?TNwZU|?3xPf?h1jDr6>R1|A$*WJ$5+jA%4t&Xh|G=uk&{1Y_;?K$Ib=w=WkP80#y zGP*(KBV%wwPvI9}ghr7j^~s}2`l+P;x4^*J4t2KA%WU4BA0bSutcJgVMd2=FANd** z3+KU(ps)q2Z=A~(;Wl+KSQQRaX(w~=k0Xb+N8w4jp%?;{3SW}ExLThBj6skbA9;7I z^7se3kBz4<$i6%|d#q$<35e2D0Nr)QPHLaM&t|65_$zy?l<(88?WE?KJ?0*LrEn?a zQll>LyE%V{=O+J=8~rc#Z4lla=Wcu9s_avfb3@tTyWrD%d!F6&D)i4)<&M7Z{n0f~ z^?mi7Bv9Xzm(u0!<0P`ie#TB{p!D2Atp){y4;zF|Y zr>STf9L!NDK#nKyKdK&5iW?SmCi}4ep?;3%*Ld=!y#tvkN-m`a%7$}^!bi?VZ6Py; z*o6lm-{=83%9sAj`jtb!++sIOt5jI*q4K4E-Pe>uX4cW6*J|)SiC(jj+~2R{k@Eg0 z_48;gzK_{zew7^WSD-zTp<#%AG!)bSF%xlo5 zmwPVfLK?+}8DOo8nGZO3V6+!vfq!P7q8$CXCO8KK1wZ~!eXkk03VK-E8`(Wyj*#Id z?TGsiNmER8;3i)`3qESq7yc>ZPkwnBg`o2(RCHyJ`qDG-=Pobwnv^|So;lw?KF!%rXR9gzk$RVs}l@Ehuuk7Ef9tV+r!B#t_l89N9g-_r0IIR<_@p zNuX&ITr%bPzjGs|KINHxG&{g^!ZwKH-EkBSk-MT2Ox=akNJs#E=vHs5ROqt8jVLRB ztvffC-RqgXPvxG=xerk8X)^bI^pi68Aws3WfFwQJl=M)3`Isr`G}*^k{Y}XW`)+dg zb$NQnb9an+d$ysb;Fjad$MS2&`YJByTjZ)cn)(0&a^11qszcsv09`N%f;iUjGj77T zx>34kd{r4no*#OLlfeB+OZx9oLcZdYoEr%%e};g3NSBoS7{&`Ue*HVRLU!Ecy@v$K z9l0)lPTu`3|BFE7PRUh#Yr}ebeD7cLvPa@o%ON$aMg55c%Sf~P+Liyyw zB*(qClR$f<9dkzvKBT!jZ{_ohqcPOPpvR=(7PjYFt-J594Kn<-Y2dr&qaoF`_Q;%(rErl`s3~C!QcAG!L+;k zx^g$h69@AkB4=Kr+SizL)UrYr!!+uwK5+!*J6gJNNnhD_kXfj){Zcfk-l25)c%)E& zZtB$BxvE<8=j6s*Lw#NDe3%69y@G5MDP;G|VMp%g(az{@1k8iEeKRLxz_{z>(o=_8 zb61s*w1F1!LHf70(kc&{rT2+N?R+ECsS+OLe1_X_)qVP=@k5*?UlX- zofLWwce=`Ev`duH?nkEFpbR>iQ8nSfW;_$jU+clJ=WL2&=mgSb`9nCaJ^1szGWpG<7b5R6F1y!Lfz%!(po_D04=KO{|a*xo+0J>WmmSI8b1 z2As$qZJ43tr@$ki!3Pa{+&qyz3TfD*Kpt~1G8Nln2I0VFJaa|0I~J8c=JNKeD-nXOZy>-u=Jxg+fE%OQ zu?{*Id5L^FzrtO&>LqF~s}6Xx9|Z;jQ#qc`FGuu#DZgsiweOiie#_mST;%!u&FBw`O2;__307gyg=pEMMO{?(O+9#c1iDp8P6S zrj*vaS($BE{G!i25c9{|;@QlBLixe~Y)4fqPbgIxKuiBE1YUxIPy^!$|3GxVbazSen?Wqm6u@?i|W zGp}KUx}*XFia@5!TkJw5Xt#QqX*&n;;8RO6VId3)bQH_JV_v0cNb=dUl{`tmqt zho|n&U0&1T3=fgoLvYec=s+O`^>d@|)ec<-@3xX#V}~{PN-J^2@&F$t{1$h+pUy zFXQrFqVgI($xn8uLdI7e>>aps3ZeQcF1{w$@G;Nmv-#yO^|>#G11!78li7}_N2M%s zyOy|V<}h#yi3r&tB5J?;>T*}^`Z68y(eTK=+$;(pXRVe)($Rm18GK|0BR2KGtiMLP zKtdP^+;C-mf~IeI0V=!ElJcc!e$3}rh^9Qf{`p9r+EawX2H6f;abxrpc7bN39jSfO z9*3g}a=!~9GWF^M=}QO0JewixWX2u>cCy0qsAgmeGW!QcCQ}JerOXh(T?it;x%RRM z2S>h&W(*OGvfYKVse|7;@(Ef6dts7&zI`(-CVj)#h;?^NGwvwQU**o-aj0%D7WGog zxBiI|(sLENh9{&2OG#@Umv25Rzp5g4VD{1cG%RHBTF2;j33c07JWDVD&qfZpvrl>I zGh@kr^FQr>)_@_J-^GZsmM3{n+K};^342x&!Qzn{7UX-#IK6nQnxXLK|08D z4SCPP(HB*ekp1b_LtlVFKjjOD(IV2GzW8D8h6W=$V>tREI|n0A5`_3KFMH%=pSLT{LjLKPVZ1L>iQxA$K_v6t82tNQwGLH@cwZkUoga`h6-SGSceuKVN0 z!+T5d3~MK9ai2>l&L&a&7P%j;?wmq(~0`f_aaaauEQ zxvRFh7C!T8=CzUQATR_Yo)8Lxd8R|K!natc?4dHFeM6R=G4DqQkhS5mor|)^F5YlR z4=JQXl(~d5Uyny2Y(Rbnq3ZYg+%K}bJXg||ie&lL5xQni6_?X>bY%7}z`5bv{yYXt z?(t#dfj`iCWafB2gH^es{ueDnn8JHd3|2$XlT6=wXghBDFhQpB0SX<;@mPY0&<@AX zKGYSaMO@1P{{8{Ef>hS~qPK^pN`s5tkKy8f`s>&7oo5u9^bQOzF2jnQ$mP4~?}vLh zZBBPJoM3U)eSE2?YJ@NJd;&@N>?8R5FfBX}F5U!?BK6?n%34M&6->WuEP$F>JZo_A zieW&5i&qZel8*pt*v^QlLw>?f8^9%3I=I+3Kxp|Ws4x$5W-i21_Dye%R`CD45!ob;FUq$TljcBWM5Zt9;M*KJYp`Pl0kNu`4A`CKQi#r!0FDVIxu zeHe69Mll`n*^aY(8lLq{kgoX<-2t2{K)3cJbfhP39vuMPMCDPs59wn_pE&^^DkqF| z--TiEr3upAZXmN#FPcLSfesU4hh9_;*?k!4?>s^JV@NN*C@ij-Af062hxA6Ie|>^< zw#&VxZYn!F=^pniT#tgDrYiY~=rQC&{ZZBNR?|xK-8Aj{%tW+Y*I;^YDbub1ZMQEh zJ`4WE^(X7cq}>AAs!PJ6>TS?I2HM6MVNvonXrBjdS7lhtdmFR@N7i3{Kh`=3x{%S|K z%VhOn3hf5>0~Xv);8uUoq$!5lkhTeDH_rQTegx-ZIQQV(kMjV|gE+@<9>wWS!jExI z!#N9Q70xSgF2&i1a}&;PocG~;0Oun(x8r;g=RTaz;~d7Rj{@MsbPqYpaq8p$MY*Pl zXtX_+=)g`6QCkvg>P)6ZYe{pgt*x_}j zENN+Li#8|IRnh2@6@GtLJQ>AC`{p>dbAP{tw(Vh%UDDdxmPt{l6~8Ir?Sd3;#dt|; zR}#Eh0hgAxCgX7-?k-KFV(Ii|O8N6x4~8{aCfEG(JsSidj?zEqflu*<-4*7pXrb(jcy_qqJ^%?03UIyoruWyJ9o-p z{%1EfjyJcnS5BS;82ccJ_eBJ!J2PY-|D<&D+ISi&B}EW0#Af(IlXxQ}C>FM~EKGN{ zFNBYZC5aAovrAkRPZR!HY_UYzyIi615 zn#c{;MwV3vI1%Fgr3ZyAAwK7#efg&YLX`;GXH9qwzYFjcIO(8%x0?VQl-^AMjyrL7 z6M*Aiads1c<5xJl3BYj)n07OS=4yfWSm57T;ENFVH2qQw{6Pzxx4@sVz=IZ;V!Y-v z!vZh0z)1`IVG9g##N9a0x=V=915fbhJwkk2!MGLATVT5XH2uNxss&GD0m`cnO+)t+ z!Ivod1GwIdvs?VT&T7!FS2R~Zo`;x*dMSBmp5Ih77eetLDL7V-c+B)=OgsraO1HpP zd>qplE@xQF@N>{sGk!6dgAdJrDdVRzZj9j>io(>3mM6Q#S&W~?uq6441{dBf zLLUu(nBh35e2(D+!&qi8Xbxkbsp-q0Mz?r_X)a-yL2-u#e$fI`s@A0pBHoSr*S{&m zOu*ed3PucL_&jEG6T=rX+`+Jq;d>drl;MA7coxIjh6~ZSb~2tG$6-7rX&m-^1$dI- z%U;B4Ovbu-^en`A4A11e^B9(85kkwqgz?uh&20={$8eJ26%60Q@bwHo$nYwLzryfM z4DV(5R)&AdaFpRcFwCIvV-r@l1jX$Pb5|q&o?!}>h$;+!hT(59{8@&dWB4(KM;ZPG z!zEb$>K4y1d>+FLiYUV`^39zLzs~Ue3?F0oiwuu5ybmzhP#@Yp2Nk~JyD&SpTTVoC zA@I81YZ<kNN~@fS@q`P|6xUdC^=;2&prknt~D@MprMy2U=m z*E2lCa1X-_iX9Bgw(tuJ{@jZw@3WE!f2F15t%jE{jr6x$7_Mc44#0OCIVaA0uZ8A8 z1-HY^9%nu>^8$pwZpEhn*x>1t@Fo;pp`$Iy+0e34t|7?MOW#Kt) zfvr3>AC-MV`KP|qrhKeCEV=+cB;F-FAh=V(a>OA-1FyKq5*qN5?_^b2 zgP12wnkwT}*9PGiw;D77ai0NK3sfT?4I(HW26P|GcDXo!^;Ak2pg-yu#+7L3Ks7P^ zub{6K^TmR9gb5AV=JQp;?-r-1y9TjP_zd`Jaisw-6E_?14Vc}@qe0v#wi@s%@gcyw zS++W{?*y_D4ILy~Kh7VpY^%k04cS&xG9L{hYLTr`AUr92lc+M_IHcD2R)J>3M*~*I zWG_wnCd6g~{{eBA0k?@>1O6bd713>jNMa5pj|NP=Nyi$Qq3JQ@(^&AND6TyNli zAl4Z0v!YeOB*QwK=c24i@k2o`+s@!}pJy57DcF?Zhbkw@@Pa@x9}VI~v=|NlRLD^w z(fnME4hSCRvWThyG0^negFK&;_*cX>$p$pP7LOY6i1?xb9};^F__xMPr9q4tJynBv zo!5$qtO4V5uTe*T6jKfOIIjgtnm>yh4E(rQZNMe2E(1Qrb-Mwd=K6>MpYHmk0iWTb zwNuH{>w4CJ&vCtKz^AyTmS~y_Tr&;W=ZYBcbXThZ&v0!p;F+!u8}OyB2Mzc#*W(5} z&jMGuesAFYuCq#Yxz(;30}i_41{`udXu!3uM-8~%^)&;&()CjVez)so1AdRI)UEk1 za(NB7!8PB2Bd%Kv_$pV_fZyxdXu!){TMhVH*CPgey^CKyLJ^2{E}AFO(IDREI&Q$X zxm=SpevRvF18#IpH{h7-od(?Gy2^l?T`LW^#T7H)xT_uTVmN!Z_>sWQs`2X;jMvu3 z*D(BJLGQIt$pbin5?dJWcIo#j2~Ymh!+4L2c4Yv?^xBt(aj$)YVDgPVrk}&~|HSa+ z%=2>!UTNV&KJYl>=eg(=!*45?UONOkE=&6f@z=gV@Egj81e3mWRN^FfKlu3YkB%2C z@UJcK>lT<6{e5CO)1S%kB@9F>e(k`l<7z% z)^@~Oj4VN!B?yMr19#Q)jYAdV$Xp{c*Swv~HbFzPuMDR`!Fp0Vgxr2>*#=x+Wk_HJ zlr+rHA<}#c=lKq~{8l~&TrX1V@Fc;oNiFg4hgiB=*s?k>KU7;!e_?P*>L|C)lBW*k z)`x0ps%t8j$9?hgKG4Jef;NTED4W zw7m&mLP|@eK@A6;g$ui36j3vSAjjFICq|)BTPD7MXy9*|U^Ke1c^z(vr6vKUi7DW1 zu_TeQGx7DL0S^vYT~DQHUiENx>F-fEdh>d%Dx6O06pgN0hFFXWt5Z7FkRvA6QgB`g zB#e>@1fw1JYSjYV!Wfq^R>`{F)~xW9bJNC_l){CARCJVLiNe%{7-Nzkj4);s@rLQN zwos(19w_MH4{;N&hexE_StPP;b%<`Gsd%&9y1=z3ba7I5CS2E67@d&#)j?PThq!Ni4Z!}r>>)6(e-fW@+0ci(fl1R0n-AgWk8ny-$gZtn)F6#!L zNCiT*hP~kdWbcsn4LrY8*_Cpw9WZwtIf%t})qXM_M;6!+!K9UJNez-Ob5Jw>DnzAd zYX@2zGw`FL9UT0sy2+pXRkdh>Di^mZDi;X>zhC=UG}V-8Wj*|;%v5c(DVBn-gA8>> zQO_oaARmAoTDv+^?4ig2Lm-vfC}CA21s(>W20`I6np$%8vWP4W`lspw z(Job(@=jf0%2pdyfyyyk+hU|UwXQkvOvKtKJv&zz(uz<`t;{nB3&2^?`$yZFS}oG+ zT5s;`T%VB2R>LT&(&=G0=U0^x;L3mkL?ay_$`7iED1aK`)`hxgB`t{vR_9g}kE5-D zMz=s1m}?cTQ61nW66IY4OvL5}F|63Cj9ep~GlR$iGeVu}+90cwF^m=r%Cd~660DVs zGgPfqxFsN=fd+J}se!G?ojNp~-5t@CW!2YIhvw9h0ksS@K`BF1+j@&hLse1^L}xtC zH!4laLZ7E&S(HVqVbM*gDE9yh=7i=;H7VF}2(6nvXMPnoK#CyjF`*#)Of{^X@>d1_ zJDtX&jNvjxj-;GKJ5n`#gMFmR^bNy-skAD)toZ7`la#2gpo@r_7Rd& z{(upbgK#-60L~@l>_~Jr>26O28;L=$rW!RkQ{06RC@_gFCc#=}9;6=DA0+uXQUp^} zv4D_@ts_7FrIEV-PPZVpMyf6xV=To@_mT1TcyevLqZu74c-s4NcmW~+oRWIZKvh+J zv^kSZLda+{`o6WDN!<%mOrmPi$*8UvMPzVP9vVdDu9wWnEr~dqYDqvB^q?}-=`e

{+x@D@}ZX%O|RIzw1bS|S-wDYL?=+L0wPs>e6v%T!iZ4fmEr2*)K1ZL8wZJPD~| z5~^Cou;vYE>{`+utlSz%6)9`jmDn~qbYb953fI7IGJ#-~s!hU>rv$2MqnVCOD&E3Q zM2yj(b(LaQ)cR;!jK&zCM~F}r8%s5(6YX)#Ksb)q6!}<<6{WR>f-yr!y9>_O9*7YP)6%ds)@D${y{xT{ zhtcG)JnE@~xY%TdXdS1Pq?Cr|OS`u>(atoxNd9U>M5zlZrC1q%wF-NfJ#ccWD0fg9 zZX#kMlgX8x;ZQzK~&UB zv^7KF1s<&0Q%D8e5ZZ*L^-AkUQyi#4jyR1*4Iiq*xGkDu?LufY)`}(NC=>?~7129^ zvUrA#>7+4fq@9@lkeoGPILKqtS{iz0YzZg>hQP!$N*SsHIs=*+ha{E3On`5)iLI@-)A`7waelUgv4Vu1mNF3mvN8k!L{ z)rA@3N|H;i6s0%FIV2%;90jgJO)L@TWdyAk_#h~HI7@zNNd8bFEqCi;T8}8kY|(Jg z=8&ML`Vx!aN^MfKpvP79eNY`vb%V7v2xG-u1#L{lC@cQ^>?PD~ffHA-!Wv*Ia zI8GJHQwY(~mgrD3f8Y(@XvLP@SZcjAGfgWb7r9~*MJkQG*;E0TFjd>yl8QDZ(&+!7 zX22dVG2bL4%*DE648l&Pxv(S9WQ3_u?_6)%&5%)ALDigLoPhKl_J}xEtssD^)PS@E zl(w&qq3yQDW9bZf@8Z=UwQ8lE-;ob1V`w1BPRgh~MHYvtp_CjhBa_leEKRW}h+1Y^ zl-84UBgg2#FsXH&Da1=e+{ld<72<|Z!x?I6`1GreIq3433CA4ZP3DHhfYqXqxoD_9 zTd2{rPB5&6HORL0&1Q&#YKHshG#zx1CWC_Hhg_N+w?7nwyd0=nOmS5ky57Nn;vF$!z1JqJjHKes2niNOhUP#U5-HWOY#(XE2Xs&Q(SkDV?L4Kx2oB3T2)ZUAViB4k*@CXn{4xTN)51=^%AlCa3EIh+YI4b% z4FlFN1G7ec3u_s<5mrF~gPdGiBg})CZG{;ucDUnvcDh# z!6cF~2ODiL*3HVD<|QZRZq33)(8PrlrfCNk0Uj3FDYDy2faOkJf+dG6K*f<77)cgj z^9~}{#;Jk*-kQ1gwHg&yq*>Fl4p^}O;LQU1O1<+5Ty0}ZkJWO^p>7y%OeX>4j9r72qr?U zn@|AcWfQoLv4~4Six->`iJZOdM9;BW(Z{qE_uKTuN+<9$3^+N~JJ}0EZ9LAP`51=u zK!)nuq8ry?6~b7>Mdw0Dm>(lb&>17Twy2ty10z>D+Gymfc*(Vtw&)p~Hf zh+CwfiV6h(_ENM(lS)=duU24ygRPW~##56CEFW_`DWmaDvE7Z?f=uIQF9EJ-Jbb~U zjG{*`^faaD!3$81$1X%>J{pmWNrWqY^AMRl}|o3Z~LD5aULyeG4cIE*OQOxSAONNxc(e%{4w?dDsm!+5x&D=}bh>WU@f!3AVAv;@mE8}k8fYP1x` zlOCJl(e<|{c%W@VQ%g6Kn&k*PpdTdDxFy|83&I?nfv51ovq((JupCB%31BG}GPcuB zEk`Bj<~wcVa!^9dF?w%nQRR~(%%`z;s=BHR7f4eZa$cJ{7~I1;#iAo@ zsV7@D**QA1O!f4*ojskaf(CZA8}XQ@lON*2JvrI~(~Lb6FeEUt7J%B+mDm*5SXm9g zZnk1&JrphdWI8Y`Z7B|f2CKQe zn$Ft8{8V$ud3z^(gtJmNQ=7h>A}n6AO>M;HEYcZnAz9oW#bag4qOh_Ci?k!Tx&r6Fh9)c)1AqDFY9RGhQc~RD2V5+72m+Qne!{ItyXfa-kS5iUzd&;pbVN+F$UR@z0vlYG zB#kZ+lE1|KPu(o}KT|KY%^2@|`}q4B#aim$sw2D$XQ?Ype{q_J{+&9)(DwFHm*#4r zQNKM$7)mWAW)mD0z=d(1NSTxwo`8ld5u*yp|0Wp1;Tbn?8RU4QoAJt;uu@t?7V57|ys zgL4rMniN~Icd4uDOu_H2D5Sd3+a~?^Bn?S;B2UPJW?0j3zK`Rt5AS<(F2;Nof4gj$ z?*L=eDbqYhGWw%BLTg zAsgm%zzo|k-vp+7idC;40Mls0`~nys-U~N%=dbwKFlWP&hin)>Fg|E&wv>8cx?v!b z&o#hMEtwd4*QN0+E2ayWE;LP(rU#gZ&bDIcO_&u^B?cglM{()LyS`?wuK-hpw_zp5 z@Jy~{@|Igr>H^NI|2RF9bg>`0o%(>5o=G0yJZ$aM^;NW@a~(wAgoHj|Ndp<>z7KFr z$xL4$Dn7Ipl7_T+0aSJgv=%;OX3j2(bM`}PQ3dpg+82g1O%z+`H~2`DQ?PNmgAn33 z21d&>q%ftf%Zb2tXnDfGN_lL_eDikXA;MRQ!NscHPhuZQL-x4=8Ki9~KOKKfdES6L zjc-F9Nkj5XhtzOo%kh`VgHTX(=(_0l$@)U?z`w0pIlmGHm;`DAQ*!`!HcT*Fj0v?t zQbnVFL-rwGG3T&@^WkDX!P|;4q5Tfd+Z~*@I5^YSyX-R4`=B;V=swhkUFHD?=d^?K zEC=U)2j@)=&O;8)Jr2&b4$cobI6vaxJnZ1y=-^E6s@il9ZgFs)<={N#;JnVkd76WB zkAw3S4$fkFv2V~=cQ&YWsU6)&h+g% zrI+Ho!ohikgR|Sgxy`|u#tL@MjSkLNI5>|L^9iml#)S4bICnWXw>UUYHFGIzbUQd# zIjqs`;JnSjnMP@L-+08qdAoyizk_pwgY(g1KEcLfOz41Fx{l8d&JQ>^FEeu~Ykbwg zdDtQIb_eHf2j`%J^Mek~4>&jvI5;nJaHiph-OlSAoX1QWWsM;R=aml59y6D+Mwf%L z+adF?gL9XIbESjxeGblz4$fl^&TS6PJ_qM*4$kxyGkY5pmlVfmn%UW`TJusdpI}2V zCbY>cUD>(Z!TCN1=dhVe+4(UC=O-O9`y8CkoftJTb^J$P+j{nT~FpPX|oDRdwl- zhIA*%?Z;oshQ#$6$TR#l*6f*4X+uGFXmv^qd3t130D3t?6}{j`jG$v00Y# zpGK_(Qi_kiR@74K0D%fE53dM8CCi~`YDh1Zd7^c7<(W?!e8{WqhhCAs^Cb4st@3ZE zdvFM1zJ*>j>)u-T`8%~IxUj5Rbo?##qN4AFEacBrlXPMQ6c=e#--KfTqWLsvx@O4u zj2PwcLoA|l{32R;{I&d$xY4?(A@f8&hSzP9DSRu3C4^o~V{aUDTO>{Y$!Mgn2B=Kg z2DOJjUyKP};lS)H#?-9PzG1}h2VqCa8N^}-?#MUrUs>;m0B5OO)E@}(3t;33A3Y;u zUI(VZpuzqY{(QEaZE2cQR3oDtGS^fG=2Bqpn;}Q|k|qR0r(nl!KAR`+N!*K5G&wPlhy-WG383%OdTWu`AcRTws;Qaq>@-8)D=^tIuzjpkj1 zG3-ORLck2$Fw2MrDI}%jb2Bh>n3y;)_Ilq2j9#mhxjqJro_9;k!^Fq1552a4r`r5f zQF4yPJ2oVeogG!Svc7>_ZbJ*~%)uVZ&0>X3=BGh32f3&mS=IyWFQ zz1OGsycZbLs!{cMc;6+4%+w2abc%k1GZ>0>$Q8zwWRdb@fa$iii!3lfmzFuIK4kxp zPjg0A@eiPxYS0koAz)~fqH0HdUccX`bK#=_^27Jj4NR23HXk#+m-u|aA?eiyK z^a_J4{ZtQrXTnBv4lv~OW*nOb3~8zKQa@zSWh?zk(CGC;$@v;!4%;~20!*dNh8bXn z4VtL@X$O4p-l|s?G_yb>?E^skGcW}+7wk;UX9yV6&O1P(S3IOVKL#dfqd5qSFyxWn zkwDw9=`{u#kXWqY!4p?HO#7S%%ruja`f-JFn--UXMvs=IJaxe65iIJIHxo%~m|9%x zDC+|@4E1^l9HQHhnY_0J(hc~mHoP0T^cpP6l0SPP8qHk1c}Ye;vvk^J;4`8Pel`Oy zq_hh8%*CfX^PfNyHfYE$Uj)XCb%YsG7#$P%$2vrnQTi)L=iL~KZ&-OFZ8Xnxp&dk9 zI?>Hz=79){U+J(ST7eOBXxHGKe`x%?RqlGb=jM=R0V$&{%R zBs$Sf3`_wo*eBA4chT`}m=p1mBopN4tc1sgLH!odMDk6TJW)Qua-bqQ@rD>%03Uw9 zYhuj_yy{J+O?0fqa1E~?WjeI!=)+*x_$<*W5I`GE%OA=!65Fv6wPk{|_E>T~zP(pP z13~f-?11b_(a*x*n+35{D$%-GS4ZatyeEa?VJW;Dr6AgGi?@AK_|pt0;#75`b%?I& zzy{iuDE;C|bV)-*uooICl0vDjHtCle@mg65uMfvt@ER8x$%f#JiC7!_4dTfksG;AZ z0iorN^u{j!Fq{s4-<67Ia7o6oa~yPC@kDiPD4N8_u&_y0qGOmd82q}DaoTxVU5p46 zBmBh(5+fQ}8eMY3!sU@@=-yC+hthLzXd zU=(1>YBxD=-0r|T^04L!fBr{FVEm>{IH-k^{SaP(S1|%Rv+$ZU)e!dOl6~w6h$->p zhB&9R$3D;r&&o7myD+}~7=`<#5}h5Cwov_$4wr)$zt^YIh8cJi8!i3`9aAFxgFR96 z7kY|}s(v7dtVLf_!|)p~q^9`G21zOONvccNJ6DOCl_>LUOeV;ThRW2`tft^BYUqwC zwATZ^ZisKGs8)j}D22m_86!@-3X;UWd#i=u60x;1vavClH+NPjAHkIjiH5Ycqn*Be z0+T9-LBAw_@9C{vlKn{zu%gk$R%eplsDC?2>8?gP(vUjaMEOv0#&02o{b+UCxv`^~ zUL4bs`q>>5yq>0L)SMzpF|0)?#AKR@n%F9GHB{FEI)6JV%7Y=hnWQvo)QCzl+WVr& zRaakY@moiA$QI0Fct_>ht5%jVp$FSqt)$cQ3)2X&l-8I(tArcf%Gl+sjm&Ib)EK4H z%7Ku&Q`4Xct)v@@%%>(O4&~5WZNj$>(s4vDMOpOQVha5h@ddBaqoGn`WHEW&g6fc> zg!FbxguvGvXeU3uHHa^(nJqvKyc7#t7-6Tuw;|CRcEsDz55-WDY+9y~tR=`aXUS4J dISb`ZkAL%v0+7?UPaO7j9I;7+4v^N5{{#9^`B(q| literal 0 HcmV?d00001 diff --git a/src/testsystem/tsout b/src/testsystem/tsout new file mode 100644 index 00000000..335960c2 --- /dev/null +++ b/src/testsystem/tsout @@ -0,0 +1 @@ +&&S&2&2&&R&2&2 diff --git a/src/testsystem/tter.c b/src/testsystem/tter.c new file mode 100644 index 00000000..df25bbad --- /dev/null +++ b/src/testsystem/tter.c @@ -0,0 +1,498 @@ +/* + * tter.c for uzi180 by Nick & Rob + * + * Allows recording and playback of binary data received from/to a serial port + */ +#include +#include +#include + +#ifdef POSIX_TERMIOS +#include +#else +#include +#endif + +#include + +#include +#include + +/* ------------------------------------------------------------------------- */ +/* definitions */ + +#define DEF_BAUDRATE 38400 +#define DEF_DELAY 100 /* ms */ + +#define USAGE "usage: %s <-r>|<-p [-d ]> [-s ] " +#define BUFSIZE 0x80 +#define P_FLAG 1 +#define R_FLAG 2 +#define S_FLAG 4 +#define D_FLAG 8 + +typedef struct +{ + int flags; /* command line options flags */ + int speed; /* terminal baudrate */ + int delay; /* delay between characters during playback */ + char *tname; /* terminal device name */ + char *pname; /* this program's name */ + char *fname; /* filename for recording/playback */ +} cmdlineT; + + +/* ------------------------------------------------------------------------- */ +/* prototypes */ + +void process_esc(char *buf, int *count); +void exit_error(char *mess1, char *mess2); +void exit_restore(void); +void entry_setup(void); +int get_baudrate(int speed); +int parse_cmd_line(int argc, char **argv); +int main(int argc, char **argv); + +/* ------------------------------------------------------------------------- */ +/* global variables */ + +int fd_in, fd_out, fd_ter; +FILE *file; +cmdlineT cmdline; +char buf[BUFSIZE]; +char usage[80]; + + +#ifdef POSIX_TERMIOS +struct termios state_in, state_ter; +#else +int raw_in, raw_ter; +#endif + +/* ------------------------------------------------------------------------- */ + +void exit_error(char *mess1, char *mess2) +{ + char header[20]; + exit_restore(); + sprintf(header, "%s: ", cmdline.pname); + write(fileno(stderr), header, strlen(header)); + write(fileno(stderr), mess1, strlen(mess1)); + perror(mess2); + exit(1); +} + +void exit_restore(void) +{ +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + if (fd_in >= 0 && isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_in, TCSADRAIN, &state_in); +#else + gtty(fd_in, &state); + state.sg_flags = raw_in; + stty(fd_in, &state); +#endif + } + + if (fd_ter >= 0 && isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_ter, TCSADRAIN, &state_ter); +#else + gtty(fd_ter, &state); + state.sg_flags = raw_ter; + stty(fd_ter, &state); +#endif + } + + close(fd_ter); + fclose(file); +} + +void entry_setup(void) +{ +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + fd_in = fileno(stdin); + fd_out = fileno(stdout); + + if (isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcgetattr(fd_in, &state); + memcpy(&state_in, &state, sizeof(struct termios)); + + state.c_iflag &= (IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | + IXANY | IXON | IXOFF | INPCK | ISTRIP); + state.c_iflag |= (BRKINT | IGNPAR); + state.c_oflag &= ~OPOST; + +#ifdef XCASE /* Actually non-POSIX */ + state.c_lflag &= ~(XCASE | ECHONL | NOFLSH | + ICANON | ISIG | ECHO); +#else + state.c_lflag &= ~(ECHONL | NOFLSH | + ICANON | ISIG | ECHO); +#endif + + state.c_cflag |= CREAD; + state.c_cc[VTIME] = 5; + state.c_cc[VMIN] = 1; + + tcsetattr(fd_in, TCSADRAIN, &state); +#else + gtty(fd_in, &state); + raw_in = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_in, &state); +#endif + } + + if (isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + /* Flush any unread & unwritten data */ + tcflush(fd_ter, TCIOFLUSH); + + tcgetattr(fd_ter, &state); + memcpy(&state_ter, &state, sizeof(struct termios)); + +#if 0 + cfmakeraw(&state); /* Not always supported (e.g. Cygwin) */ +#else + /* Alternative for cfmakeraw() */ + state.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + state.c_oflag &= ~OPOST; + state.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + state.c_cflag &= ~(CSIZE|PARENB); + state.c_cflag |= CS8; +#endif + + if (!(cmdline.flags & S_FLAG)) + { + /* Set default baudrate */ + cmdline.speed = DEF_BAUDRATE; + fprintf(stderr, "%s: baudrate = %d\n", cmdline.pname, cmdline.speed); + } + + state.c_ispeed = translate_speed(cmdline.speed); + state.c_ospeed = translate_speed(cmdline.speed); + + tcsetattr(fd_ter, TCSANOW, &state); + +#else + gtty(fd_ter, &state); + raw_ter = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_ter, &state); +#endif + + } +} + +void process_esc(char *buf, int *count) +{ + switch(buf[0]) + { + case 'x': + case 'X': + exit_restore(); + fprintf(stderr, "\n%s: exiting\n", cmdline.pname); + exit(0); + + case 0x1b: + return; /* with count = 1, so as to write it */ + + default: + *count = 0; + return; + } +} + +int translate_speed(long speed) +{ + int val; + + switch(speed) + { + case 1200: + val = B1200; + break; + case 1800: + val = B1800; + break; + case 2400: + val = B2400; + break; + case 4800: + val = B4800; + break; + case 9600: + val = B9600; + break; + case 19200: + val = B19200; + break; + case 38400: + val = B38400; + break; + case 57600: + val = B57600; + break; + case 115200: + val = B115200; + break; + case 128000: + val = B128000; + break; + default: + val = translate_speed(DEF_BAUDRATE); + break; + } + + return(val); +} + +int parse_cmd_line(int argc, char **argv) +{ + int c, errflg = 0; + extern char *optarg; + extern int optind; + + cmdline.flags = 0; + cmdline.speed = 0; + cmdline.delay = 0; + cmdline.tname = NULL; + cmdline.fname = NULL; + + while ((c = getopt(argc, argv, "rps:d:")) != EOF) + { + switch(c) + { + /* 'r' and 'p' opts are mutually exclusive */ + case 'r': + if (cmdline.flags & P_FLAG) + errflg++; + else + cmdline.flags |= R_FLAG; + break; + case 'p': + if (cmdline.flags & R_FLAG) + errflg++; + else + cmdline.flags |= P_FLAG; + break; + case 's': + cmdline.speed = atoi(optarg); + cmdline.flags |= S_FLAG; + break; + case 'd': + if (cmdline.flags & P_FLAG) + { + cmdline.delay = atoi(optarg); + cmdline.flags |= D_FLAG; + } + else + errflg++; + break; + default: + errflg++; + } + + if (errflg) return(-1); + } + + if (argc - optind != 2) return(-1); + + cmdline.tname = argv[optind]; + cmdline.fname = argv[++optind]; + + return 0; +} + +int main(int argc, char **argv) +{ + int escflag, count; + char *mode; + + cmdline.pname = argv[0]; + sprintf(usage, USAGE, cmdline.pname); + + if (parse_cmd_line(argc, argv) < 0) + { + (void)fprintf(stderr, "%s\n", usage); + exit(1); + } + + fd_in = -1; + fd_out = -1; + + fd_ter = open(cmdline.tname, O_RDWR); + + if (fd_ter < 0) + { + exit_error("can't open ", cmdline.tname); + } + + entry_setup(); + + escflag = 0; + + if (cmdline.flags & P_FLAG) + { + /* + * PLAYBACK + */ + mode = "rb"; + file = fopen(cmdline.fname, mode); + + if (file == NULL) + { + exit_error("can't open ", cmdline.fname); + } + + count = fread(buf, 1, BUFSIZE, file); + + while (count) + { + int i; + + if (ferror(file) != 0) + { + exit_error("can't read ", cmdline.fname); + } + + if (feof(file)) + { + if (buf[count-1] == 0x0a) + if (buf[count-2] == 0x0d) + /* DOS: skip 0x0d 0x0a */ + count -= 2; + else + /* UNIX: skip 0x0a */ + count -= 1; + } + + for (i = 0; i < count; i++) + { + struct timeval t; + + t.tv_sec = 0; + + if (cmdline.flags & D_FLAG) + t.tv_usec = cmdline.delay*1000; + else + t.tv_usec = DEF_DELAY*1000; + + if (write(fd_ter, &buf[i], 1) != 1) + { + exit_error("can't write ", cmdline.tname); + } + +#ifdef POSIX_TERMIOS + /* Wait for output to complete */ + tcdrain(fd_ter); +#endif + + /* User selected or default delay */ + (void)select(0, NULL, NULL, NULL, &t); + } + + count = fread(buf, 1, BUFSIZE, file); + } + + fprintf(stderr, "%s: ready\n", cmdline.pname); + } + else if (cmdline.flags & R_FLAG) + { + /* + * RECORDING + */ + fprintf(stderr, "%s: recording; hit any key to stop\n", cmdline.pname); + fflush(stderr); + + /* + * RPB: The umask() doesn't appear to work correctly under + * Cygwin hence the weird "wb+" mode to specify a file which + * permits reading & writing. Should also work under Linux and + * other UNIX versions. + */ + //umask(0133); /* == 644 file permission */ + mode = "wb+"; + file = fopen(cmdline.fname, mode); + + if (file == NULL) + { + exit_error("can't open ", cmdline.fname); + } + + while (1) + { + fd_set readfds; + int fdmax, fdrdy; + + FD_ZERO(&readfds); + FD_SET(fd_in, &readfds); + FD_SET(fd_ter, &readfds); + + fdmax = fd_in > fd_ter ? fd_in : fd_ter; + fdrdy = select(fdmax+1, &readfds, NULL, NULL, NULL); + + if (fdrdy < 0) + { + exit_error("can't select on read ", "select"); + } + + if (FD_ISSET(fd_in, &readfds)) + { + fprintf(stderr, "\n%s: stopped\n", cmdline.pname); + break; + } + + if (FD_ISSET(fd_ter, &readfds)) + { + count = read(fd_ter, buf, BUFSIZE); + if (count < 0) + { + exit_error("can't read ", cmdline.tname); + } + + if (count) + { + if (write(fd_out, buf, count) != count) + { + exit_error("can't write ", "stdout"); + } + + if ((fwrite(buf, 1, count, file) != count) || + (ferror(file) != 0)) + { + exit_error("can't write ", cmdline.fname); + } + } + } + } + } + else + { + exit_restore(); + fprintf(stderr, "%s\n", usage); + exit(1); + } + + exit_restore(); + exit(0); +} + +/* ------------------------------------------------------------------------- */ diff --git a/src/testsystem/tter.c.save b/src/testsystem/tter.c.save new file mode 100644 index 00000000..684dd4a9 --- /dev/null +++ b/src/testsystem/tter.c.save @@ -0,0 +1,485 @@ +/* + * tter.c for uzi180 by Nick & Rob + * + * Allows recording and playback of binary data received from/to a serial port + */ +#include +#include +#include + +#ifdef POSIX_TERMIOS +#include +#else +#include +#endif + +#include + +#include +#include + +/* ------------------------------------------------------------------------- */ +/* definitions */ + +#define DEF_BAUDRATE 38400 +#define DEF_DELAY 100 /* ms */ + +#define USAGE "usage: %s <-r>|<-p [-d ]> [-s ] " +#define BUFSIZE 0x80 +#define P_FLAG 1 +#define R_FLAG 2 +#define S_FLAG 4 +#define D_FLAG 8 + +typedef struct +{ + int flags; /* command line options flags */ + int speed; /* terminal baudrate */ + int delay; /* delay between characters during playback */ + char *tname; /* terminal device name */ + char *pname; /* this program's name */ + char *fname; /* filename for recording/playback */ +} cmdlineT; + + +/* ------------------------------------------------------------------------- */ +/* prototypes */ + +void process_esc(char *buf, int *count); +void exit_error(char *mess1, char *mess2); +void exit_restore(void); +void entry_setup(void); +int get_baudrate(int speed); +int parse_cmd_line(int argc, char **argv); +int main(int argc, char **argv); + +/* ------------------------------------------------------------------------- */ +/* global variables */ + +int fd_in, fd_out, fd_ter; +FILE *file; +cmdlineT cmdline; +char buf[BUFSIZE]; +char usage[80]; + + +#ifdef POSIX_TERMIOS +struct termios state_in, state_ter; +#else +int raw_in, raw_ter; +#endif + +/* ------------------------------------------------------------------------- */ + +void exit_error(char *mess1, char *mess2) +{ + char header[20]; + exit_restore(); + sprintf(header, "%s: ", cmdline.pname); + write(fileno(stderr), header, strlen(header)); + write(fileno(stderr), mess1, strlen(mess1)); + perror(mess2); + exit(1); +} + +void exit_restore(void) +{ +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + if (fd_in >= 0 && isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_in, TCSADRAIN, &state_in); +#else + gtty(fd_in, &state); + state.sg_flags = raw_in; + stty(fd_in, &state); +#endif + } + + if (fd_ter >= 0 && isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + tcsetattr(fd_ter, TCSADRAIN, &state_ter); +#else + gtty(fd_ter, &state); + state.sg_flags = raw_ter; + stty(fd_ter, &state); +#endif + } + + close(fd_ter); + fclose(file); +} + +void entry_setup(void) +{ +#ifdef POSIX_TERMIOS + struct termios state; +#else + struct sgttyb state; +#endif + + fd_in = fileno(stdin); + fd_out = fileno(stdout); + + if (isatty(fd_in)) + { +#ifdef POSIX_TERMIOS + tcgetattr(fd_in, &state); + memcpy(&state_in, &state, sizeof(struct termios)); + + state.c_iflag &= (IGNBRK | IGNCR | INLCR | ICRNL | IUCLC | + IXANY | IXON | IXOFF | INPCK | ISTRIP); + state.c_iflag |= (BRKINT | IGNPAR); + state.c_oflag &= ~OPOST; + +#ifdef XCASE /* Actually non-POSIX */ + state.c_lflag &= ~(XCASE | ECHONL | NOFLSH | + ICANON | ISIG | ECHO); +#else + state.c_lflag &= ~(ECHONL | NOFLSH | + ICANON | ISIG | ECHO); +#endif + + state.c_cflag |= CREAD; + state.c_cc[VTIME] = 5; + state.c_cc[VMIN] = 1; + + tcsetattr(fd_in, TCSADRAIN, &state); +#else + gtty(fd_in, &state); + raw_in = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_in, &state); +#endif + } + + if (isatty(fd_ter)) + { +#ifdef POSIX_TERMIOS + /* Flush any unread & unwritten data */ + tcflush(fd_ter, TCIOFLUSH); + + tcgetattr(fd_ter, &state); + memcpy(&state_ter, &state, sizeof(struct termios)); + +#if 0 + cfmakeraw(&state); /* Not always supported (e.g. Cygwin) */ +#else + /* Alternative for cfmakeraw() */ + state.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); + state.c_oflag &= ~OPOST; + state.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + state.c_cflag &= ~(CSIZE|PARENB); + state.c_cflag |= CS8; +#endif + + if (!(cmdline.flags & S_FLAG)) + { + /* Set default baudrate */ + cmdline.speed = DEF_BAUDRATE; + fprintf(stderr, "%s: baudrate = %d\n", cmdline.pname, cmdline.speed); + } + + state.c_ispeed = translate_speed(cmdline.speed); + state.c_ospeed = translate_speed(cmdline.speed); + + tcsetattr(fd_ter, TCSANOW, &state); + +#else + gtty(fd_ter, &state); + raw_ter = state.sg_flags; + state.sg_flags = RAW | UNBUFF; + stty(fd_ter, &state); +#endif + + } +} + +void process_esc(char *buf, int *count) +{ + switch(buf[0]) + { + case 'x': + case 'X': + exit_restore(); + fprintf(stderr, "\n%s: exiting\n", cmdline.pname); + exit(0); + + case 0x1b: + return; /* with count = 1, so as to write it */ + + default: + *count = 0; + return; + } +} + +int translate_speed(long speed) +{ + int val; + + switch(speed) + { + case 1200: + val = B1200; + break; + case 1800: + val = B1800; + break; + case 2400: + val = B2400; + break; + case 4800: + val = B4800; + break; + case 9600: + val = B9600; + break; + case 19200: + val = B19200; + break; + case 38400: + val = B38400; + break; + case 57600: + val = B57600; + break; + case 115200: + val = B115200; + break; + case 128000: + val = B128000; + break; + default: + val = translate_speed(DEF_BAUDRATE); + break; + } + + return(val); +} + +int parse_cmd_line(int argc, char **argv) +{ + int c, errflg = 0; + extern char *optarg; + extern int optind; + + cmdline.flags = 0; + cmdline.speed = 0; + cmdline.delay = 0; + cmdline.tname = NULL; + cmdline.fname = NULL; + + while ((c = getopt(argc, argv, "rps:d:")) != EOF) + { + switch(c) + { + /* 'r' and 'p' opts are mutually exclusive */ + case 'r': + if (cmdline.flags & P_FLAG) + errflg++; + else + cmdline.flags |= R_FLAG; + break; + case 'p': + if (cmdline.flags & R_FLAG) + errflg++; + else + cmdline.flags |= P_FLAG; + break; + case 's': + cmdline.speed = atoi(optarg); + cmdline.flags |= S_FLAG; + break; + case 'd': + if (cmdline.flags & P_FLAG) + { + cmdline.delay = atoi(optarg); + cmdline.flags |= D_FLAG; + } + else + errflg++; + break; + default: + errflg++; + } + + if (errflg) return(-1); + } + + if (argc - optind != 2) return(-1); + + cmdline.tname = argv[optind]; + cmdline.fname = argv[++optind]; + + return 0; +} + +int main(int argc, char **argv) +{ + int escflag, count; + char *mode; + + cmdline.pname = argv[0]; + sprintf(usage, USAGE, cmdline.pname); + + if (parse_cmd_line(argc, argv) < 0) + { + (void)fprintf(stderr, "%s\n", usage); + exit(1); + } + + fd_in = -1; + fd_out = -1; + + fd_ter = open(cmdline.tname, O_RDWR); + + if (fd_ter < 0) + { + exit_error("can't open ", cmdline.tname); + } + + entry_setup(); + + escflag = 0; + + if (cmdline.flags & P_FLAG) + { + /* + * PLAYBACK + */ + mode = "rb"; + file = fopen(cmdline.fname, mode); + + if (file == NULL) + { + exit_error("can't open ", cmdline.fname); + } + + count = fread(buf, 1, BUFSIZE, file); + + if (ferror(file) != 0) + { + exit_error("can't read ", cmdline.fname); + } + + if (count) + { + int i; + + for (i = 0; i < count; i++) + { + struct timeval t; + + t.tv_sec = 0; + + if (cmdline.flags & D_FLAG) + t.tv_usec = cmdline.delay*1000; + else + t.tv_usec = DEF_DELAY*1000; + + if (write(fd_ter, &buf[i], 1) != 1) + { + exit_error("can't write ", cmdline.tname); + } + +#ifdef POSIX_TERMIOS + /* Wait for output to complete */ + tcdrain(fd_ter); +#endif + + /* User selected or default delay */ + (void)select(0, NULL, NULL, NULL, &t); + } + + fprintf(stderr, "%s: ready\n", cmdline.pname); + } + } + else if (cmdline.flags & R_FLAG) + { + /* + * RECORDING + */ + fprintf(stderr, "%s: recording; hit any key to stop\n", cmdline.pname); + fflush(stderr); + + /* + * RPB: The umask() doesn't appear to work correctly under + * Cygwin hence the weird "wb+" mode to specify a file which + * permits reading & writing. Should also work under Linux and + * other UNIX versions. + */ + //umask(0133); /* == 644 file permission */ + mode = "wb+"; + file = fopen(cmdline.fname, mode); + + if (file == NULL) + { + exit_error("can't open ", cmdline.fname); + } + + while (1) + { + fd_set readfds; + int fdmax, fdrdy; + + FD_ZERO(&readfds); + FD_SET(fd_in, &readfds); + FD_SET(fd_ter, &readfds); + + fdmax = fd_in > fd_ter ? fd_in : fd_ter; + fdrdy = select(fdmax+1, &readfds, NULL, NULL, NULL); + + if (fdrdy < 0) + { + exit_error("can't select on read ", "select"); + } + + if (FD_ISSET(fd_in, &readfds)) + { + fprintf(stderr, "\n%s: stopped\n", cmdline.pname); + break; + } + + if (FD_ISSET(fd_ter, &readfds)) + { + count = read(fd_ter, buf, BUFSIZE); + if (count < 0) + { + exit_error("can't read ", cmdline.tname); + } + + if (count) + { + if (write(fd_out, buf, count) != count) + { + exit_error("can't write ", "stdout"); + } + + if ((fwrite(buf, 1, count, file) != count) || + (ferror(file) != 0)) + { + exit_error("can't write ", cmdline.fname); + } + } + } + } + } + else + { + exit_restore(); + fprintf(stderr, "%s\n", usage); + exit(1); + } + + exit_restore(); + exit(0); +} + +/* ------------------------------------------------------------------------- */ diff --git a/src/testsystem/tter.exe b/src/testsystem/tter.exe new file mode 100644 index 0000000000000000000000000000000000000000..fa114ac6d5f0b9e1583ea39dbf8932798d50d9c0 GIT binary patch literal 48558 zcmeIb3w%`7wLiX3GRUZbi5e6Y>!_gx<&nvYgn$l^L9BpLiLXj0A(=o*UY!RI3pzN7 zWje;2w$^IvzlGv$?c-K#6{)p0pe5MS-iY>By!z8ezO?xPdM zLnr?FyxqpqU!S*PO>@NC5pG`{u5a}=)VH;@N4={;-f*nV+uY`@zT#?cYkOm8)`STs z6)M&>0U?$eDx)}-H^1zYEqEJ@6-gFs@# ztnG9qM!!TRRC$hxAj!!oadj7gCVdYG67#*P7+tB@m(5}dVJ$X{R;E{hV7o~jphO+e zRCF2=Pd!1JTU8%x4A)0P-ud3CjVGBhDlNH)wgt31>QJXba@(&ZWCtNBhseeOgGQ`3 z5#53Pq?Gi3%w#Q4I~0nVMZTQA6CamPWp zFEBW6U*HwPWNkK7@^hze0w3MZ%}8|hdOBZ6K@&*@a;QdOp)>`|0}kCp8p{^&Wr)cF zPC5Gis1|LD_t5*JNcL~>{-*>I?xO8+G%zvX>gtV^_KoXALfi!bGS)^i{PGki%rwXC zLx;SW%_3qv3ekdNc&J3jJuB# zsFm$GkE}m1vSsr~e5w$h&Tk+~C2pAmz&&1w=w}sh%R~S>G0;S>8T`H^tUD2@8-VUT zm4LxJC0e|UR0q%m+)_Zm<-jZ@0E&$+9cm+RuOXsW6Yw?xLpSsVj)9*TssnHm0oMXJ znSkX0@(2h3m_Wch022u)0pKCvLI6fSfb#(45HJ})E&(12K&Uu9espvcN=*fhJ@rJm zBQm#fuGIImzQ720h`w=T2@+y6VBA)XyIn(fDoBPC3K}pGn2G!3Nq&+33bZLZZ!|V; zkW`K;lY!yH=HZU$#q@j2$@p!IHV=LYnE=C4LPVnT2e$yB4AOv4j_(ePjEbR1VgiYl zGxQmimy^l6R^}N)%ePmn81c|_xHz>yX1Rt+EG*B~WZgtY&68yAp*&gJIKCv%HJ;A1 zptHWf+xQ(Fs@+~)g9u#fp1wEPpBTxBo@nM&aZYzZ7o;aMOS$rQkhVt0QHe1!Nr5OV z$=`nJ33EiSUt^K_)uFlGsS)qInc<5!&70Zb{nX4x@4UuPOZ`S~YvkgU7XyJ@GZbFD zk}}sdH-y^iTSFIn=QTCANKj0ToFp(w{Y2E;-Vti^its9x42S9)y$W6*Zbm!>?OZRR zHzKNj&>`s>+QW@--YV~!=BT&6ZKHQ>XrnjU?u|s-J5CboS6!r-M?x*322|h1yuCuE z1qT44?Fb=?N1~1Gv8c4m>k_XH?E(L`DH$S!enbgp01;jWe=B#xWEl%Oy7H6quXi-YCK2>VT%s?;A%$20`1YW5Ji| zOmk*J;{5Y>!PHgQfou{8ytp-Ss)UD3iqcW=L7*dxhC?m}5$Aax z@#iH5{7vvBV(ifp5aT8=worMA>JzEJ$hdY?6|Xocb`~YtI58pShRYDnr!l{E}D`UF<9WUZ90DV2n42XfCAIusi+aXfP>Vcu5NXuV2aT(4bJ)LIUwy043CPz zrPR+Krpsv{hb{*n!1$SEO4CRlbBs)10>Z(^VIi52<>}l^Y5T}pV=HwcN?8cfNwfjh z5!HP|1}&}QhsgR6>)8Iz=x9%OU?3TIwl8pqTAkQ@X#BdIp;J?VXZKONpB=@|A%xi1 z

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 iDR?eGezAa}pVLQ

EU8oh+gY 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 OpML>lQlv2es09E5Id!oB delta 107175 zcmV)EK)}Du)dr={2CxnXfA*osJ^};mTn%_rRhs_J$scJOXynHf74A)-gcRG9LTPFV zP)aMxkMdJw%8zNAme@2YX-ZmtVhhE;br4+#$I*4h(NWjY0Uf5SJI?Hs+Da(bwT|6q zc6QG5Oyvo)Sg+dADj;q4+}yOii7?X1?z%fq-jdw=o$tKo`_A`$Sm)e(d7j+mxhsmz zIp&3C%Y1W=CEJ`0&D?WJ?xzZFNUqZZK;hc88yJehm20Rp2@phqdk;C?wn~Sqn#n46 zyS-U8c8|;M%q(}fG)chC!&*78yH(sz<&)(HDq$yO?Bg0V1vtGdZx6Q=aa)n~0&mIV z?!+v0Q!le#7NpI%pPqB&`28iAdlGXg7&SMuFKcwlH179uEaS^w(onN`1KC`N{jE~V zg-{Og$Jl(tmp!lPov7rGnSP|<%U;lva0n*`k88An7wD6n2rE;ED&0abZA^vJZgVk0 zOsP2o&yd_CD%$-qG3oJTl#~Fnd z0|(gJGNONCF*7v!PYalBxg3)l2{?au)A|FZr#0FspwpUuOhfvNMmNFq0zLV$W-`^U zE(+)~RWz?CmCi^*v-Ud!UzVv-PBcvaHS^&KqhfOE;PexG*=|jMCQ$#9hWm+(drP+O zxY5deB-``4apj(KDrU3kB~87-W1xEF%+6l1!*sEOvA;*K#4K!24Tcp=SD=5dPe`n* z!Rcg#JkqIjJc4M;4mVAz!xh~qq~7LqRJ-hzVq372Uw%lVKdfN^^p9yw4{7M2(?z3e z^$%%8yT@oY^bc!$;f$0&zi ze^}^2M}3*PNiR>Hd!!JSkL zoSW2jc+NXZ=jh%$JLosiHAH*qz8E+g*fT7DZ?m%L+|16kO5ie-DH@}e&oh5~2X8SC zssFH1ss6(zWxG|;o!6bVn7OE%-ia9C)#+dFlic_k^FcsRp*cE*74eqz;82jCYv9>g zeA?_jelEkaEU$mn_gOJ-$qq~j+!*LQN_+8^IaYaO{KnUenohd#xdY;WpS71XottE2 z*7D}`GdappYs)605f7-v)C&Qtm$v|KK~_C)p~K6b;4O0AqTtOFc(a;X;4N9aWiD?q z@sGE01$eCq!$vaK)mXu(97J? z>HkA``CCR;wgP6*>q)8XAK|GV{5*5kgrW&@^;_zZ>$`Bd4@GbA;^fbclb?RgeAyNGbFP`MydvKkr~iw`$!8#%zbH=ropJID z;^gPY$-m`V`Ok{$=hRKnd?U;S6J)?VxEV4b3(SxW^C1Toz(UBq0)M3}nx6-jaoKNV zqWMc<85F{DD1sGG3?*J7RzMn`cJz?}E+n9Vmk>uobq!cDNgC zP!1JP33jN0>aW>8l_$PP+{uzFG z)%brMygi!#8)%1<&;f5jCv?Hva0&u&8oJ>OeVlp+{uSPZ9{81npRysE|DSLkK7@Yw z2zdAyK7mhR0R9Z0!RIgtU%;1e0WQL?Dew75(a7?R;;$QL{Y{-8&DWtcG#%Z5ZbUbs z8E7VA5R3H4fM%iDC>_l~Ml=_llkk@9Kh=WqQu^Vg$|sULJ6eTe$e zM~FusqfgMMSBd1+>~9#S{V6f_FQAL)68Z{VMnhum(@WlW;25;_L8aJOxk1)9@?T`ESmRsehb?r{f#&jrb-!1JA?^X0aX{@GLwV zr{g);i09%QA%7A6U;&fw4;6m}7vRO%ikIM}co|+mscp8g#7OzqdjE7a{>u{7rH4o8si} zj+4J9PX69&<+q6ZJ7f6!#>u}KMf3gRyiRM@2XngkU)sy$;FN~LnGyK+?4QrYbr<6j3A(saUPu+t7>@_!Vls;{US zlc$2i<&YSh22N=?!u8;ES4%2X2hMt_J`HMXDjj1LG97B&9!WjkK;;HW1>Oj?^*bc| zo1j)&-Y^3^cIgV337%T1o}seT9t%;!fgT#70&0MUXb1k6A^V2>&yv0tBZ0p;$iE@~ zvq5-S${5nAoGp>(fbd?WF@MvkbetQdw<*wV_SAU)Y>i=?loeSo)E0)3smBuH2Q zVmTj7Z+826#zNcAo`07pgja#}TQ2sW?+gy^{kXZh@#E%_ffxD0zV^UikbAhLzi&W1 z*^{+>ch)8{6<{FbJJ`#1Hq4+PE*cCIlL8}{(8G1y>Gcl1Y`4s`Yk?tf5SKR11U$1nG*)qX>j zyM5qnp#SXPh{x3TQZ@0a$+iikVFI^dzd#4ZkABZ>g{P~n@Z?%6 ze7}UwkPW{}iR4~jbvSJi>ApOTbPv(bF#Uw4k%bqGncdp%)bJ$Nx~)uLgp5J7@^^Wx4leRX1g=ZOo!(`s*@wW(aYSO!R$W zqGw0*A$7aAbC9^?<-C)WD)=pFn@OpP9>_N39rO?++vKElnBPKN3R0!wooS?4$*)q2 z?W#z-l6M|WyM8d-rsTKWri7#F>o>Nq>QlG2x2!JdAAjiS31?G?ivNIbyTSjEZV>aeTf;BsbJ=R`OlD?g5;VAKT=aI5 zao2erZWlAVJ_+h;9CdZ#iwbL<4p&XMvBKt>6M2sxBi_M=o9!Nt+XMLweXIa;IlWkz z8^L@RWPj0T65$h8XL=jGurXpM+``ax;yxJpyHB{s9fSM6$lv`a{2Ra#tZNnjHnd{U zNA0hX;|R0@(ASX4MB~;`L>daiz*m5%FA76`1qj-2{da}j@|KgKqr}%md~egkDdG#z z!)fB{riU}c$I-(u@rAUwnYb{il3ANyspi+2XMeCe4+O2idREdcX+S%#m7dQnq35)= zJJL(Uz8Rze6R(W;VD>#qS@!`J^CAiDBjH zBAJZrl#@C|v7u@QY51IY>1z3$R1F$L!GFTIS#0nRS1?H=_Y@+z0nil=*9+2VDs_Wy z!GG{BK{`Vv4s_`vA;>-@nMTw+kT4J3k&g34Gz2G!uS4{lxK5I)4#9b*Boa5VX)akK zC&dc2#7X~Y($;Ofi-ifnh&ej?i49>>q~R^%?d;ymSje`wNNFe4_->;b;y**$I3qLS z-_Ne%U&quE8pNxQYc!hfIcUYN9%p6}|9>gc7GSPNZHR39oRkjI-etmoVqenT={M5I zbcIOn+acX-VS5~L>A7{`Ze7ItcC4FSr0s3vLbl^TkS%Hz9QZ(VKwC8GjBWo^`;vunb z-m}DinY=Jmz^H|4kiUA|_z3Y|B5hw8Z;&|u1yJr6*hg}QX$^!zx_hKETWTy5S0%lQ zi6;hw5DR+mAkJ;nvmCl;=u9q=;;&w$O?=^A)eqM$>kJCh8jTB`*0W-!2Yl zSxJ?tg0DU89kYd5_0sT4LMBFr)N{ID?1?8Huvyt+CLtk-+URZNnndMhW8j@Vf72Tvw}`^#K`K z7w4Mrw4N_8UPt`r&Vifw|8(xtYAf@~FN_M>RVNd+Z87D&tmePiyAtrIsx18~37AwC z5*K*rD6dj&TPA`LLw_~UcGLhBG)W~yjaf)!4MxcV1S2+Rdxp2^Jw+7mgv=x$cw5sJt&QMs6ILAivmihoh@Hdbzwqnen@XbEMB z-B^7Ob40Vom>VpYGkZ6)LE30m6oWG$f^J2Yf{3F=5W88Chpmia6=Nuvtvt;t&X_Ld zGq{`2U{57;L^0PGC5$<`nagwFlQiZCWv(zKkqDM+h+rARnSy8$o&@NBGqXjo@-E6a zo=TDJBJTA(Zhr)`88M30D9IQ0s%97Q7f;;F7X`>q^m<{}SnTJ|dGk5CJVr%MGO%qI zGS@{)l&>UpN2IaR)2!$W4u=`edTjq@R{0XndlGeyW5Hm99+OhovTj!H0RjY}G&|N) zNjx^W4*Y$N+Cf*o@zk88Ahr#wexm#1Ms>E27kdso`{+H0`y7AbBy4 zOM_8rsdrMaeY9kHzbA}~!f6g?B^uStv6;DEv_!GedRElHR=&V0HpwRDsAsMQC6YO| zdlY3f@PC;g|3;0ng;i`-i%x{doUklZOy;=wiIZ{`EL?PV@zS#L6)W%m!<^?b zHf3BhXLZK%jBo6b8NnHm8DC`Ho$+|aaeJBl0sC+5YwZU!AF$tLr<~%cuia10Vb%>` z2R$#j*QFB)y8mT-uRClYz*@!WD*(pFrD_4p zUe9a|qz#D5OW6#>7kTN{M!4OGx1s~Ec%#%|x?Gyp!5oduwb639X({p(qVZ!m!{sBc ztK>_GsAm>P51{6OVR2KIu!^vo-I-AFZ9&-g@-N^nl;2Gh1!GUZh#3VV21d^dK->i1 z+kc{YBzW5P72Nd*mad>C3dmBYJU(y(qGh%6RaUW^E!)G&_p-umEW7Ct*3=Lp!FtZV zhuI+XRhGRQSid|^$2zm_>|oYi)i8~B9C$kuC%`u5YC?;4=P@M6w3`^VXxZvn=_{`_6*e38y_we=f>ENx#5~Ho?~xRNmK5PwQ( zacU<>o@w89!W53urm!3YpJY|n@!6=8e2L9ish3n4A*5g+!KBvTJuY2m@Gut_`7Tdo zUjj|bZ>*m^1jCGMpk`L|lBTn*o}1ahNQY%C+|6fp5ciSl)Qeyhk)W+Rl8kIy1an0y zAxQ?=(3J6}uQ@}D7>$YDS-y7EA%Bx4fKvUihfc#M1eqGC3jG{j1wq=^0kkZRQFA{;g@YTnA$y$`a2?zhOn+nyHL<>qNmR zH&a@YtAsVr*NIvlW*6v1JCz}9QJ-XAJ3Gk!HWS0~`=+;+$b z)HYO+mSU%G`W0d{Ef=X)n3vNHCVo>GGdu;ioIL7?5Uz~|G;P(k;72QeQW zM&=3!{lsg+8v!`r4+h*f_J1D}0j*-NXnL99+}@7%v$wGoS)q|-hX*vd`=xWPn}mIdK`vbu=|~Cdb;{} zYGDmui@817`i%)52bb5T6V*OzYwRFUZ=AeF!bJ+VPP!sZd&5eaDd+b;H_+2xzTbh45Y^!zs)w4trgb4Rf;KFi;LnsE^d)ENTU?s5b7`} zf?9wzPoIgBU{$jctuew^4RQsyMflc=qJ-l^qFFH{%KzmX4++=?@+#4G@!*eL5LHF@@>G$Wp@fr_+A2Yg;=HoJIC`E)Cgu+b_n$$bd-6yjs~32!~_ClZ-$!T z)&egW#~)<=IG;llbVzN;*72R1F6Kj7w4m02p~PPL%vNeabwP*HWj1JLKHG6bg;Ka2 z)`V(iG?mU0gMY9~gXIImSqlnYP2qvol@KzGkGcp+?1Esf4<5V8BJ;iLQT|&n|C0+{ zbWDMzUeB>$Sn6%n!cC!)*mKiuw@mFj8#2_*w&3#kW#Ps1m@TNBD`TF8$Xq@1jP&YR9;*)z)qkn&pr4Cg_O3(C{>pb_p4#(+ zRqj#JkkmQOPLk>0=6MI1cQ0jJU?Hv!2R^lyd04qn|M8?(%+NN9ubi+69ZG59%jI{q zQLFCfaS7RLoZ+%+QB9cRShQ}ueNHr7t6!)JAB}jCN{ol0Edu=-L+rO)HP>INA!=vZV77OJ5ZTolvlPjJp3IoBa7aZ>-jFII^ON}ky6b9||Ia+Gn*YJ|m5xC8^)Ykz;sQ*@D%d8DA;kszHh6ob{`L}3tS zG-5a~-9;NSTvK9wDBr@C=kkS&*l>eo5;rcny+G#KpQlGce8!W`_SiojL< z^q*N#Tzc<4^gL5qu(J3buS?b}X@6S6NUNSZ*CWz;>0hKrrN^Ylr6;66NKZ=tD*aJ< zN_tv)MtW9yPO6t0qz%&ZQlqp{dO_MGZI)gfX|$i%`XApNN$dZt+Sa<(Ct&@bh4}y5 zYujV9YfVLn|4)PU|DH5h|ED4(#!|4u1r87tn#> z+nsLbj{*#jE({a63xmJ2!pl_}ioZ|9ysk$7Sp_v3j30xsdJujL#_IO{EeonuKZYO1 zYeC%yLQhglCxeg@;Ob*J1i+e}4{7;NDfVO-^Hl zZ7lmR5cb-Dz*Zh*73~l1P_&fwy;BBZN`6dtl-b(FnIz{x-#`afD@Ayuf$$9u1L8Y% z#&pO8NM=@ggcW_-!R&u$woZMFHK|z4!PS=W`p_F^BX`zMf|->`KJF3nI#&7#D`M^` zPUtL8Pu!Vm0U{oYXMf(`*dbxeB<;2rh?s}^gNUz4p};;s#8VJNY}0{=Z309*3z_F2 z;#eOL@kKTuPRIgc>wfnyiBW;Y4~N`ib82xzF$E%Bk0oO>r10+G$2dDI6Z8kh#NyK_ zyeI|nR`0>{e4c=gy`U*>(l$Ad*m=J};GwwLHMpM{aXf!^jek~4X-!Amt-OZ|sfS}{ z*R%qYfn)dd_>vXA6{^Nrjos8rHSE%kJrNwhmYrec-M*)qHhvJQM+4c}GS8}AN+=$! zTY}{GnY{;(-aS8;@RVHi@OJ@PhtI((x}U-Z544T>r^FnnhX2R&a}a24O6Q$G zKx?42AdT2K*?(htTk0?rtkrgBJ9+ErT@Ol}Q#m{!ITfaBOaX#A?#kjho@5oLpj-1; z=}A^}%1iYE6k&01$uuAf(v%uZnKDjaX z#g5xKdwRiIkJ)kwekqnH{4!cDz^^bR7|5oAwXrF6hJWe4CDJhG5q!_VtpZjPdkdz~ zChcI8QC)_Xl4EHFOz9-cJ_U(fTqeb)*3scM3^#8=Dngvb8m{T1BugsA2FA1_b{zOu z8?LMiWA>BGc1m;55KKp}p(q0C7s?X5FyU$WN$QX$mlC7P1dm;0bKqPl>?(?6y0R`d zz0Q)ShU?5#-<0t3y}^B|$nk>v zN}L}w+WP?aHQ4>YefQc;8FgN8Uq&6CfZc)Z69C-DseHx-0QYgtH3)E@(1*hZ_hr=S zz9I`tfscT=YHF$Tv z5+8TIobTD4uVnD_I8D#g^$iCF za(!JOIA~fgI4Fs_Obrg2=>rGN(cqwQbAJRUesIvt8o^8eI4IG86E7Szv&IZH!=cFw z7I4r;GWn+TDbrPl#8ZW$%}$^K$Q=>_bc!AUIt(LKHQB@cOm@o42Sk_EABZliKM-Bk zAV72_y+L$O(Fp1XL{}0BM3;4LgXoTB^#h`7b^3$oep5A65FIx%)c))XL^nkrDSxQH zNE{Z+)k-f|Y;B=;26z#yWYp3a8;(CpNkD&;mh9pAqdepsmOskAssa5`8mjv9N7>Ma zKg!nsPk$8ey#HSOQEt7%PdVs4e4nIc%USa9E$Pq0w`ABJzOUu{SUr4W?&6zFeR=qD z*4!QL4N>;I9}Kf@8P?+>Id-fEvpLb;rr`?>imDqk18n4 zzdgS#@4xdp;P2qvTk}`tzn3>BZ*E?BUUA;mxpVVw&hz!~eW*b5@Vz%z=iv(v=;3>B z?)U29i=_w;U%V9_zW3&;9==fg+4Jy?EfmW)?tVJC;2iSsHP6$r&a6AX(tkXBH_!F) z@I5i0hwuLe@bEnu$iw&B0X=*pX;tdu;rrJ@E=JWRJ|{hVQ|=s!hc8LKL3#MnPQ2>j z`)$r(J$!k(L3;T5=+Lw2;p?Y8&#HG1tpZdnOg?Kgx>UNK&svV^vnCD|Aie_+a{6-? z^I704^8!1IDf0$$7W2>MEPpwRso8#KXR#p+fPuWg^j$uJy!dfkVI%m@^ZN4rHSUpX zr2j{*k^UdK&X>#gZ3iRQ`F8pK`u@mu9`^rrBdu`$UWotCouK0Xx7XfScO&BewqEbO z%zW1aPn++AZ}@UAb0&mzny<#A^3K*1pS?3&FM+Q+TG~{XfVQE&O`vNCZxfhYrGwwk zuX2AiDER%l!MsLb9ll1Oz3PXB-v@eWKv*?Y>s)wg0Ds+-GJnOw;$nO+%j&X)74w(k zT>vKnPE(Lb&pZ`>=6~)3Gx!fqtf-h@p-7p_%N8tMT(Ux0vACiF-!9-yt6W*86rtb1 z@O=#S)ryawkHNl&#mCRb;Mp4b)Q`MPAmG*Vkkg}~x%jCfLNsYJlJ0On67P!V(KGG? zH@OZhvJv{ArND{r!pgOco%QEgMw^PFSgDA!OvlOBapToc>3`loOC>Hr;3yHN(ypw$ zT&0zHX%`4uwo04trS(vz@^qCp(Gu>3cU<9DwvS_g%mFh?Y|QF0Fl&$G&egb{s6?>R zP*y}>*2}#aMp7{UkrSDtP?tdRAWSZ2sL_^VG;A*G&&*bXiV$&lDlr@z)cOb}*Rs7I z!?DS&w`kc$%YPbH#C>umB3*ywgg$x~`>2go9@bnz_<4>vD5i~e^qlai=z}{H+0mR=rbP@T69GlHbkFuh6hbN&eHHGeze(~DW`!oj-L7h6)OPq)p)6u~#6Py(0 zJzkCW9OELhv1{SQlWDu04zIs*JdY~oRt-QM!nOx*k? zw-C&>!_?uQr<$q00SpH6kx6blI=inH!*hPM9Q;`|%j#cbs+uQifJF6`%>EIxeXMc%#cZlg zg32u`{fHHP++hl-@ozrg+PNP~5ne5moh>sF-W$S!VJ&GC8-r1D#LZKGG5-NX^!*LV zF^_1sy_{WmsK2wzrduem4`-Lj=HTe)m-5 zUv)(h?5o^=7e|gRJ7$HmbEfLZVPV$b8gX>_+AT4YYT*Cz{9WkC5uJ*yAsjh?b{*1) zjb8ZoHN08_;NR75i44#!1EIlxcRR)wXmFlU-0s@xd;QShdut&SxmNjl9a~f@__6>6 zdw=2H+kD{O+f=ysdW3R6nx?_Mw+OiRfiy4NTg2gT@9X&xP0yqG=Y@L%xi{SV{yeId z7w)~@`N5-UeZajRN%Mny=cSqU>3+*~A9{zJ!72xWdvmHCsR7{Ld^`^V?oH$VJHWm7 z>3_?$Db?*rHO#6Z-VSBboa&&*b@*u5=YR8Cu8mpPUQlW1Jb$?NE&=zRirv~9?!7>p z;T-P$fc|leZvLyMv#0D_Py~c~`$g;pWPd+! zZy-kpgnMW9f_sxJYu4c2%|3ANT^ihbe1_n}5ANMuBbW&Q_a<7j9`4;-V}_dH(BuUR zxc8$OTrr4d>Id!}mM_}ug!^5+J{k<%d$JzxJq%Sw?5S{Xom!kpI9@I;J3j-nzGMcOHVm z2r=e%J^uQu>aY6iR(w+F-VZXYm?ck`mF6~`M>gzM)(I9~Lc zo%?ecju&4N2a4nUb%BcGO)W5hyo z6o%u4M~35_wwU91N%5Bt$NO;sTbCoq^vfmJ5RUhbrGn~m(t$;C(ko4f>5=^1R@fKp34#&F;0)ygsPtey54UYGtLYzi<6JL`!-l4hu!GH16nXgYcUb@M^ zal8i?^%cj9`TB_C)%eiMiR0CH&wGMi_tq@0@A12gty_IxRzxseC~|*J5y8|>dAtr0 z{0c_|&!7!Q(pTb(ZV*JU<{dC`sWBoracOUeV7-{jgb3zhzcV7ZAEwkBB3QTd>V?yw z{R(j!ys}K)a?x=bJZ-J#G&rhMUbsuz9_%h@d$7Bt?R~gQy50XS=}fv%4RV)syU|_J z_G|ktY2vaVcS--@_k|2w`~8IsM`4!W{Tb*kX`+}YBw(Uz=={G!;^+U{nqz+%`{=Qr z+--3F|8Vmu+xBMbQ=I?rSjP90z%v?uVCPd;IYZ!y{xJlGZ6Y=53q)aZUl;->14Cfb z55*7&N9whP41u+V41u-YGLK3SD4y5@S71%C*IQp|x_9Bi>>O!gDSp`m9QI?l+f&-_ zgZ;K<_M^Li)f;<s}={l8O2!j{20Y}xKeL{OL2$7rC5FbcsenE?pwI#ONp%{RwD)V1WZ!cD3_7 zX;gEUxlLvCGiR!#Vp>MOwaDn#1_zISSb$YOFZ(_xRWFiV=jHOxV`u>98zeF@7#aS+ ziVgS%>lbjoK}f0a4bl%urcPV>Wl#?Z2WhjD@>k@Z(CCIi&mQcV(@lQ6PLQ+*Bf5#a zgFWe8C;SxcJe%fdqfCT!u}HaY3@7WU?59{d1(2d76M$H!&J z%fFWMzIkhNBYfGw@$`-9The!=Kb8JsdPn+S(y3auwpL3Tdwi_bGLt^C1F<;%30}`E zR+jAdt(MX3@ei$*8`}smNP+Ue5bm-%?b6U0*7HC(-lMMGC`4h83?POMyxJlEEa-X6ab*IKB zjaczIvI4*)Ud_^f!6X{9tUCo(yq!QM_x7RytauoUmSX^uz!|6yFbOu@4IC!1Q)I`?Bz7n;iCOcRCOVkJ)+VNm0Zf9%eI>#q zwl>9(n(0~bI_9hFUu2?=(oNKmnGP8LSvn}HV!KMBckG8H(bFuAuN)b*WI6+ z!S++P4UC(AZ{xtY`L78Gl-&8IyXN|kJXTy zZ`8^w!OiC!AUEI6fnj>y>mAc`C@7}qwE&o&&VOQVz7G}!;pTg9!8O3mS9sNO^F6;j zC^sK2@jAC~ZoZA*g`01Uz|A+-h?_6!hvDXH`98RR`5q2{>A7jygreJuo?H55;hDm^ z!iNeQ$?xi=9~4FxRTlOXTr3z;cthd5r56k20xhOztjf(dSmfp#Ou6|6Us-Ox!74Z3 zV3nJ1u)@tZ_;Pad{rfVJoA2n-YY5Zx#}!&`z9|Z(Cq>K6H?>zxPl5raXPObFC#hFV z&#py({@i?Cft&B>(rXjb^L}1`Fgl3CYO2f^!qtD!YQC9;upU!(;8E!uG!W4-^ ztt$XG-wuCnzBhW~=F@C5bgVE&;&iO&4T+-{bD5AhQCA^1pRUV$LE>z?LP(tOz~3&i zQ;)M_PISIDn8zk!#;Ti4`P}5O|I(b=LzZ(&flp<;qHPEtr~-u)46;8h3SBoRSNK#QDm+zQ}4~HBMJ$g=5jGjK$T(?t}{8D!11$oeIjLv6H2Ax7+Ju zQj{#JlvTCP3a`fzzp8S6R$hHv;m_i{YaBDEj5!cDSz72`#qzVnYVJGZ9rH>`N;6iK zCB#=$+%wmakbw4^TkAoTXo}P0^}!Q=6F}0dng0pkHg}db3P}I=KR+?r z1Sow3=xfpWdeC}vW54bNsCe~0a{ry=!2gr|<^H=6g!_+OMi9{SX%BY3`(R*yczjJ? zX#Q$|=I^gp0nOhTsLWMO^Ec7!kmzruX`)xc|LCXc;;JfliG7l(%0+`CO*wUCo_ded z2WbDhB|Eb9&6Fm_PjgR_Opq_X*aKe4A>EskB0)+(`}^EXxn^3&B76-sMC2WA$?kGv!OpVMNl;j|yUwsI zPqnUkRm9~QD68bhq`3{%kPaGw^ZtXEH8JK)K(EM zI(4dPs!$peYgk$d2`qE@ytI)?$zqd{#wc}qnC{qAaq#PqoUU@G3#`CXR#HnA5N?-L zT<3O{mXX$yrg%(TI>}vDLe{bkRGg=pi>q;#d#gPQ>(=2DK0pZlL;laMqmYIxn&K>n z_+{Ai^fn4flUvO*<+2BV_DRi56fT-F(MvNX;Qteedi0+r5~PBzU}MC%h@K`|D6tX} zL}E-ORc==qw&}c5(q2wqgH+;idYxo3ghoJyN?EB?QZrequA5Bso-9?lCQF!ivgGzi zn7rjrDgQMzM> zr1d0J;dQ)m__O$bjmw|~JN{up?COcw-S;bsS;I_Yl7_`3nasmX!x86^m8RDEAUzjB z2qk_)yUEn0U@K2WB$+_S+QzRhAqeD;>o6xCu7!p=S7MqNc3!0(yWt5FVwwP-nh4qC7*EC=2C_m(W*{v=xTqq3KW0Is9~R8+5yX$9M<};% z_%_ZyOncIn6vyEb_Dp^z87El{q`--)B4sp30BD5OC`Y!>(Fg$SP-VLWoGL>KQaCj2 zo9>txrDlL9RodGKe+U|?hezEUlqiK*rqE}Gl;U8;XeFC)=5)%^t{M&W>+scZ8N%!Z zo8G8C=D_2Bs9H2U=v+7fBqjY{a)bN=9xe?{E?`f}JsPGg#rN9B!;u~)80ja?@?Q)? zh^-L2x0Q^_!Lhr^AL#}n$g&m>85LXV$=KZrxXqhXOWN?k0~874TxprBqIqfR7yMHX zQ&LBZ!67`DHpj(FWTH4A{Ur9@7CgZ;nL3lR>8Trk0M{<@)RWBZtq~N}r5yPI(n|$V zlkBxTBk6s>S>ttxF$||XBcI2jJtGbq@YZ-%3EJCHO$=fd56O9Kq@47%Sx)-KWEo0N z_NX$QBQxpQ-<#{QP$WRZKqP5Yfb@H^;QEU?2~b_ZO!+Y@j_|B|LWM-sU^%=FacVJi zi2faaCMH$&E((PlIkKBX!+^FTR09>~A>k%Gs--E%uu$4~0-%}}!ytSRzhvzynH!=m4c$ii0F-WoFPOnvJ>P3_OCF`OwrutaYrf`TInY^)Kl(D~^)&i&1`m zg0@qR+;1NrOWb0}^ZV?hlqmF{G?OKV)*($*9%1&V-WYalk6pmx!c9tOq#7Ejga$pX zKbe8r&{*szY$tQ-A*(r5L0Kwdh@4MkUk{P9 zfUY{yp(TFuytb_`z$|vbl&Un&({;3esIFi_5;NWYRUv~>6v;pFPYqbPB2W3l5-HOHsRv)1TaQ(z|o$l>WunQCm;@J7N-tq zI=R&ZXa*_2*H*Cg)(ZBKnlTOa1%ojzZ@n5prG@FG6={OBjZ0eS=RsRYG{7(X4Nzkn z8H)qi28oFZCj-qoA{;=6W^33y^wZ&YlJ1V^#+iDEbp%(_5(df5VWyscy_kkL?QXnd zhOtUG3|yx1pV=fZhgW8#Uu7&yP+9u~u}YRE|0BFoBIO&WJ> zW((x|F7fpfE*q%FU@MPjdlpJ_Xf*TC;1raFmH2L!?ynJhG22iit~TP0+Iki-h?}g@ zCfk#(+WM2sf&6(CU0N=GkDUo!nIF_&&CX{2N(vVYbPI)P^lmc}>_9#nVYNNM*(%Y*0rLnwK27#0& zjeU0RD(K@9WE7N-Un&7|p`s+OQC)`-D~so8s4BN`Rie2n4~tp^5VVq*-_1r55@}6O z0X706Gu3%MOgqnCSf@5D)ufDTvQ*7U%x49>C*_|2v?&bFs-K$Hlfe5ijL6jJLzv07uFx>8LYCfK2HP~iNo@?B&TE>;GZe{0mLtm!UJWj|pJ-_WNV+ zY{3nlxzGZCF3pt4-qMNqIGQQ~%whyFi<@*)=kPRIDAadui{&=j1LL(T2i@B{=tvzc z3MXz)D-$PqwiaTg3A{CJxq zx`9uBK1ZN>0pj+M301p?uUsLf8`ESm0j7dMoD-@$*p{A}j5A$LvyUd_8?vh5vgE0&`1bcOCF?835w3HX%vc*2R z{$=v#xLp4ZaZKNaN>Ml^k*Nk}q?ye1@KXhUy7nGSdh69Ji?|LLB_2G`@pPbqT?&r| zmaMrg@c;HLva4M#f62Cg3mz!hQ>-=(O<2GJgl#Z^8jP0&!rpwp1m{QcS9Tqj%ike_ zZl=Y_*>B4!$H3V~(8;fpq`iyHPb}$3dBfk3-s%LNaOOb98_4Ef26Wqxx*g!nSy$Rqw5#>4 z*hW*B$y*vpeiBPFN})OEi-4iD2Nn~5X{SzEX6p=*L^T$HG243)U|UKBn4kja$!=yZ zoCXF<4>>bqXG5!uptjSKv40C#4zxF2AWRk-sVVpx;Xs9TmR|2cD{1VgfEpa`D&y7z zk9xc8DuYyZD>bN_t)pml{6_^<*CCkHW5LuV4)Iet?=;Yc6th0mTN4?GHoua8{IaPN z3aQJ1)x0im{<@qlltMKI~mXld4D^f63V| z$SHf2z?5`cr|gweUQ~o&7>qmB=XL&lHMUMTmi^`sCmre2{0H>^_BNo!QM=_n!8zTA zuZ9L=TCqH(kc*<_v0=hYX)ulrX%(}g?APR!*P+LUGgHd$kW=1(-kBx4I^^;@#d*MmiYL zO=G;l^t$AmjBfc|7;s6?9f;Z-L{>D6q zzcGgiV+umG)T8{BIa%Fr)z`>kQ^!=W7iUfcmS@~|oM-^XHe^@GGEAOh5 zlfDj-lfKz3Cw)6aPP(+&QbIzaS;#mHSzxto*2xuK3P|!%s2;t0a!%4sr zF~CHxJk#O6VzZyljP!H@T{F^T_xmT)!Ex3$9=#N~A~Z6eG|vjKe%mvx=C;k^VtUM; z#GS2s5_h%ANpF){AKMJee}a2kIzOp0KfbxA=$Td_?Jdb>l9>DtQ%CdE2`#pnnBfV1 zhUnxF$Phv^JOvpb-E;owLLpr!O*f0DdtRSzVse;)wxs;KKm}NurnXoXn_trBlag=H z%ZH42u#6TPw&$yU?I|=Tk@js3wBYXlXYX2|t0>ZRcL)i&L`YEKf3m!~6C+8G@X{C= zi9lXJ$b&=>B%n7*C%JNSZ@3SVC}ig5%3OvegY4)k>z=c^u6kyVGjdQM?%)g|3#%~U zu_Nj-_KvKEv*%>u%AAE&z+~(HtNL|cB$qoJgm4U%bpXm z`{WG8AD1+A836~S$FRji%K;+JAPfb&9ILjg2d(Axr{qt)xRsS zo%LP$UK3YVUSq9qaJn`%S?p`yRhn6q zoVhh17|&>-e;3bIqgSW;xWpGz^-omlPinyV#^Ff~`uS}d{gh2aauIEoL*9~GKE%1; zM{F(#PAmw`*^C*0RY^6h;u*XJSriOC2VPAwzN+`8!VyP5k<5lTQ8%8B68kRZPCw5? zT&q#CZ!=OCrW)O#M~^miSJJc3HaR+f*Fa|n;{zLoe=PkDA8)uu{%Kgz_!fl^4Ke$4 zo-omnRhoUsa8`p^8yf4slviEQmgAS?RsW|v^{$=e*GX5h9`6=ok>~D|lWusXfXLOj zO$+^cZqq_PBjwr&yrnNVRc_Oze#&jy<Q#28NhA2&MCHU*SJmFw*yy8i`v>oZd3HNG^raY25wW-;tzn^RKWubncK8| zyN=s*@5WB=Mn2w8^G1PLz-@|;xC6wuZ`Zg@dGT4;cD+Cf4J{hLZTj*y%59ng+b~DY zhE6f1dOre;CTsfEUA4o)SL;z-Wr~zENSpRyoAx*A8)qSK!z>uOzR|iqRDg#KJhyx}n z1pW;2MFbt@D>D@5ize;xtElXqQZy0DIGO>~cDsJ)uJ)c0MT7KKaubq>wH8GGvpF<5 zBw}S{3robx1Dh_>7<3+^9Ro)?nl=ate>V;?Z9qFrfN29NF~gcRm60;hlubpn76 zp6rBQz)_Ijnm^ED)%p|NJVN0@l@;9}5S6ix+LJLfZWuB|`06w^y!cfqeq8V1)ENar zp+SbK8krs{zi1JI>{cMo@>+H)e=z8&J~a^i&PQW@I3DH?aYXcxdg;9Klp%gLDMtk} z@gkpp#>%>Ij}S+9WNDBH;t4}S{R%urY>-S)xxz}iM@CYa%}?@+Q~3uHqd2`rE7iDm=D>>|LrbXM2PwpnH2eLSf1_)>G|q?v zP}s*ts3SMfW{6=tz`!;IPL(xjd$pf+I$EO?XNKRx$y?In+n8);%)o3EW=&8yYmFye z$`xn)c(O@uRvLXla~N-UO_^gxneQ;fN>6BPRXaY-g91*#Z$5pSMz1;~#kZ*yqgqP| zRcyv(O1{o~e}7zB8m$0De=M?%P<9wf(Ws{8E6ZSZtSI$9JwG*+V-&pw`eUliW(2IL zuH?m*68wf4KaWWvK9AZ-r+`gdC60l8z9$ES#SzCUH#LC5ZQ2&qFZ|bBp=jpC+saus z`fpv|#zk6xD9qS9Lo#Fg77dLV`{kiAV<%sm8T#} z+(Ls~CxRm}gmg0!W}^fdHp1+kkqEPQ4w*3fuXDbegxS3K+6r73gd@zx1w!Yq7Bj-^ z_*PQ?LnX}Ky+k9-UcMv*zbqzp;|a6>=)D1i+4UBi;ry1{RKA-VKy(em+7)DXC6qFGu!=0nB7=lAk4lC zJR%ZiPscZmgxP867C@MN4>(37%%+etJz+MRn`>2kQxaz1f3bMrgxQMZ8xUbO-8@kU zvybKslrS5^4UjOKtz@Q#+A?b1BZv%i$*a1F2iTW0nmg0G=Nu7A%7mUNX`n!cSBzip z;p5~E_-=3Xe%c>)6})Yk-10emCtAAoi{Nd`_)#3yhVCoZK{$m`U@z(AZRX7yh_ai% zQ~#=}8W^umf9dJA4-J?DRvd#?56lE%2L%V;rA4mWRWj@#!D>f4Ngv5Vo_=i#%hgaS z9AyJ1IXU_GgU6@9FH<+DD^f&SWnLu%`kOX!R9lj%jja2O>qp%Dp>ssGPQ}gW-o?j` z7Ha3@$+{2S+!0}GKBmIksQb$-wf8v4`9+l4{^J5#~ECt;fwli6m z6?Gwf_UYvzT!qO>`Haya*Z3-0|7vM;wb8pazKzU=N!5{%hV^q$65Zsb)9Oih{gPTK ziFy?ZIf7xvP&>`(uWXzD>NcZc##grySKKRLIoP#AgAE55 zW(?SqQ4KSOQD+gK7ZBJ?w;avPXj1}31CzqFp!mVMeX0Znu6jI&RXtUGu=90nfBW+J z1c%&m1-SGRe!-|Eo+@FcrBFb2UGmDVtFrSOfAzScc76o(7>nr=2*~yyV4xZ8P2&ay zb=PU9*fs(rh#D@cDVm|uEQE`Os@|zFFvC_7lUy(-H7UpS^_#0SudoZE)sU*;A~pS$ z-1xP5lHBr@y#H(A_Mmt8MwT{1u~V^5mY6*%?tb`;E3ma&`fk6@9^Y<1wa54Bwxn0K ze+Am(yW|zew1v0FN4yi;LfPZ14zkBbd-!g@Vvmm`tFy;Pl?~;fvnpXZ39!ev+s`r+ z!X6*>BRSFR@$L2}lai^sbZC!{7nheRyIQN!$ONujsgVhG2tZF56Qbtn(3odvfyk8~ zJrWHb9|>x-amE)jIrArK@&Pt3uy(-4e?>SDlMP0V0wjTVMX2iipGj$VYcyucJ3-h3{Naf4NT-a@MpGmo@mt!4}|CMuN?@PC`JA}0}?b15I z<#xiC9ZAcLjNWT~?B{7Ce`ojFr`gX|BWL#_AN|Sk1#@FcXFY|1ryxAavBvDy6GM}6jh>$3>4WOWzYY0B-Z#M@DDTZ6apaBIg~6WluS_BOb6 z<82(=Zo=Eqa9e@56>!^h_$N8aT0iqLS&CiZ3|m^qH^bRaT;Ux(e zWW0CQE$&?4rHz+)f0>8O;CdQD(Dn3ev-nYKw>S@ZYI+Mu7~~e|d?Jt3F$vJm>5;c& zMLt_%8V22gIJ!Fq`zH^o`zN?@@#cQu(nItOG%@WC@qH3t0j}`oD6?64-+Y2RXRCm+G7H{>#D`Qt(7UEjB4DXj8AGj;3(CuByf6M64Uee-*M53aTddv-ywu4$wGE zY8>g)eOu0R1)I-D?MaQ!AbHK;?&dn@LS^>#r}I9BAD;x|=hh`8K;k_0HV8kCu7UXR z@%hv-41Rnr;KvJn8h*UcNAcq`AROYyr~CBy@%lXC`Ai}4Jl)Zmt=9O6D|A++ADn`&L*5TOeznp^k6&d$+QH|ne@6JU>Jz5w1_Yk7n&%5_v*u+u zdP1JF3V1R6IV<94IA?WoY2j&$d^n?23->q zMpYIkPQc1mswwOdB~DzplGWLT&cCCQdvvhmHUc^yg&@NQ=-e0y(7AEQfX<4d?bfP5c+_9ViI&l&;R6yqwWg4J!N?8c}e-kEl;{lxqZv>$8lQ4kJiDhDGTIm}r zu9p0%q^YE>#7BOuEB?D=LTP=;{}f*?9#axqQn=!B@gItffX*ppDxfp2SO@4N4*=+l zE55FPPDq6TI^mW9I^&8JKqpClxB#7;c&H2qKSLXyT5;0=Iytd@r7r7o=7EcHW_v3F ze>#_}FaSC)fk#9@=hyg#5zu)B-2woeec%`o(76jmrXJAAi2@a)N)_LffX?p1fde`f z$u}TCCtb}bfX?TO1`6oJa03K%vL(cDqb)fxx!f=h8OjlvjUkW7y!PxQR9nuk* zQP(~q^MyCk5gA{YBQiU_%_A~~W*_b&e=-4$pNlvmoG?)w5fubfjXgII$b)l30P*&q-Y1_G^XWGOCHQ8L(Qg4q~`NM3kbE!9a>VYE4}qx$ARA-ZT;6vUZ#!@h8)~; z=&nQYhoTX2&=Lb)bZw#RfGZSA_`EnOqK zV`WbaS(+d3Z+Y(`oS`Wu%K%W<(l=nKKo$&S+2FZ);S2tK9kRmj>+J9i1X+p^@Cy4tKRXwO>7E;%X0*7cYheHtw;p{fpYSS`36kntL)qn`ZFFp)w9RfnBrm1K#Q zh1}G8Y;J1bpTiAxBRI)CO{i81guP4`2~-aq z2ilN=w$a>i@N1(%?G!6rl1*~Cv@T&3P!LI_ROP6bNJib3sygUS%e7cxm{kXj<^hI( zqB$tCx=cw?hHZ5wN?ww4i6cXbo5%?51F_!B62}Ir~|IXLgW{8 zfk#08hW1j@W%9zV)h@S&RIkk@)mm(Vi_}L|9cfw<$FO*~t+IAz^Ey(tO;$3QW}=>q zAv=-ux#%dQG||CjCj*mYx!zK1trF~ip885M(6q9fa_Xe24Umfz7p?gkm-R{L-}jJW zD|b$Imm%ah>@`+rJqbzMi;69d7J)rzZSLZN#t5DcNC7EgDz%VipEF-jvw%^87y8Vd zuSiH$95NxPyfIG~mgazo93m){ckb1_Q*9WIRxPRfbT8?04%`t;A(&$CA0 z?+Ox8JcncOvmOuppZ3y6UIa^nFx zb1x6t!rsDP?V_e;fJwZzOfm4cS6=lNparW*XvGxG$z5@o{j&X#T+@Mn23RV}Hcidm zooe<*E7?0tLT9#*lQZ9c;pF0WIsYB;c3^Kk>n@e;?Q+dKY2ApQGXpW{IR*yMyEy(7(Vq5n&%J;TI zGrZF|sf22ew!D3;YK4k&eX9!M@%&nL|Aw?}yWIE=|Nrb=33ydSmcBPcBm@Fav3;}) z?7-7}7)7QAnmvovORMjRdi6KN|?S_ttjm)TvWdr>g!V$w&i; zCXLBRjwUI4NWxwtuY}+s(i-WE?+SFM84n_gke@F1cJcPfiwEOgisU{LC3*B z6?#Wt8*n%ljZx3J+4EI-6)@}fb@jm$2)t?s4OKIRN}2*XMT)xQJEf-NDW-p6X zi=><)30)YG2^BNSEvkkz% zpFypEE|T<1YQtR=wHot#TCIyvtxM(ua9EAlcW~~5b2?Cw&&(HYM7ERk9qQ=qe3OmQ zyV)2GUh!azwkj|N?jk#PT5p9hkUb5CF_1m=^E^JE*e}vi@RGz2IO8ZdeI8O9&HOwX zM?pl?IuJLnKL;vSYjIf>zXOr;RJUewM{%qI!6M6vs7MMo}o~2r!D+o%u&i; z?qhSOG*%|O z@`Ly-qZfmJ#CA@N>L2*Ta>mMu=u(G&Nkrsg@hZ#E8Dnoj4VgRzzVrNIGvI}3p-Fhn zLxs-!MNPoD9;9LP(KL3+FF^|-?r|LvG~HV9%r(9xaN)nYzJ+6f zNPshBfk`O68VSOwdJvBI6jkEOfGk;&Xs?ICb3VuRN$0s_6hgC4RGnIg?=?V_{Bo`F z1H5sReUL-E?y_}0BV@K{n%o6{w5(B7!?62xFcEv&ZTrX_WtWwgYr!=S3LGY*QE7F< zO|O6xLj`6Lcnzwd{1vX!_>Da1>HNkQa}@@DCvZerw36H%Q(|lG8~W zESWg}vdc0}9O*kriaLe9+gsbNOyNxj&Z2X%t^8$*4PuT`J#@XiSZS(%^*eB&(tf9h z*!R#W%3eN2*+X*nLU(gzh{0hGN#Cm(7`RR04vZ=0kKv{+m3N-<3_~E`XkscuG-C$q zbgytKJ8wV9@qpN58Uvazq#eJuD`9m3rPnLRwfjlF$E!}bQqtl%ckQRd>r5qa8FT_R z((ncDOWv$+_4V6d+qQpybcRY8w~iovu>t8@%nFpc7uJ^kCcWU{ zRyXN2&-G$dRb2q}XCwCgwEaDjU*3qf{KfD#ZVw36UeD4cC_G>Hm~N6*WxUv#8Z#Wv z>_+ng;4oohUiNA;<(p*HjZjRYa=-C@9$wr-V9VM})lD6*Ep#S-ei}F$=6~|%JuIF1 zVI|IQKI|sz5`Wn!Ux>?`7{ItUee15? z81o!kW?;aI01OB>y;Y}njb3m;Er9D9kp$P+$Cd@)&((^7xtR0tO^zt%F`3_N(lJWE zdhp6hKLu5p7s{A_cY|P_I+pmQnQ`@ek8+doGAKK-KTLn$7=)A;_tAr_I0N+Twk&qH zm}NoxXL$aowP=Xp6Z%-Qc1KhN@P+R;DTj2O1O#b}F)x7PJO zj=_f3=0ooGq)DBNehs~~VWw&rzC&pDEBc;EpDyOZAa}@rjmewTv{RFP)81O|CoOWa zy9eg+>;eFt$G__y?j_suM5;_#gESFm$cY=55@){?(!Boto1@EF+~-&CV^g`_=jM|Q zv=qO1EjR@Y-{dE+(^>me(l7V)zk#FEjwnx>q|V^^!i%qn!cF(oYw~BbO@h$C3?F+5 zlf)5166v3Rj^n(BS_Q9PnLed~=mRJCwQa!(W^*zu)sT{tJ-R{KW^qv+Jw!>?HMIF| z<$hPYJWNtY{fF1WcN#H*I8Sz$S_i?e1;%Ur4doZ3MJso;WfTX{?g zPFsu!4A8;g-su8APYZyjxFFj&=)-8Y2L+9(y zp|$FNcle9eQQ2uIEMRe+Nw2zXjWFv5@=7nHezr{Zt6g3mBgN0E9mgFgz9}M9Qv! z;i*f2`?wwW3e)I^^>HP&T4FXKZml8sIo!~0SFe(D(`fUW@|F)CBq_j&>oj^;x6mMt&QPkH;;yt=50>UscEsiesn( z`kH}Rn$6y3!R$?*7KWP*0%D%QLh$Nxn{LaX)o2_}2t9D=A#vM_2Sy8jaolz&-zaIu z;5#rKNw~-@_YC5On}A!{l!|P)$e<*DE;)>GcREPQS(0$B$yf!;TaWAnAlM?N52~;sCP@g*Hy;fU z*WwK)Ww_FxZ~hR|(IJ-wzz{S5A5{ce7NG+|LRV$zzc%<_r0{L{$&oIOmST#31P@~LWt^imkUJ(OhozO4?*2&v> z!Ld$u=k*!u1kWYtu}<3hfOXPlz&d$i(|3z?($;&d6Wz&;>w%03P^qe1s6ZkLQJe=U87@64Rlj^n>*y(}?Q8-^rBZn())9TbX3Ok%?eJsj z4>IP!KE;I0Fv2=kvJOif|xfybP+2Fk;IDW@ZUG=jYw=-1tq z24y!#^(b;AUfU$1D^oKc|AaXd4HYxY7Jzp%D9C)c^$d9O%vHfw478(MgAj%B%jhB7 zaDLxkugb2!E97fyHEy3Zg-EK_@m#5(tbO=(z;FoplGyugHnRJs7hfV z|I@jT$qoqXf-tzfeT%MtP0%{)193K;3Fp-z&L#+mGp%RiXLg;N^=uy}tp78K6)aK@ z^-0~}1>D23xo*HcZNY$h+O8S6=a%BXRZom1Q<*Lc1l)rr?5RZ@xaSI}#%l%ciCU)t z_Z%+ugLA@s=z(_i*>*~^aX%>_7{Jrz&%h32kwDK4&1Z9SOE9X z;;$cYPw6_=`#GviUFi?V6Ju?Hj&x$*b%xmA+{l1?q6 zfO{^($DqJHIFT}c0{5^zKaIsdNZ_8|7WTyxBWk{00r%j9PXPDKF77RG4_YaD4cyc4 zodEZIzD_r(Zn!4ko;JV0Jxj~34Y;SV@|u8qmQ`LAxF@kP7;sN_0N|d8itiV=r{OyU z?lCm}gdi>?y%t{$!MsJbZZ>#}JVfkQHY*ii~i)`KO&s(HcOCN8MG|1aqq3gRAw>`CK{FY5d2;D84=vTJmBcPPm>a1vbzmG;? zWsA@o4NJ*?SWIJF=>OEX(5LJC9)EvmeM*F>%2o^eLZisReoo7f&ZJrw*F{tz_VZN7 z<6CrR(gqi9S-%y}Pt2el2jVd5dN%5|O9WWCl?6X4wTmMGe4iHY-k{zPMw*uDc!7b; z&rR|}FD(`EU`ayrQ5YS-_Rok{j%?;e2)krDvYA$YnlNclSH+7#xwXp{9=d1>Tdi}C zwnJ4ynDN3~#HPcvV>#(uHymEr*&p+l#&{6G&J2`t-kI-~XG!W(HD-j4%mgD^7Nuf% zzIv4A*@>RKiL%KBw23VzI+?^*w%U`AY!1^cNAnq5X{G(3EkChIMOy|nYcTy;y#{K1 z;80k9&h(oWH}qe(p-HiAl2C`LJ&jw_jvi2h+6|^eIOn)3gY{(GM%D)c(lxsNOoek& z++i7WvN>QH7Zbi4%D}6WMHx=Ap_`cydmMUO;6yYL0c1EVx+wMEI8^%|L-QUu3ubeG zUbZSj*w3yjvKbpRZ1pZ3I&r-V(TTTgihOE+lQ%kXYlZT&ErHRAX|QdJKXl^h{?Li3 zN~w1VbYfbp4xO0E0CTi?-(*gS7dmmhixcAqofyL?B^o+$y(@~=jH44z5RNu?Oy-sg zF91ANJO{wjY&r^P4QP>9gNt$`E(+BRLQo0p^3#!4?ot$b_6=nK{5 z3gQcuQ60z^Dhs@dFVr?)U#QHA8PpeQn?GNu8UufjzEGD;58?~;K&7`Y)FoAaef5P} z0Xq+(Jp=hdWy(fG3JDnLd%Rz7lSj$_Am1&ImdD63^4Pzl`~ArN%#f4hnR2q6BF~a% z%X8$^ze~W64*zdZn!x{CT4#6Je{-mF?$Ww_os%=`jz?zIDO=Oxq~?|79m?+FILWiJ zTnF|CXmjKG;BBw2yia}sHNd!kbL~xWa&v0Mxn`-Nt7Dht#>OX?#!1i2+jqR{eZSrV zB?jR~scICdc3Jz~Z0^s2{PuNWq&|2Sq2f1hi8cuUmMb-#^&nn!=rU!J!r zV?sNkqG1-=aVQwdU}LjX#kjlcgU2fWcu{azAV3Js%x#qd#sy<65&iTVl|x%z3gjyI@ULHiAqs6jp%cF3Ma+6X@Qg0v&#oA)Yj{ zPy)y!0Wg)brr;roBfs*0Pk`fET$C+M;|O)4q+G2Sc;vB*^BB64_SwM$vI?>@i?S`= z@fmob?yGlwatgI#*t1Vf@axDz_$!T(3f4%u3;+y4xTH*<1i2VLjQ%SanKe)vI5$7j z!CYAv6_r||MlQElM;1npx2$<+pp=%jKuVjMnk;4J6|R!z7G)NHFa|K*gL}+@5-@VS z#lR|tjL1M@@&k45vgz|ZK>^xt^)54?ts?jvwk*ud~XgDq0b z*n9qQ+`aan$KDq|Y4Vh*3DUIWG&UHeEu{Latg5am7{bU3(OPb2_vw3jOs`hapgl_=S{GXF(L%q|5@C7=!WJy2VV-$O z${?v7tnPS!T^sjkDlOR4^agZO8RJetkvmiruubxH#TYYg0Df*b?wUC^TVfp)2 zjadG+z_RdTSpGtovpdQXVt$g?|160Q6D@=2t1M#DMd=aZ_(UE`*V{)(&L?P`Z8X|pfrtmUM7DbAWkfKjUMYk&(#U*CA?bbpPK4x}*GfZH;-8);0mhDkpw&D0}mplum z%d&yCn0}rEiH&6EpDiUM?=zC~xqzj@*6AYlR+-ojOC;q8N%(~1wUV5}&5h+TG5Bbt zkX!UIG1$=eS@8Zx|yd+(fh%K9Gnf!z>RY?Z#qZW6zdV zr~5{KmV8FiKc~ru&WGY`*>!QzuWq*}#Qy1*#D26&#DhbF$EVS#;igdGl_!3^x5-OBRo(4zX7B>mNW8Kn4bzQnXlq zw~-}R=(JMsmx}Yalfarz&lgF^n1wyc@@oG&CB#doJY4OqQ%bi{b+SP%&eNH~)Jdq1 zIysiYbxf0NW#%exb#g3)*gv6j@@@2|R$}T*c@+Lz2>*?P|9(@=P}P9e9S%lBm!Lxq zc@&bsW*gtsxkdh6wTe~nW)^EKTFmf&WUkgIInWoas5oD!hQbVSLnCB!NQBg1VrKXO z5RdJGGs<{ffVku-$~`>kTqf0;wv9UIv__a-(%3^w4~61(RI5B4=EGBnf_i$FAtkDB z>kY~pI6Uj1Y@QFK+yno8Pz^W|j5Qha1#5USs5mpKghc2hgwv$&gY-*?pI&)?y2m8; zCZYE^Yliddreb3fHiE*jfA20fs3*7pw0^r4ZZ|}h)vz56W}U|SHnh&GGCcRq!HZaq zWvc4H#}M_AlGV;l)s*@4Ygi%gAaI?C_N#DHw^}+`a-O7LfZgEbtU;}DzzEjCIPMe; z+p-*)MeLW&#C~NEMv?tRfoh6>EC&ErsJb+Mu$9%&Vq)p*za?Sy|1=YS7bXHhD&=CU z_lU0F(dLqMwKJW87JB{{5Cj48tp9`T`8GDCaI19yyR#has9k0gJf} zclm+6Xs+ALlgUbTP2 z&J1&re&3$h(c;jptz0v#`y9FzhUa&D4bEu6=TfWR=zx=dI#8zj=P>bvsvj()LmXp~ zaw}+t*qe=8+RpCrxb+m0=06jVaoAc$nO6RZsTZC?J*7XdkC~!eTmGNDa{;fa$`0_^ zNq{6gl8}IhLFHZ|&P{@Um|@@+6=Fjm!2}3`18R858w?La=mo)BLt<`Xu%C6N_G`=7 zc2snnjzQ4iSgVCQGMW$-TPU?X4w-2XjX{z3!=!tywf8yu+!sj*I(`s7l5_U!?6co{ z?X~`+6Euwy9TRURC*taG3~}1%N`Yjq*EMf4GH~!#B2Q*i>L|T0kr9f4jL^$tG<@TASY?971q*PD zK@$xE-l3KS94w0gNAzzx+QD`nZ$$umNx)CVYQhk3Fx>S7k^~eN_6m)f*V%Su)PnKJ zxe3=5=EwvE-eMbng`&(+2#*kLqfi?kh1&a25Ed#3jzYk?vyDQk1LbQ+J1)6+8Z>@B zNfV~&*i&)jS3T|#i!?T}GU=8|Yv=)|XCF(NsW=r?hF&d<$GI?HOg62namWMyAfHSf zRNnk*V5o5VL2$+UXV#hR6pHPsWoA=LO-*%c&R$XpjbDR*#S~ve;O`VbDS>h|)LQd9 z&fYRyvvaAHVWIk~W;`tTTo_q`XJZO_2%1F@5pCz|cNnER`RF+ZcMb3uv2LL`m>930 zsq>VYZCfP1)j*zYh%Eb;&w?&DThTs@$M1;WDi>mZ+&fU?Y;iSdoDGABJVrlT4C=z+ z%xNop(ww#eGW*C1DhpJ)t?-%Vv@(qtvL;+SLQ6|aYmSaaHJ3EO!g%DBd7HM+5|$yn z{WlD6xMAaKg%7`)NA_yiJ5c!q(n#9gJ_ypm<^T?AqV%o4FqXan z0mEDRazC4;@ALOZw)B1W{!Ux^PA{SwvMhaTJ7MWtYqRv_yYVY(>08@zOW%E>&vc8W zZ$J;aDX0f=?*mS!>P(Ju$}lGjv*Cxd`mGCp>@xDnVXb~O=N~r79hLtiEnczRq1CU| zNRX+PEg8aE{SE=E-y=TD>i39`c13a}(Z{*Rr&|4`BtpvW>LeAU!8o8OOCGCtC>#zE+|cAsJ>w{e{qZm#HcFc8?Qw8Rl*WJqf+hlB`6+ z+zEwc@<&x(bdDpv`Shc(E$q`;bkrw*vm(?QkNU*L!fL-hkF<2^`Gw4xs2x(OS6-Ia zjm0xu8onHaYH+lF_MCuM7wyvi>ZA-lPV5N9mXMUSu%mXQL|{l2!+T((!wCu+84j4j zYyi@vrgqj?b53QNxu%%3T*|YkOS7rQsKc3)5$YnA+zs#81 zm|qs7Wjs*gd1C&w`PuWA&iBs8)J`W-@72fAt%Gh2_j%25Ux?Ok4(06B6UaGJMAr05 z-~wkB8s2Y?Xn7m9lZs{O0#HnU=l$=dEC>IafD?`!FLZGmCDRZ(VmC5f;5c7frnVuG zqL^n>opr2P&Uv)^w)Q;7$@tW0=;3vZ;1iapY8n&!nQc#W1V{sVyGR}~vB$MQ5^6xd zobi#dwP33c+aL_gL$~^@>T$>N1+1xAE62uUrT*kAX{b0X0*ZMpi&ZS82+%lA$A~(^9Lt%|iXk-rP3?arzeXJ{0_ymh zARacL@M;)L&VoGyXTf!yQWzhiDvYn|0tG^3qjzvNI>lwsochDoxc{wi8Du8Anag0S zg068HXpQI}xS1EN;4<`oGThNVVSSjeD544lWJ^;mGkW#E2^;1^*f<4g!% zPpu0^He6gp0^*3sh9P3h(l_*$CA{&$SBulDYQBfY2URsZ}S^ydla@$=XI(ZwI4okU_VU}Bg={!Fv(Z~O=U%m z?4e>r8C6Cm6M?HmSVW~ zkGq?2(-;n~g1blmbIS!@1&4#K;#D@Uw(u&WSBIbxNRi!tw~SXwFZ&koD*0uh@hU%B zecQ_HmA_q;vNC?&nN9dlmODzPWfv@xoR8i_bi0$E%E9ZQ@m& z4=Q*Segk+F=Yv-iuL4gIcon!5copY^60gD^-+g$MJJyKv3}k;CUG=@et7y)CUM1^> zd)IKo{kji-@hbCI+3+g2fJa2UN+yP|<5fnYTL4~VG&n}YtKbYCfLGareU}tLv2_i&}QV$QqX294EHxR&Wf6$l{I|-)=}Ebg3?aXW~yq! z(PpZDYA%m9^Y+?Mv>C^`%cjj(rO{ecRRgq{s+tbaW~ypJ(Ppf-45H0&uRz+&u1S`3 zUeacUbc8k|goRki9iYv;y_Pp6I5I96pY(VQfABtdaFg@#8fs4lQMYk?#fC0>EsC2e(kVO<2Urp`1nbVzHxa_3?$sKzTCOZ28L8C`*dYaQX#* zWQvT6MKuMJe3ZjGI=c&Zs6MP(9;y$kCh)24gfLjNiILrHd}Z6N1>sPJcTAq>f>qI; z5VAxIEp%tKiWa)FTGG(~8+3Ssi541HO=zJ34_jy<5e9W9#`tVXNhVr|dk3S1NTEeV z3)Pl=ba+D;w2-kO04?}lgXjGZ=i<+&ccqn!{vOyC%owlU1oB{wvm^}a#4Wl~c z;TO#ob4)l2k8N`6?F~)g>FvD~g(onXe{Q1i$Yd{@!qbT@-K8izwoTmZGE2Cc8W@tK z>pWQdwV&_c2aWM+VLJ4*ZP@OLmjYH=)jl)HtS52CdB!L`YfObtjfnYl@gyGmGsE+_ zC68^&lSU@+&v2h>r&ZsV%y56j7aFbchWnT%(_NUpN+GvVW7ke?9wf_Lmd(WcQ!=boPgN_Sez>hOd};;at@88c}Nc zW`5CXc#i4AczH%adFq4tRV-fdonvbvUcn2tfF;<}GnU<9YN$$;3naeQT0BYrAn2uH zWgZM~t5J7s&&T7HiiAgG4KrRoW7M66uRu|b{QYyXGKJ$qmw0B;gscS=f7BJ9HC{wY zkST#lmH&nbS?fiRL0R{Ts|5MdhWir;V!k=A;})at3&-6senO5Nd0DrJbWM{ex_Eec=9r_<@SZ)U<>@^|XQ@&(r)i1E z!@(QGNjs_D&?@WByYLz0e^y^K!B}<9SaLpt+96*dfD=aK7myP?t&|@$mU5_7t;UjL zQr$6D`Iu~c`F+!N$F=Nk&7U%%1yh0L=?(Ig z^r6<9D81)|vF0R>F;?coyrBQDCQ_STvf9l%ryTq{J1kM(}Z3hnbV1Vr>O(cvqz&=zVXPN zs~;=#?V6wdFVV0)YA%ttMTOI79P$PBsL%&)Y%ZvO~B`}_Vzg2 zSc4(rFvMR{h&Ox1N&S2&H}=*a$~QN;d&i z>z41)&*L8bf=BF0Fu3}`UC|z$mZNuXAAA8ipU9x%(d+fU^M7)ezxFO!G8*;!#*Mv9^Pdco8C^HqH#pZj|8 zxi1R701Lpz^E-q~G=39S$k=3tr(k)YI0D~ye;AgBbx-AC-S6S;JQQ>EncY1SGgr<5_Zs} z^F64A_0o7GEW&;=2ZV)?Mo|(gExTFM zv*hdowcTvfOvEF>!HUYDB9Vfq(I$Q5e-hMP3vAQ9)ZN#nTNM*P-FKIoUh}AZElO zt);QPjEx25(F2wys30(;y}g zXpHK>;ef_s+ZY;XEF=pNfyTALKx5P!j0iNY4Fxo|+UEBXXngDR2teZr6@ftGdpZp? zK3R5+hI;k=l(4m|l&!l){k=+me;&V9^H=rHFW9r}Irco;#$I4AvR|^7*ss{XuwS#6 zSuNYnUST`fPWCE$jn%PT>~;1V_6GY`_9pu`_7;1a{X5&u_Ao#DEqjOUWxr$ZviDd$ zYhe3WBYU5Hz&>RA*+=X@*nhGE>>&Fuc8L8q`l{aJS>9jqZP!bl{i)uyzbs7kmb{pEe1Fq> zr@T7>#J&SS?5_ZbeY*g$3%-9?PzF1Mwy;A35$nnK5y?Mr3~ceY-Vg z+uP>~0{hj@M{mq2e|xK)?W;&i0T}d?_wivcX&+opn8Ys?g;L(KYwH{dmWz8}s=LB) zzjX_{RkKW6Nz6PepGP+Blr3RtiWS{D$q-i3ns!?f(@?!J?jCqHC?2b%P?FuEI(&c% zeIn*HMiaLu;ORi*pxaOImT7>+LOb{y;r;$tz+DB&RcOT~f2CR;B%%v^ulJ|f3WXg1 z8XO5yvT_c;1R-Kh+2Qu(^W82eB2x2aTH~y;%%Q5)x-?P4*R3@?QHCd4e;6ubM99i` zwW67&XrTIm(FzJ7qmR7m=&d~5Of&_2;oy~Qn^9u~Fydge*B51JXsaFP)(r3AU5;q~ zqgIB7&A{pde?x6veK*k|J)Ly$HjpAk*B6YL7vXEb6Cs~&$miDkF(Lp~;WgqRTglVG zjZ|Ms)TDAzn}hDr9)~-e;iH`997sy;Cykk>ph9M1qNt@d^@5RmQCPr`3LC)v;8l@m z6(VDhk8HCz`CB%o6PN`*F|0Y$p=d*+{}L-r^j}U0e+b^IX3Zc3Z=ZUbko14bEgf;( zlb^n$A`ApCAYgb19{00B@LswrG6e6%yE+ZQdpjRHfC9mr)d>jREE@zbvGU47@Md)! zg4efzD!RKMcsX!RAnOl%n$4(ssaFd?Nh~w z908zrvBCoAU96xXt!Wx{i$2an6)HgQ_5$vCWC8b--7^@VM^$10^u#>^^!inH9iZ29 zt{8SZ2GIN26dOPixGbPGmk<;`H=g)!#!t*sf}`&!Sn>^98h=4{H`> zTb2!-5!x(j=!{F5MFl3)O=eLt+3qllf5O&HE8E^+{>&#O-c0iNQ+%));D1|YsC&90 zYE!34UM|C-!+rqNVT>TV<$-kVF=&u{a?l<#mjv3Q&FNA2ZH?DwV)Gk{p&b4B%CXtG z0x{+17N8H~BJtn3}qra?YT zu2d;xMuxYoFMKtDZrqxG$xpf=dv97FG2zdjH{*aUZ|L;G?$+@w{6AkEGHrKU3r}x% zYku>App5!Q-*fwbs57MbISzU(CKv z3h3{qUzyKlvUo&{WDQL0)_{H@`#LoM8-$UshJc>aMX9%~n5j$Sq$f^QOVRRc`ciU1 zeq;qfH!-(tw!1@SCA7=5e<=Z~I^cT*q@fgKS`QPPtPz|Lh@h%7T!-o*AhYoVeunzT z0m1mmX2JOBU4rrQ9>Zv2Q$8jROuWjd#sa(YkYP_lnN9@0@eNn5jG8qQ56LLzdK}Zx z9)Fu*dVmB0sY#B>>8=G!{7#LuUU{50J>XBlXJffPl9I#)U@H)^f4o4m74>zp9SS}; zDb#ffb*F^7)A-yTYKR#D>%*xRlRiBI!*~yr*YItp{l!w_9&5nrY91BL6Q<0*0qNu^sZ3VL&VMq zRqs)^qOM;z;-B7be<;8(w#igb0X`I}E|T*=#bgC|N2vM>jyfS!384!R8=?TPw;2(; zAXI%2Q~+V_m5z=QN)2M90|dQ!(=q=__>AV`gB$4&e-12>z(6p>1!D0021BLe z|4R3z%nINTQMni-JT^|Q4wS~pBDt<=K;eDfoU%Wu)5V>oX_kv1H}2X2g2ceAk!~`^LcP}D4fp+ zYrZhfM{bSttJ?#B^Jx$C1LxBo2!->JYZ-*|!BJ|Qe-CGv>y+0D28i<^&+w#^`+@U$ za5X%hjP<9D_p6yb1-dr` zHipC!g(?I#hUoA8z{aqLg~4NE4g?g~nAv3=T$%2%7Fss?vI(#;MJ ziS|)!%y|E_v3@N!Wq~Vt+;;^2^jW2-vl_uCvYX(`ze0u)U$`|`>6BbvVi^8JkF(B%6W zj#S%sY`?OPvJJDf)%>95`}lXO{nMHR+x<1Vnvpep&E%T3_K`IgH>%0^$qtEpe?MiT zf_#q;fP6n?<25DULoSSb4__Jie#%CXe2=pqI`aK72UB{UzU%fAjiJzR$cSSbEjnGf|??sH_H*AO`aGv_Bw*OSM-A zF)(AIP#}g&wJH$9gyt^}Vi1i%LW39}LlMMK5(&hhGR_$oh(WmoGt?l4qNZNfg`(PX zR5q(sJ|+(h2~(qWT?L>ZKNbxoKtX(!780N^PYY1k{f#5|*XLi>H~wE=f9rpVXa>3y zebWwKTmN5_iLy{O%0Y|JVw8)PprvRT%0v0602QKp(Q;ITOlSovMkS~etwgKPYP1He zMe9%*Do19t9#x=9WIg&siPMGvBXMGv8e(QfoT^a%PsdK5i|9!LL% zo84 z(TnIM)Q(<82hcCjE9h19OY|%BYxEjAh+an>=r`yPdIS9y9Y#mcf19Wiy@k5a@4hD2 zMD{oH|JV9o9AD%yyF7fd*X;^&IgE{+%@@>KTxO5e>EIns504M*R*%P0$;W3GW-rf6 zh)v=1oxIyyv4O9$+AO@&#aCLv>Cx%hjAil*vhz&|v8j?!t;<3FxzZcA~)Z(JRx>2pPO93oE~vlK|-uiO0Cke$yz}&HCI-; zXuA2OAafVL&{fUbtZonQaXNXM(@~A%QZjNECB)9-v+FGte3jE>H+!U%aZyXNGZSLx z^BLw!S{aAejvE8VWh~6fNr;_23o@?QV6|0>^{_yWnTvCme`Vq5*}Mr?+FWh6I&kR1 zMGJHDacBx(;Pvp%D&B6fi;a?(jazPZDqjfA>2^cwR$3fZ(yR+JGqa0u>>N@Kxn4O7 zS1iL#IeRXjVRKg0h;?^a?(^aXuO#W3GL|jHB1S$-Y8ZUB)9b?D*L&TNdB%#Om0091 zJ_l-OsmCn@f2n7e<`zNf^Y~1c)9p@TsoSiM8XQ}im0gS@=W81t@+46y&@>+2tm%AH zRxa+rl-Yc)TN9UCM59u0|8FwethlDGYOmem@Q{u#UbqZLrqV)s%MVY_#ax->bl5i2eA#%9&t6`TgZn&nwp<}-c~X~Ux%s$HQ&ad1m$L>} zvesG)f0?l)Q~5lzXM@~$PCC{qopu<7_*<3NQGvy?3h;n>fbuDP@HO#9@=Qv#>K_O#B?+?e}=*Y$bRCNdJd)Qx^^{P>Kfj3vA3Nc z&UktUyDuIIh6#l9z8_A#?+^9t6VqvrzhRs{in-z+WI~c>z7jML+Djii;_qnczejun z<0UBl;h%2mc(XaYgZtY}k{5hueSFNmhe>_Xb)8!dUt&#g@q+G1qy)MTcD>SkjXmTQ ze-*l`8CU45z$?&r?MpC%0Z<*d7B$r&Y%}lc%4s1@-Tu}q&A&+(fdqHH_U+e3zBcSg z=azVV#!_4>!4ZW!qbt3oaHZfGE_kETb-3Ld4qt+`u>31vsp$BON`Ps{eOJK7!uuI? z@$@;BcTP{5Q^`%AZ>!`MOi!9y$?;fYe@o_U?lgRxbllR~rdLdNlmBxn z@t>r5ZXW(j#~<*+@k#0Mfq&p!9A*_fdK6c?_7e033V~#)z;J2@jSE)C@7uqqiDBJDaf9+h4p{=FI z&`7qUdmOI03x zh+Az>3oX-IpF=+oW7p9ff7=N|rYl#$De(H?_1I;^o(3TQe*h?fk<&fZ5>(#lj1@7F zy&)ro)cvSM3RnwO#_dLO0%I&(Ej^3dLvkZt1UfGIkl|bS3l9F9g_N6-`bGQwxXuP% zk8g3XB?>j?$D;oN+4brtuy8TqR!Eq_%!zg7OYt+IKs|=N#8UK;e|t#=kTIlsGu!O} zUPVH+I&NJYrobKKM8mhCHB`QZ3!ZzC9}`q<`abCOSC){>nUM`HDUsN=2ut)BzQqnN zSb ze`d+SVbl#>QyaBme^J3<_^^!}8rtP%>V?XG(yOZNL%6nU>6oCVu6;VvdAOyb#g?Qa ziS^+`<|hI#^I+hT<3DKoLfHjpmr@}?B}B%8*cp$5U|!Y@bZZbz@kZ-T`^GGQH<*bf zSWI7{?XLJV2+@%ct{T2a7m)9ZV&Gr_J9zs1l6aCSEAnIWHK|h+YVqm@%ip zI`kcwDd_ZYvX7dSOH%^5mhhFX7bh6iHPrF>vY?ioBubuCO6uWKX72GSPG|cB<5`_x{43Uy&mqCs z%ZVFks&_neT^JLV~{lucenJ7Tfsj9GUDpP_9gims>EwV2M!Qn!TL$`E=3*gj2ANE=cK~FXy(%)zw$^J)rrFznGEK&Es-z4FnT9AsT4K!I)l4lD zbut{51oH#_+)^YdWVoAeB^eRziaH{R9vxsDe{&RzuO{M(ypD_ap`)^j#*7R|JPx~+ z=pwLR>MCiH4QHBuT07oF@en=&)Yc?brKq#}oc+zZC41&y5kgt8J5p*j0E zu-3iUahWzRxtxfKD_?tx>n;eIL+3pWG>1;$VWBw*0L>Zam!Uc1{M18=&64pW4IlWF zf6yG~a?m%StVa)aB$KXVU=TJuaFWLpC-|9z{RF>!6WP&|ILWWLV@;djKZ=tGE#23r zj;79)qRj0kC;;TYaS#j=G8Tp&??ICNsLybi>(T8FXdVUB^9^;Yf1kM3?*@mV&JE=H z0nQL^^i|ZGH;x8~UjMt9gE#T|XZx&cf4%<2S%6APUjOs}kH^hJP`X#cmL@J-aXMz0 z(sl=kZ$JJ3-+uf7zWw+EeEVmZ47&r7Nk&|FN1RCjttyJ}z{sG;9qOGOTKw*3@R$)FDa9%!g-G#Zf3d3HV<=NRYhI+vNvK4y?qc#Qqerpm$7*1`f}(_ysS=`e zE_$3Q(L>~1v^SD-(cVEj7j>@vsyY{ub(rwZMRaZE@*3t`L}t&yIv4$Ez3g1{!1@rj z_$0G0-?`}4rZ2&{=vDD%04Um8~**Hf4QXGUw)!&U759P zd)cP4Uzn|B`DJS7q6gMX&PDa>6wXEX0Gx~J*IiTRBFKd~7r|HNTvWeKbS}c#51n(- z?h3Y6M?7EdS$`cl7iH8aiY^%2w+P0UeZ;w_-K=sh+6oa7or@ZXgxa}i2MNzor_Fs2I5>qXTE+p7ty5y(YYvUU4Na6$a(#AE}|Q;6cl`YG-FQ+GwQwRpE2I(;pEHKuf9X<%YLRO&uHSn@ zx_;MN2IuiS*W6v_4baARoK@AHlSMAvUsf42|4>$j@&=R_pusTM=$ z5NyWMj4^vav!3dJmneokZ8R#ep*3wss~TmrqZNn3&=!YXl$EV%&Iv*pX>!8hQ-U5P z$pHZKWz-__NFNEZ_ zEC}MZ(9SOPi`*8Rt%BP^>P)yT&sMXNXt*tW{-UWAA|Gh}@Rx z8`!de2E;hle+0S;d6o=ES0RyCp{wi-rmGNT zJ|bOZZz#Ho{8)Qk(p9EdBhXduXx7qI{Cc>DoN@%RIl;-9P$jDJ5R7%#Pj!R-Fl&M>?0Hv?vOyFJl9*S^4> zZ(n1tw!7>Mk9%sDgxP&}SHCd3=XOb$-S>A%nB5Dzu7cTBwG=IXILz*4TL{c9U4oi+ zc9(*l`(#ZB%q|l=qY*r{OI$%Ci__cBOfA@ke-%7yc>=T1p!*InCY!We7X~al6tcY0{d;B)vDDU~@HeU9IuvCU^H%6Nr|O=uK;l zFYbKb%jN8%(f1r3}r|miRQ8r>va04SMpun8U4xE?m!*Hb@lxjea zur5=p5Z_M~RognRSBt96v(E*cs;Bpu#tP&i6rlpWrE7!95EjGm0qR=PnksblW{+u2 zjA-qQc7twn?r~MOIrq5oMGr;V_-$ne!T)TciOP1tyBZ*qxef3QarHQ-e=|nlIM`e= z?e+AQ)_WCQgXl8Wq{P^W*4|}fTE(r9gf3llsc7>j;~6g#>y_OCBG{hJW0ENq_Nd-h zH(VZ-dX7!+VZI}{XzF+$3L@ziwy?68h!mnYx(BRi9^dyeEkdu2QTfoljVLW$G@}cl zN3Z|}L3eskp|UHjx9OH`wN*}VYeVvR34hRQD*U(62^Gk(lji0c6ax|0n#{a{wIn5XU357&HB>oV=;F#UM9)FUwP5)Qp0SN32hoB{4f^MB z=R%Y&_!p*7zeW~8Y5@n7HegGar)s?|Ke}YF{rvI+4zR_#+8ofrZ z(d!@b0{{Q1W4QnS=h9{A@)O5;*L*I$-Mj3ZbSn1$BOl_k=^@k1EF+%ahd0F8 z1e1xKVci+Fq&NF3btmlwD4l346KMfN%Q6WFx$@mFe|4q52;LWccS-p&gG+*0xC}p6T09>e&K9{!ew~I;u<_}e; z86_=Be^%q>Sih3c%aH~#7!k;K96XY80W|i%!AVKX1UkXoB6S{K0?=P;I>VXMQpFk9 zYGD(F9j-LN{3Iq6Afc~usc*qjlW8|?0W<4PF#lA|i}6-+tOHouK$5qo)4%neV^CfX z?^$|Wx#pl5deAG3rs?`aMp=wa5Z`Cp9ti9ve@MsQm#=4BaVa~}gijA&0Ps8xUJrRrs15Q(SU(NTrCvDn!LCAaL!gt{i z#z;)1)O3(u6NZ9s4OB25RKpI8=20{T0gfmWKdAFdO109Z#0%2mi;{k`{33)Z!Xyuv ze=^7&NpIX&{)HSQK|!${z$UNoxzjb5YI=rwwcUZdCO_4lm*|2dKC z|64s*y;pxo^#83MqW@QUPQ_Mxtj*~}|IZ})|A}&<|7S`XW#344w^tep58&Q@cmM-% z{dIMANXYC5e+-hnuS*Kf-sjKNw{VZ|e}g^2srI(3Tz#PuoqD_TKlX4wK7XRZ5n|{I z#)hY9-g#)=H-fn@7(*X7_0+hWxUHqycIH<)cg(M-sjjQ3atbaXH5FLx($dBY^X9E0 zspriTEb+OV;}a%DtLQK}4~gVr^^b zvaUo1py$d-7|~Y`W+{v}3DSh_Uc+_AH(qCElXEL%_!aPn4|2Cv>Ms z%eE^PK;O{hrhv(*Vaz0Swo6I#e>m=p69nB6+@dCS&_{2Pw};8K;Vg^e4`ng_o^qZS zbt|Kmq0i;|FHFB~=^$O$Ve0DxBT+;yYw2mZ{$s>Ptp8jt{DQ>X0aX-#M9)a?vc86b z>C3_7;Bs|(hHU%TE!(<@5I+TA?iso9tlWHBKJf7oOP0L;v|RWxdE!5_f5{Va!zXfm z*UsltF$O5cI_*+~5G9NwuhT@~ct&l;x{RibUuT$--R6nVbq5OIv6OD;nNL~fqC;*z z(>=CEZa&*BY)TvZ3!slmIRi<~!h;s&LGdIHmu;VrKIjs}*>dg~IpZwYAc?3aQcj_{ zlv9W_N6ki|K*O9&`MYUSe}>tbf>@=K`5di9D`*mT)5Gi)2bUQcy7Ho-e&dz;S>M)3 zGuRk70DgS*2G8gXw|+!M@eyr5n3I7^>8&it5{_+-p%_gzULziaL`NTqpH904&IV$= z5(iN}OBV08+;iX&_K95EmA3e2FI)1Ux{KB74k>R08@d{hrk$1>KNdFy4$e2!m%KR& z<~-sgyk~NAvStsO-s(^E4bu?1v=4&bs$EBKRqGj9daL$<(_7uWigxm_&|Be<2z~%J zon1m5z%AzlJ%HPnGrR|IKjmPbtC2l`JJoMbp|6rk{5%y`e=w>od~w?CbkMO=pfR@) zTvvbC$g)1~d!2R#zFWw3rM`%om(Y*viguBK>k8lZ;9OU;fa_|5Tjjdi;HF$xe4?3P zO>=9xu1Z&t$Y-Ih$KHk$tX-6^0g%7?JwnDIb}x1TLiwA!CzXSvXA!<>uaYcZVZHGs zr4qpX5S;R;e~4Z>5MRsAprfuZbJuq!k_E$DhpX`qxzFT!bAOThPA=wlA%@mayr14$ z=q=D9%C^hl;uH(%`*Ry4g#-MtRx!zd>bx--o}eow-Q zgUdu@w_!XF=B)HBlPFM8zPkq3K5VSA9NBysXFXu*f8ukOLSM-ip6BVRO+Fgg9Dg^N zc-Rge?e}P<-%qYai9sH*wH}^5vcp#A^X~-g?wCmL_hyT3eCc8E#fomVdu&m0Hq{rB z_y1%~|M4c{Yl=Z#Cc&g>B;DX9VoT5@A+HDns*@KQ?@UnwbFmN;5E{-BviT{^Jw}lQKk}2edPl)`iC{FXQe-!XCQ?41dkDIiH z2jh2v9pJbq!EmDEqN%!MEYGAc@itwqSg`0}dz5hu;2s{nYo~EYRD*>@hUU)ND zACo2@UPV7>LAkhe3z&{Ifw{Ok*7V24Wz1%nxVU(>*UiPndYp~WE{UE2N=n#KrkS?L ze*&K#`H5T5Y~p#yiC;L)`a#d#6Tb;_7$)wX_E6kC?L+47@!G$s+&xS+2*%xmBf$6C zTE^XT8RS1y?w+UDsoXu8>jF?+U|~0&yXPb625|QzN`bk1(%0n_uPy$sk~zgQi+@`5 zo1z!V|4)@nE?!!^zi39$?4tXMl8bhff6Oi#U!>>m$y}#!_oNhRxO>PAaQCDXjwp8z zl)|`s;7`WglTygJdr0xa$KBJjjxEHISmtucO~l>vPn$GVmu;{0$hP0KAa_q)iH^JH zGl&Su-SY*e&~x{k$1nqT&tD)gBzI3ePMLb{o>w>GG|EMMQ*!sjtQ`z@4>S7>e}ub- zszRK*=a7A%+&%c*zz+s@jR>($ZmDi1Hxy!>_JG7X#~v6Ou}=A(Arb4`+CQ;QSV&@> z=YkOHyzq4r>*%_D_=$CNou3+#SjVv9=QPdWc%FK6Cj8IPddkwAD4J&3cBMhKUG-WU zys?d5vH;dEq*XL1U$CRWsdwp-e~s&DID{r7FdxY-zQzXp|!No7V|z|nOYS^qxkU7@&KW*PeR+L&kmQsg>;pwv_>P1-qI#7 z8DB(n_79hpYP7$r>y#qchU^>bj=IXJ8D57-BT!Hja4)1$W8~^-9T2%lBLE&YUZ#! zhohAl&3F7%v~VNM6Sc6RqI%4b%(9RvJWSnVLlAT@b@8b5TUIfiD$~zwcCFhA=e7X}qne2^eN^f7R-EsXKluo>$C*Q}^N;M^K=X9oALb%3CPt#+8Xz8aG zbM{pWkqtz1-XxvfftlUt878!?Y}bHpZqd4uMfV-5gcM6ZL*$FM%gq<%17BGt`=v28 zva)H%_R#Mp`LOlSf8N@`dn<9Hn+))|^3m{S%cS1yjc)dBB_H^3-|s5vT|#emr5iiQ zccoHwr(kJt>-ul{t!wB;QhAKt?Z@AuZ6e=(IR3jz&U?)GBABF(zf%e3QZ~rRg6vRh zrS)O2a%7nKVIUbeM^~_%Xt<2J!dO^r??$beFh;2ezTjfLf9mF9vEWHa$ebab(Wm1s zFJcpuojA{wC#W`~S(<8Q=+W$?7Sn4L@|#l?zLzUZv^X*B6PBhnt{G;S0hR-}DE!=xdv+vJQ0eRj3thuY^a^(Ah0YZ%}*yD0-)y(iY? zF*3k)N!Fv@f8Y#oB>MN>Kn!r1ehhH*ld{>(8Q@5<8U{F&88X1V;AAy1Fu-kgv&sZu zfTMAwCMpBmW_KKE8ME}Iat63LxVOTrzPxMcsVY?A;&L)D#9{S-A#S#|2L{3rH%rS9 zHw3FPw@}|=v{0u?s%g#7YlKdAgV9&|BNj6(QdNqNf7>@}L~0fN4e9-`r*CzS410Rk z7Ij85u&0;rF|enze`CFCB*6c-cuvK7Jl3Z<{(o_CfB63`(xCkQ`+@lXghTv)qC)(G!}{MG6s$jb zkME5Tu>Q<}!1^-**8lSx59`;uISc^ee*&8NjfVIKV|M_eE=%b=SDB^KxdUFM&@>Kz*dhd@uSZ>X&Vq6al%e|FtC@}FyV#rW%h{|7r|zSYBi3~m9f zd)be{Euh9tf3}ah1q5~ruuGS&!RnEk#rmhBsFRW&)-h37s&tPb7YAL#m*h{LEZ0TI zu1Lj5%t$%_%rXA8`1$l8WXQ&)wO>rJZg1(bI?(eVs+cNCi!;PSzBkihYYNSCQ>;>e ze>9BhqeFAnmO_9F<`6r>Uq_ptZvjNnN-)ck$KGf`&jeFnpZS*%@tqZV#Nq8IbHf7X{cpQ9wRAoVMtu$mpppMEGw3^k%86Ib+) zl5EnTB%2sYa@R_ZlCp!W zbdnE>fkG#-kv9``(te#N$qqD5`;Kc+lK-ngNnXq{ceRjzdrQ55lKiMdgOVh1XCRJN z!w>p+aOI$(kL-m!ugpoop^qme_%+UAAYfX&*m_o-*J%tP=S8U1uD>QK|ugq3>J3d zfqt)ioj|{N1^4FPpa1WxWAex3x90sz-Ve$DJ6B)Ho0~7?h37@*#pd0fSH3zr@5@|0 z&~HJ30`!}is{#6v8vy#v%pFmnAC$s?e()y)`pwMcKtEFa@B#f!6lj5df1j+riGY6h zIrKokKPy1L2UhEVem(sH{XP!>^g9;_==Wv6K)+iZ{y@LG%2l8r5%En4^!qA%FhD;# z^9=~-M_2P4==Z{^fdc*Txq$=y>>~p7TewEEjb zmZmKw*T~qTnz>y9SuHQwL1j$$@Eg06KfHQ~{2vO$wRP%D#`^r3DL zqz`pE(g*JdlRnf9ob(~5e0WJ8{7DWB>wxP69>UC>xJwH>+{J*0k9%T&;0HW>Q?i~8 z0X!tpU4sH1?oxnAw7|n%?l{siBk=Iq^?KkT zzPc26NEJX0e+(%kJ4E6Jg&pGAJ(^A#G#1f*y;wxu1_pXkf0ogYC$(-?nB)lTNj=HY zpC`33n_=>#=GhL1CpAN7VmJGtGe2WZ5h%)EIUP_`3I!CEe?kF8r2zm%>->SD$LVYu0w`J+ z2q-Gu+(6OKHiQ6*zT*cJEgm#blyoj)K&62IMWs=osB)#5l9Tr@{^+sf1^YY4ge`uw z?Lt)Yqivnj!+dk5y+oqOug({z!B)w=<0B$ry3lWw(1Al&g=D%o>9bBF^O2_wPD<^~ zzGwe9e^~pByElV88)+88#Bj4KG*PLOS1>W^tu=ReDEn>50dt3MQqrf45=PKY>?~RA+}6CPtEpNqiMPvUn0_ znq-~1jKty|06{>$zZcY~mgv%~9B|RX;ZB-OG|b7uxZct!&!BAp77JjLN$9aod8YYE z@}~V5&zeQu9-$0^Qm!z9E!uFsEt1zq%Y~EJCU=P1UsE@GNdZrOmqgt)FCO}M9yW_k z?2`51Qhz9#%%wa4>*AjqX+M!eUmMB*HAQNLVG1JA#FYpQ80455+NB;F%XZRXhaU83 zE^c0gj;t?0uBO&DC^3dCu~;0Ly8fTNXAO?3O7omfCm{h6+AP|UnW@{I2%U~VRE!Lm z1{A|1A`DL@@<9c=C;mdgdD79Ehb3v=$?yJ+ZlB{^fO9jE83 zw|~IQi|H)qBYOlMWDtO|^|k&}3uU5MFHOQNr({LJ-Yl^ia{YuQFs;vkDR#l$d|Yqi z2Oa5Zm7!O#SxJ7f@~*wuTZW+;=F7QSv9ZA{Y!OOh32~t~D~tsUZHw2jQDsCFXrj8z zmK`vNGDyDBsX~G!p~W?shKZyF%#w9gqJQ@6QAC9vbC8+Y3neot7^oX6L^{~7s&ZjQ z1rzt)#?v1`=2RNyGxIx=e#dOc9kQnJc69zmX19nMu-i_AQsujLkRO5BFVr^?xnj zTP4F#w{N5dH|oEb^`EaPIGgNo-`lq5K_!0GGDcfy*V?krQr8ryDU=HBfvKL%8gNV@ zS=v(dbldamAon%phdGK^>*#XCoMDy;h`1~!_F0w}z;D_jG2MrLEjR2}!Yihy0%lJ} z;;^LzrEt>{?0}8Lg_0^(163yK*`slxfAtcN6`Rg82vp** z)s@y)hAv^Sv?~GvXgT|`7a=<154duTTvrq0SwTPSJgT4Ac{ zT96{zAPCT{^SdP+;2TaWvDg)Su)xDDV+{j+HH$|N*>g_*bRE?C{cI#@W`6|}2{xt4 zWJ9v^seC@Jprr(>)c>DLnTv`}+;pgAI*(e@cDd}3d(UN;#G@HA;m>*S4hzqrLaJ7Tcr37#iMM6V)aeU zq}Chu5ntF_OIkJ~0(DLBU(iSV^~4_}k`~gz$Cv)eLojb|Ysic+c zBH``9h<6+J*(W7;++l4t-6o| zo0Qr>QyA$&YMUAxy}>%XG@RdR4hf-vzt$V^)n$`a{)V78pp=ls-e5yCM1B(WN63;u zz}En&{vZ%H%5E_ytDAwoGw)lmT8T7!Lu5e>P?kKfOuUu{n!FM0&bO`B$6_Byg+G81 z4fjRE0)=J1Mt{7hvfdjFL!b!D?_cNmBJut^nZt$dI6|W#(xDG22dcO*^e>-qG-^< z>g&m+KNyNeblqg#GcizjPS6KB!qvOZ=L-S81zbF$9ttX(TStQ*Qt} zEq?-&J`?0(2AQJX8ZKg6u`=dnq2Z!DeuV=RNd5X+=5#wOBNV&mw6SQ`CJ%t8;vD19^5 zO5Td?VtYT%&f-o&?(Dp$v!ZiDXLYB)bAM-NtW)iL7E=GU^HAr^uIJa#{H_<*(C54E zT1#K-YIvBw+|{^&9_%`~fgb9*bt8SNYyL+1PSwQ zdZz22z4VV=MeFIGx;odm?FD&WaMiF3&wTUUoHb zSAkRiv%-8w`8_N2Zw3WzZ}gkq6VdaD$c04ke4_rs{zLtDui%fH;`7_nNv(ftIFhmA zv*jn2zrTEBdD(I!QtWv9@pm>k~SVB-%^v9(~u7vrPpuv;r9x zA{lZlM;)yT2W)LBP`mv;Xn*hYX?rdA#(1XNxu@H{*1p;ZSPC%E7PNP53ASY~cAr-Z zoaa@JW!tcKc0Paf>^M9-hd(})LEM4vtXYX!=kb%=g}%wl?exl1lITl-0x#rRF zrm{P^QfVCv(fS+H=z5eL>nbedJu1WFtC;Ay#$!aD#W94E2+2RhWPdu;>)wVUR#JhX zpB*ZGnHND)CQ{;UV;0Bn*Yl=+#G8_@xrw%mi9_EinSyNYJ>AKQXSy@U(E(c;7Q7AZ z4PMxT2g$j%@h{K#k-JgUU`}+u=@@{rU6s6S^y@_Ao8vo`TN0bTPOSX~a`GM&>V5CS zND8d-_TN+mIs<5L&VL{d+lCwjZh`?g)*dAT7{;e1dgv>!A3VUSYUFUU&sOZ8CF5nA|a#U(O6RmgNQ;qp_KP6F17}H!F=d;F0A% zrxrWUsrHG9w#yj(eHo*_uh@Sr(vR-A>k)TbH*}W`Ij^im ztk3bWZV>8RS;+>CC42C0`UXy#UpDaSPHPYTX0YEK-Hv%Z&PX>tm$8&fC=||TP~e?= z*zZLZ{q&qyRczV9fJk|VVIvPCXg2fbO!pq-RM{v1p?`dArR1cN%ZrVJ{O}q9o9x%V zLw_SZCRl=CR2cu1e5MhEx!oiyFRLEvAoCfuc?Xku2RXc=?8ZH}hwCA_&tVq4b8RG! zSsOTWkDjCyn!JkkkiBa}u0m&IPnan*{tcOcPo8T>oCCH&fS zXsFluShsUqx0GPvL^@G235D<>G&{tx9tBzp|IQ!HO+f}nq?-#Xoj{TY_-?hct=m1U zqIgMpy^8WG0~cHs?w#G@-~g!2KYX*={1Y~DynkMgB&>i^ti57h7;Mn&Nt$Ndf&ki2 zapG`|1Nyp+F*DM^fd^(RUB^{49kEQee<*-k-!3CGT?J-02@L;Y?cf|o)cP;279AOp z6FiBdP~PL)Tnf5uyKdFop!k<<;bO+zcT2AxgYjJD*cWrsloBc(Y2&n`^}P~PE{>=y zV1M&mJ4bRnpGtA-Jo`U{SMl2-(mvPR^mIM^WPN*bRfmc*lB#m^Fv@es9!=0N>`}QH z{(<`${F7%8TqzIs$?oRv(RwFn=6!rnxPs;gPxT#aXqiD581E0&vp2BpTu+ras>2jY z4h@!Q4d#g&KW5Zm>`K#^g)${<)h(I}Uw=Bc*@~%6rWUfqtU99-jJG8;bFDk^9@GN6 zffTo6lY@D>{s@VGPBwV_!VuEh0BkhT9F;eUSZ zJg&-7ZFDKuJo?8N??MFD&CuNEj@qQ7MBLqe#9y6Hbx%L(X!f#)-uaQrOTokfS)b#t zE=pD;)hvEzr#sZ`Jf=F1seR9FbccK8X%x(v{9fs9%R_7UVzSUHCNRQD?YWJ5hz|c? z$lRRY7K-|Wmvh;cX)v2&wL9Gq|9`|g5@8dAd76x9fe*RBSAZ1A#ep>k{O}N<6d}RZ zP&g)wz`fxz^feR#XP@xI{fE#o8J|kaOm3p3?361RM8PCdTaimzuvDO+nBpDb?i+#_ z$;xmqceltYwI=Te+G;T@>!la=YdB##&Bf%>2nG_!hwCes-%?@r$&+vl@Hrkexed%SoB;%6CnAsMHnL2IL^Bcri+ zK%xKFN2D9{AX_lm2r-i{9kwP) zM~EK2fliirMykLpcLT$WCx2-^^&-NOryt>7I(o?OaEst^2Fb_x3;vduH;9XMuHM4h z!Z4s$yhugKTdRy^xc$9XI=_~=W@w}NWTVBHZZy{uH4E^*X1K4K42*1@`Qd+FWpb+4 zv}K0W5vf9BbhSm(sQ0yjfh`EQDZ=<>^mXNhGo-^SKOiKr^=cw?O@BWCiD`qZA&4Vf z9ImuzqZ+KOEQ#i{DPz&;4vjd4V@+~Qkf+-}HH>P^_%Y+jCJ6lwuc7R=@O% zQ9WA6aONnhHcktX(SLVoWGgbcB+I#8+v&r6ZZS<0tar6};UpOzUzR%mNR?Ef;y7xnTC!q`+}@M7s%f`+@%7)tH&wc6K+*W>Uq__Ef%fKyeDMYJLSk zyoNU>g}=Y1@3%Fcc`spX9rLr7$@WH%8&WIGXSGSJ?I{rt2Y3fCw8^kK zT`M>t2zeX^2J(Kox1Kr0o=}YxELmh*V}SL9nl}axVp;MXSg>7JU?`Ka6RHIIglb@> z#3xy?WRGdCXkLG4CtlqRvX2ZH28)3V7(w{;pxrF7_>gI$Pi;>D2*OWA_*j)AJM;F| zM6T3)HWbrk4Baf%*N$*d}Nm2GF?()}~GgZ8<~_xj?``kj|mnBl?_EB?)+ z?y??0PqWF=TwInXmL1xnMFUemSf%*?hQ;J(=PR!(kAj%6BH~;MSQCXgBp%DF1#HA+ zFMkwYejvB)I2mjf63^Z$gVOotDZiD5XQvsn?VUm%J{Oqsk@fNjf>gU%TXr=YL8O!- zt#cd}s=F00LXc}Wn?N4bxr0(ZbHl+X-If6Zzb)Ma&z|eR6VLW*1gn3PLj#38Q-NBk z1ej!O(L~$1ue|P>;+dLwl?@Lz_a)qOsei$sN_PIh!>kv9z&H+oedTpKLzU1wGaRJH zqklgNi9;nm_g@DoAqyIK_X2o!k4J!)qt(K(e!2Tgp^+$Kgo2DYzEs(XrmWLs<+I)K znc*QlH2K+XJj2rBx`~q|S@|WJ)#_z@R}x`Z-+pra3Xa<+z!8_=8N6}`hvoj8Mt_23 z3qAL~bikG2@xUx+940qCYM9CsPpTBP znjXbn2tdk`Xi2mGDTV%n@vinv;(sEo#7eX1cshYjq|*Z98pk#64g?!dH8ut+0~$}_ zHcf+-DFA_-8ZHVl{4s~&-{%a{B7#cUEGl5iE@I0yrRbG13)nV-U@^Bd+4=^-mnt5- z!l}l>8^>uPaCmfJlZ&cpMW9N`Id27>{%H z3Bx6DX}09o;Mwx}y;N450Z;6+lr+Y?H8@NH%sIYvPzN z3ruzCu`f==s5BeJ@;Xq*p9|{kj5D@FxU_=+S?uS9ihsRTe%oUzcz;HZT$v#D$PA{i zxo9u(a6f&+waAe}^+6RC&wr=_wp{F4(-qz#F|?S@EwGrya0{_OQ#^Kni?(jm5zJst z_1rX%)3Y<11eeC@YS}_Z1_R%&0jLc~2%f#%k;(G!)b)O%BydXqg219TTn^~qr&=5; zEDp_PsNNj^_a+Rvz`=uARu;eZ-$oJ*kLVEO{2zN)A01_t-rt#on12Ka89v{Dl6Ml2 zVG;!`oq~l30s#dgMhs#wvgwRZ}*#6OffOBAG-uvF~`+PsYTPl&2;eeGDbar#+zipOX zcJb9hxvB=;{}Ui;pT}K?+xON^daKL#6!sIPiP0gT{{^%WXALm_Q8{5(9?k z0LG)X=*a{-oqu~{TXPKH-=+TF{`1vs@3YM;o}kje@rh}Gq?nmmk>;FXZ^PS3Wg^)mul|EtHr z$NLE^(46*CE?kq3tlS7yaLBg~YSmn^edvfF=kwcL%74g$rflg;Q<}to#!bW;t_c*A zpaQZWI5IdhN7gF@wwh*m{6(C+`<(sgNg*}h%Q%@9&|ywhBN|A4MV_e8Z!^I)c5WYG zL4b1!24ml7P2n=fRO`>J*;a*BXRWceS-*^SHoe-EwPghV+u78zrDe;jO`T0OO%wR9 z!7a<0e1H3&Q-*ZugspLP0B8>=>F>kWirMTfM1#l&;Sy~qg~5X!si7$~UNkAa}`6A`q0l2WK% z)PMLlD|53L7n(>>^#|_PBJ61qA5_t|&S5=>G! zIagQ=Jv08s#QJ9Qt70~NDZ(>F<0e5iL~+F+b~scaXZ zHu>IYhzguT2nKqJkn2|W#$gZPGP(`7eRv5IicMpTa@k~j z=jEhc?Bs<(Q{-n;hlXGW?O|NwRCgyR9-rB@KPr&D!yCz9G9Et8YnM)4`*ZEjwLjPX zT>JC?{)h9jFQqRJ4S8!9adrL}Yfgsme5thL&X+jD{)$Dvc895)V9}FY-k5CYf`85s zUoq#YzHwZvJ;7>Day{o!;Ed>mWKG|&XpivBmezD`-tMyst>cw1&wY7r&)i+}#?K!= z|CjTRS5B{de&KHy{C2_f3y)X6T6tt1S6pXtLE{@%-;*31M6YxGBD}(?=@^S9S*(k7 z{1NcNj3e%q(!F-MTemw!;w4_p&* zEX5*8E-D>kHA&vNW{7Q0jGLb^1ws92W>QdVW27m;o5%pED`euify6zG<;Bwbb{Jvv z2+MjE)7vebl;2}XXsXe$Xdv5u$)b$+{4Q}qa^Qqy=lE{7VQm=wPyJ&E6)hZ4-E_Z+fhY2UTGhO0uQd}e0I4P%NIt>8V<4g z!)4SXfS0_FdVuyIZ)Y$t=M<~yRY^ZrHxc&VBCd(mj%K40s~r~W|9{wRT%@7KBJKOm z&TwI$mhj{Eo$252T-xm!Mv!Y5&-UMR)!UDE!zEXeD7ME)cLQi}F z%Z<_O3%*#7yXQEIcBB6=a{K^`bnjqQ$5~~!tJj@%%hk!a+HG$yVxJ~s&h44j?fXCnUztnwt7={WuHw|`@LONLYz*6NF5R8fQ>M zB=8|pZ%?F%iIEO0F5e;)KrnOiA5OF8GpzY6i=5);w>M?**S%X8)5~;#hOx%sG!YkA z^dfp^j?i=cYp_KncoebN1=evfluNgK*g353TUImBIr?sT;D1!RjJM8w($=XhfNyrS zHO}Ybt9pUeTr|?O{Pw40OeQKHSSp$vCrbK)BS}++q#3s9tX>a5%~f~uv8Hn@dY;8j zvyL;Y<7%7WEemem`Bx_OC3`?xUi z?{}##g=Q4^0&DMQF}|j!S^b$0oa~=-anUVvwW0mUiF_70Y57J!!x~Po z`jaAUz!n=s2or3^35eo5Y5$(ZF0+pQP*@2gXu@TyE#wxY+Upp2Y;+?&9X$u3-~--wL785MO;^G4~#^| zbIVMhu#Eh^3HG@NdZXDM+iGNDVzr{AGhDU+7>kx}u20_Yr^4wmBEx6-t!!(UHPUjd zxz;OHKdE}8>i5eEs+RJ9KUii28JX#!=(~8ON>^S;_X)ye=q=|D&b&w2v^nuAXOVAP z`G0G)L>VjnbejV=UnG@RPny)r@5fTTc8#yYr{-eiN>#r-$GAN~Ol9z3s;FDh8!9$d z>4%0OZ*PR#1w!SXNshGYEiFRg-;v3$qB++^MN(BonNxIJ&^qx=HmD5Ib5#>6=?KFw z4Hsub_z8vv?$G^ll`@W@f;Zn|C`oj3E`Pc-@LG}1QjrZ?|Mm>hU+1%Tr#XOXmwQzZ zh_{7c1ByH}@;+RNK;oXRP!;k5_(o(F?iF>(cY+K|lJQ6ad0z%|4?_VBLYedIA@=J= zXoFDFq0gd@97?DXWmawH(r^)o!<;Pi+-tSVNeORm)BeWIZ316hYT#UHO#zi!TYpQm z4+aPUx#Pk=i^D}9jtGzE3P5>vVth43g+W01w_Vm+9fVlzD||*o6%zTcrf*YyU$x;H z&y@}b8L(YMsqZSt)u68WO=I2ds;jRdu%LC2IALRh@o_w}2*QX99b*?;l$dhff-MXbfR^1*8dh zg6An{Zz!FJw>$Pfy+YoU6m65^r$?dNGbd!V4BY07mxa9b+d4sO57emWP=BF2*(x$k z!J3?B^%wZh=UMbZnLNjtGP6E&X*)f&QOM4o1i93`J+(iJBkQ=%%H@n>xHZ)(v&yY) zE36fL_vWnFykgyov-du>BKTly;-@QuP5AHg@GtLT8m4+#nF+E%@$!&l4bPOcE_xC8 zhgQ`Ib(^=WF8F4v9SZ)c)qgGx?rXItsw5~YaiJQ{D!AN+1iu7s-qlL$d?Y2TkKycg zvb$lhBPep=zBpOu!u>K-Timb!M4@Cr!wJ9+x}%2p^;Q$HfJ;b9Wt84lk+&RfX)D{)#V^|dLf5Q=0f3&184u6X0gr0lvd})+c zKSf$F5Xs4AQkr>bo)TdugqvP;{lG=rfpdITTJ4}>ouzO>KHV0AXL}pyyz*_?7{lDX=fVkF!(tUtM4JaYjInQ%eegs)7o5;x40OD zpISiOmd`Uu;29^hFXQ40pK?7Z0q1mLX}9_s=^w^rHw&-8`aFwI%ptr6mP>1;tg>H( za{y_-4oSOjI@!o5>-CdBzD|LyQ8&2I;8-)FH?tfQCE z6_$f%|9l)N1Xx-!0F6vA)G^!Y{goWCHTLVTXwvW$y_qTBihM0li!BTd_Ba3nK5 zd4JUd$Z+(%jDMWrOm>rfnV!uVj+vB=Y(+-W7P{~4LAG*{HG49B<<$Y6OMZy0;30^% zL1?`x`@@TTHtWH{gih z9?E81g!R9axVctcfUEAiW7}u??VE{BLxmnpJK@zaFq9HSwXU~a$&`?YJ$~b;@oP&< zOP)c{hJRmQ5wyXa<*=w}ibQQFCj07vDyw zh$^f}(Wp_~ygvF@29{Bzs{zY_>H%j!bp!!tOMl~J+LK0NeRxkghGb4qxGZU9!xdSg zP%hZ1_;lsK|JL9wTInsS8!-D<8w^-cS#h=r$jT`oqC{I{`p7`FI-4%Fn>OT=?>c^a zg&wIJnuI{ioPuDuT`K8&LO1Gfa9ytHLteGq3v1G+67|S1LLu*9yD3!ncnP^)aZ5aC zE`KDFF#RZ)B_i>lh85mkBzdLK4L(*hzsQ5cFm7-T`F#gH+35&dA{zxPiESG3a$DlzS?eM}6_}l~0^-srq@L$*goCom4 z@Rz5p5%aKWyITIAs`+!sAPE(%xs2z zqkM=^mGDtORl-LJRcTv_KfECkAk%o%{*H%DaXuODiA$wJrn(F=PS_LE(8;3jf|bv^ zj}{q#H);~z6Gx@wWL#?ryt$tFJ%91jbRX8ypt=5<-F0~*iw)^YtxbZg4{7UAjx3pgfPVtVaM;>j z`@P@>qLj=puqP7SKm`8&1YHL^-IL#ZJQsKMg}ZW4}XAW+SAl=@j|9isTN%{WsnxTbvg@#cPQAsAr-z`&%|##6WD&%oKxbyN8n`zW0;0^edOu zY1zaBr-j9GyRsLtSRR;X$B1|HjCY;;AZ0*VK7YJQX9Mt83qzVWuYbk>dU->x`WffU zw6FP~mk@S8*b(|@od8fH?6u@VH&`DTy~yj^`8zdn``=v$`(y9B@@>eq7`*3l(9W#? za%5)4nWnu|$q+|mQ1T3%1 z7I1ZJiD|JF*Dr4{l7B;l5qksF?GKF?`dZz2R&&9nto=OUUtdvzdE-;w*zFvYhpMHG z%Y=EALxzNgs?S`$+Cny9(lk*(xajVj_8=?}K*WCgwu&k2E%+Q7;~T!q+X-hlUX?Dd zQP#O0=Ns+6mzHOGM`mNl8YEWKbxM=VG+z*d@%HS{^@Gd-1%F7f*ZfYoG3vY3=gm!GDM?ISpSH@{hc(tr zCox8IzaGspxEX9p2mr7L);KqajQ-$8X~MWw6pi@px1h`IPnE`Av@85D}mK z6HeQ1R4Bc??SK4vq;jHuk8ng!4Lljz;L2dD>vMsoEizs!zbRBEpG$dRyw0DR?oOHd z4HcEUBGP9i_CCrxM*!)fmw;=!=`?FRBYO=g?dBGNMnhaE9e64fg#Yrd(BiM5_Nue2 z@*JExIT5V#bR$(TE--qRQYy~GXYd8$(=&0Skpea$;D5M^1fy-S&-2MB%8S9G3ZKq> z$}o1BMf+L9WmezMf3EQT*)ICxHoROjy~}E9Ek7oiz7^ zLqp}qxz1t(EW3<;hO|nE<`fo|KlPAipgj{e3QNx|qW*{_%y24l6O5e1^WablH2uAQ z(Eu|y$A4L7+LEM_Ix;ZZHCKsv1FO1>He-kk)803*h3dNPTCNO_Cq8hQ)%0sVfKTTP z+|KF0m`-Ox;DKG*@GZJb33>(Ub=3pgvWua^WsW^q{lO+BG?j%L`F1(aDlfoxxgqe_ zAT7~W5mQYR77+Cbli)i3PI09TQgCwN-TTt#UVnO`TiQzX&3UFXJvOigq!8f+3S!nDP=j&_+T^6|15cfE9SbTPJCG59?kLXUHO|02+)7+gNGb zXtV|Jdp-I$7vt!oi_=E$!={9dQQqxMa5iMlTaK0$)F=6R%=FlwywLJ?THuHbl9I-d zSAUS_iH>7%hI<~Q63Ep?tw1)&Pn`1T`7rEev{+ZbGzZH=tc?(@edkhnC7cY=4ib`! zh%=`>u40B;vGZ>;O-X8RAOEUHX4c_jZNwnmlFN!O|B zyT|vaP}khFOS=pvs}j7ihs;7wzWTjc>3^)hAilbPWt7kDzI4&A8)dkUVM`t2O6;L{ zXKM?W8rvQZABvOGJQa!z!EE;$)#A!?!-b^3hk+?EyZrVK9NTyHr4u6Cy zLv=%~!oNaO^4IW@IG?=4;_q3fl&Mvn1-^a36D^=7CS?_X;Rb_(QM|krx9L%Q2D;Ki zgSK~zgdfZ_p+a3lOjz0WN9K40@J6W%@lo`)+g$-|^0x*s(^#V@AUFr8d|-?LS@#AJ zju0D|#^v1+;v3arAAs~4xR#mz!GDp!b3#V;KqI4VhoY%?o8r#u=@a1#e=)1EY}3$u z(K3Gd(VAx7fa{0I&FE?6BnF{gMAL34;O-2~q8Lsl|1$ZR4=8ly#y>F{8wrh7`1n6F zeUMNz%$h}3n0wF{Lrp;`aK8j$T8zyHT{XTYo@-{2gcTeOb&i%5&AZP4k$>J_(;Q4; zpj9$x(_-ZDR&7C$pCe1sSl-;g&CUp@pN4cZ*Lz;)3}P0zK76TX;3Lemh)J5mk1@QJ zgq{N0N0IwDk5mt_MbKQJ28^V(cSAF}BBenCg;8>jBY=1c|D_6^|WxFS_zX^zl{8hqw9EtM>Vs!lNE?AxKSPkiV zsLN+HLk)as5rs{g>S&Shcl>D0>pj(JaMS2kFypoa`6RGWnJn+Pd5+f+Y#$)|wMlyi zD{G=emq~vb1@K?}%UZ?iH=+Xs#Er@8(ufpRPZ9LsMCDHdk3O%Lk$+r$!xfSGK*buO z*|pm+V0r=Vb09*(b#2A}u=lLNQB`T)?hZ-16GB=bxe>*_X@sT|5>_A+B4(9f0(3|Q zSi@it@C8PZU;q;^_9P@=#+~S_wGyVr8pnBP)vUWZTRUnwv(|(*D#Xlg(1saz?~kY* zq_VBXF(@NR_I%%Y-hbO2e9VvCt=do_-RFJ2bIy0p_ZH!}RgXJXzx@ZECvU%OjbC>R zMGAHXi;E+nhn=3QZ`XGJ|v($&RBA5+O>m{{@O z&H9(PWg%-CP`g0B4cilBMTBT=kzDc@d^5!pfbL`sHFqSNe19QxDQDZ5IK)1=!obdB z@_RNJOS5W(2{W8UrFPf6-<|(%H{E0TvF<26E+7#b%;W4q(%v5>3-Oc5V62<7PAK!5 z-3?seMd<AF|B``=I=H3ajiEWWQ_Wrk=Hsm2=X{8g4CC1$Q0I>zkfUUZnvuHFb`3wdGtK$IDJM#nX|w$4&z4;!h_~nvwu7s@FFTRk6_71 zK5Nz=r_?h&Rp7_<%~qCzFYd&?{4^Uq2Fi9wk0VM~ih97Qms^=9)FN*_z=x^M60bf92is&Lw|_ohD*(;d26upY&fyEfcL~?q z*Z`+c#Cbv98$t>X8SW$QxEbFX3;4>ZJB`)j9(jQo8aaEAE_aMV*1ndXnss9mDhWmC zwjmRwlxK|TFj@4tsefr4T&20^B9k{;m3{8BDUVwGuaMRM9apKvE~E_wJ21@OHO1(3 zr^8HZgn!d;Y`xB^x7tL9P-pGBDPdq%vGFgGdC8?+7tkOH{jFezp}IG>2R4DLi;+(M zZ`A+w?Efbwfuk6tJh^3(V<;SIdYH7uslV&}sf`DRz7QL2l@_oVJL?rT>5b)En4g_% z6T9$TUY^hDWD5}{@>=zo77n(m3=$9B-$jG^m49YKN7FR7xT(Qgv66oU%SV$c_?)Hz z&qCNG^>VqVtn*I!N><6DhA@jIDo=pAm7>LyAKd_sm-;9tf;=+F2Xg89!wuVeRYj!h zxGmLmsG6Yx(;@O#*be$^@@0@Kh=5=-uoqbCX63}5yXI@GI|9}4gv(dVyPog_{Oogy zCV$)U%=PeQ2#VHsDpgCU!`K<37RXQZ8>zBT9;9BxCT!91AcJyAA~S9fVHHael(s-) zoJ~U@orCI@DQLBUnzuse3_2@odPpnY3@tBTSuWa%_XR7L@|IP=Ca%jAo)@WyMsAby z^oqb`6!>y0yjnq1Vq&x-1mpvrLyjzsTz~CG`_Vk+4VJGOMI|IV{ya@XXM~xWJ0>AJ z&3pgf>Mrk|?}5WYr4*ykMbJp!t)fn#m@A#aZ?Zbvmg>QuKlPIpfd#?VZhwAjH+M5n zJ}Q;SJ2f6^?WW_#6&zFcCVX`By^szcSZK~niddV=4V8nkOX2i-6w1GKg&cdE%-2nzPxz*s;{`Y5EMF$U3%bz>~%{e|zT4 zrh>hmMwe%&IOErfcvq^L3CuJN*?-N*cYPv}>pVFr!j1g}0P@)Yq%;K5j49jT$^hT6 zW+p*w=i4A`$9Zk1@Fkb2`uSuk+31w_=@lnmtFl`5$HWpL_eW8dg*OlB=SsurG;78Q zI>hD(R&lyn>ElmUG2VDFp0aes%>}GeUsRGH)&pl~&KPaf<+7Vfa$R0(1%DZEGyAeY zKjVf|rMWrwrhgk^4Ew8BC!HY;fyJj1BeQb5Tq5#;o3Sgz6bAmST~1sq0NuCSBzFC( zgCBs{L8#~{x4%B+6xc?= z%01v_omBBrH7s>A8g9J0%YP6uNW+qEUiodA@vs(ocnvAW5+D)`Qf~(0Lp>~d-d1US zgxn!pDRE3$YPu}7RR5#w2kvL4>zmHrMTN?+$ZR|~n=tcouN)NXfuE}5tEtz`xye_F z+#wKy!lEvVfkKU>I$`!(_*d;OQ%)?uHYKC%!`mo}rgoZPb0y)jwQ3;E;`;1=GE^fF%6p*f67R{M>ue8?Zl z%2^_ten+>M$i|H1t$(%Z`bxdjDIZ8^LHTzUPfIi>w35sYIAU3%&0Gspi|smea-hUU z)G3Q&COsK*L=@CBwBqSW8Z#A;JrMpMS3hSqpEjG%U^}PH9cNfObLqE*Z0JMuUA*)( z0O<_GrbC{Z$i>hAVx+g!2?ZiT;LWgfS^DY}Jub5M2=@}1{eNk*?u_)=zy@#}qo-zg zKYvJu+f==cilMBmS9H=zh1p$+@i{^LJWxm*pqxk8*D8*)+pqJti8o!d2lDi}B0ooy zYtBtL%52T7QG3vDJt>K29#yX?mk*p|r)YVqv+v+pzz!MAxbSSZ9wI3g?Y%NZdylj` zTYjZ&gAP`XOn+2#_Fmx}#PIpcI3XrO-OylPEPmNy9yO~CECN}r;g3`o2UN<)f@8hL z`IwAj&lF=13}smzVIm<0R*{o3Q=R3Rs*a(cGTfp5IP&pXmouV%!0=1EW zirOJH@E6V*p-bnCv3q{PpmwE%NIY~7-`i)q^UtAi*nin>I<_Z110;jTy>BB%9A4AI zQkX1JjetlnLCn$S5a?&qCV{*l&)**oxFXBe8~Iae^pOjX_qQA42G3uQltE2jL1jUW zBtPvseqZXT*;oW_e-S1=6l^gW1k&Pkh;TUvZh~y|-2%iu`qr6_Nn~kprJ*6m(sYa< z#ey)EdVinL{Oio7HHcSz){gk=yE!6hF zLeyCPX7`6Jy0c_Z8?;Sv%(TU&H2@1pl` zA(N3JRHuHI86F8H^|!5YGI-nxa8jkjorpoSAx;aOKZ|cYf^u0v4t(q~iL($1LU>ZNm?H$VM}zgKsH1cwkCcHtIx7Sh27w`ZWFf!ptUWxa_k~VKOfPCM3Jh zaJXVoxpzl-Q$`{{Y^RsGC_z71ODuwrFB7YitI?_VS*m~=&dY4(;Tj0v*+UqXZ-gv0 zL@x20u|fDaPXCM!M#tc9GqVhWIfG+6n=js|k%v>-bsGb~C^hzZjo|_B=YOEl_u@8o zk%FI21v#YF^Ypp6QL{K_VZ@S|gPB((&&ANorTh1Ze7#RANL|Rccm4w!wjyeCf}D%Rs08?`F+pDrKRFW)l$Y zjGHMTOBNjPY$M>=k9U^)o`3zdJ>D=LWC*>iY+SZ)qsH`vWK__&IB8MPpf7HGpSbFS z`+F?00L7y(*BUsJX`(FN$diR$2NYhYYV$!tj-?on=IPXDSz4tJ_QL`dvY6Q}#f^wv zSAtSW`+LN4f|`7k~a_=pyOKA{aVJ z(Ws%@x@-BB&*1{47XQeFkv@<(!RM$sgn!2IPk1OgMn@9-`|h%%-M=PiL0FuV?<5tU zbZpWWZxc)gIr7}3h%O4zxs&aqIre1sM6>}AgwVhrbZqR2*N1xegMq6^=WY#d?4dgk z1AdUR#)=h6k0=H4P=Bb$O(o2rShs?rahEH&4kMms5^9QFz`0u;cQ6&-ndaWl&87?d z>~mFQ{+D(0>Fri;f!Kyns`lQlSi_vuw!(S!g%uCg!VG-*!Sy{dcH%4oY}N!096GL5*AJe`$z~sP?BErv zVQd4JZw12FVh-Q2Me!mRuUOa9u-)NmW1J$Tt!n^tK#ac~cQe*feyC?efuZ+~E@f_r zBWIAQ<=6HQQ0A}iA)SBnGhn^(F1Oxz^ui-(o@r)Sp5hwiV%zTI!moA#1mH$Lo`C%E zd}SrU)6!C0jlGT0gE@*Oo7iiXT)fXL8SgRf>&f5SLlB`Ap{gOeEshjVzOr4$1{UF? zV;tAQir=kPjEDB)rkJfJ(*Lnj?)PLzBVu@bzO^^|!(GihFUEgQGWMV#^~fA$C}P9C z(|T)?RNoZ}n@MR7sjNC%U~L5&@%sHeAm82JLuy(sl!Pu~q|hKf$RSI;WB5!&pg#J* zTmTCq%nWP2TFMmB#jj#6MM^Y3xUfjp*a)Y4aFONesh)+@wI#5d>e*@Er(dQs`g_Sz zC07$a)r0ayWqE&T3OXU3(h2KU4bn^LtI}sxiC#iet@03rL&Nq&g3Ur5@~bo>@saoS z=(*9`|Ig8L;9zeG65SPf{SGtyKGNthpwZowMkmRRbdB1#L@g1o(#cx~i1=28li`@H z78P=t9AVx=SAkZnNKWcgKv>9qZ2VH>zC|H`s(yp+Cis6cB_)5qP1V6+?jxwz9X6~h z@1&ZwiPG;RN@;#{id>muXJfu2HoW$~|3@k{0}hUdmK*~H_mX3XC;{FUq(@7#Qj+6^ zApvK)+E+irMP zk?)0zFy4RsbwwI*h50+5$ukS*kD` z4_>qEn86AnK*q|J9jh9BDNrO?mddo_AuP_0v@(BNS=#Ot5iaBEYVM$eS|%!ohJK>A zZOrP30Yw8tRD|T_;U3^}Nl7;1#aRQX&a$pY&O5H@dSoEaX>AMEi2{?wi4{R;lK}S* z0Nl)%N>hp^^*R8US(8cNn}P6smBZH-R98{uQUq3&DSOPVnFLC2Rg*rZ>dQ&{x{>zf zOzeM)#-UACSiD|td^f`MTL4pd0CKrS7H@-=7hVs2HxoM6W6zckPKJL^ zv$CzoSQcRMrvXX2!^77H)B(xIGbKzG9ZQP5Vk85;1&fdQ^NWw!#X0C4ghA8f^fb#3De-PUYte- z2>Kt&zWdRJ1gK;90S5JJZCB&h!M}e5C=_f+Ly<4Sg?pY#!zs)z@Q6=Y-$J`U%8~>$ z_)VMy8aCz`6p(Tn7NeWMpnxnA*)^GgMRMn|w?bBW(o6e_BCd6IscYkmg38O2?r22i zFe-8_$ipix5=)zeZU&T*%eE$g+XnsxL7z@QKb#)8jwf0dNG*AZMUp)Z_C|jeuz8$T z=20oKTr`fp&q&WCDQ#MYn-(g2!rZJ7Ted1}S zHt5x~S(?_awg0KJ?V+}w!T82Mb@s+9#yW@cKkGEoR+Vc5CG8`|#T(1DNJ+bS!5kXw z9gQzveqyLEYQ{_m@VES2Y<_=RV>s?xPSW2yr(_^ka`}akbF|)xzSvmnhiyAsK5VNR zCAZ&D?}@SJ9&aqyp4eHg{jj!NBj7wS7902lAz0Xl2a2~HEZ#)EVGB!^VArJWa&Q04 z{>!d=qkne)toX{spSbmp#`&o#ci_k&R&Im}B;j zlivyQJDFoH`#ez8@9odVQEn(Tec3JM(X`U2Fa3adG_`aLGV$Z~MBckOixTATSKm2g>CV%*Q&9%V3sVaXcC>TBAN!xf}@4h?l z^)>AE?QCq=z0~3t{?ZXrwAzLOo*}ub@maUL86NlNqBM!}{qz`q_fA4iTwR|Pr!T<6fFZ?(X zezJYmpVi`rC9HqMA7_#un!gHvQj+{YuH%223>>JS%7P)YWU@o}Nqc-1IroeXjMx7o zgjcVJByb~FSV=x)-8uJO^7$YndUr#9&W+?_@Ioh0&q14rR5LDAL2bsX47R6geK}gx zxZ08jSry+*(Dn_gDXOb{a*<6iwg>(h9mnlAOI#g{mGFP&D(?dw0@HF7jnk>$5w z;}i{!bf9zAB2a4?=>V>aX8aE7VN90SJHqE3RAVno^KK*v+?WHIR6HMS4}Q^EHr{C! z1&w!-R2Y9Fx5@nnr~&-DE0u+U`W5Z>3k8~w$T$K8pl=D9oF8>CP0p?DrLIUXW7>fq z{|>x6Bj>Ax7BMe_!lAYf=%Ts?_kvJc$Luz)Aj>?+Xht&@qe36*y>@H+sopB#v5Z>Y zGFjrOSE_)0#-BYCp5sTVjEN(HW9FRz$D7NmVdj5AYH|xz*7LF4dVqvrXJw0l;6my9 zq?)wPmmw5>^$)D&AOi#79AL217ddJ*Dc!tE8KzA~j*KF2kMKnDAC-|`RyrQ*pkuqN znr@aD{fcMTF>yqS+BM_7bpS6i=_Fbk7dnO3Mup-%oocwXcz-6gE~ua@o0@!`p=@l3 z?gM`kVgFh@0n|AlGEgXqdTp)SEbR<07cJja)3$K^cTOyiI^BQ}U zNb0DG1|-4lU=3c$k34;y^DRVOf`rW@7tz{yyqTFA!E4Iqs#_njxu<1{>UM8Hghl1`rYcxuIGQgNR<#1OtqfQO^j>_bu^Dc1CkV9*_!rb z?G1e~dqmfw5Jjeh$ko)I{<<0CjR9{tChZ82QH*Q}s$V6Xr3gl71?cRIb`;Rzkaf!+ zg(cUtYsNeCzvzS*UA~PD@~Wf(Cw|jz)I0F-CUq}g*k>SMaM?2VH z%(@i8NAfo*d1NGlP$13w$;_B|Ac*p6()dr;BF1A^+LRhFn(;vmyWd75KUA-yN;3V` zshY4v2MZBM*WD;B=29N66Md5OL)Cvz#I;B}r{W4rVuf7`L^HlX^#A2rAVIF{VZD5V zz*lDo#HI^DFj$QQ1t1%0n&7PEsTJ*~C%M%)I^F`C61r&$;S&<=We}{y(@g0Z@-%>R zD-DDrP|liv0UD^4l9d0VC=v=rW=(&NpjJX{ zx7!MsdrM3E6RiZc+^1a_Aw$`{+IsJOb~}65UGY{vQ`haOyVscUzVG*Qer5*H&Gz1& zXEWxU^M3F5eed^s-t+!_Ci52BsZ4!4#B=&?)wKJ(fT#LxIc!UZ4vVpkH+qyiCU7Ty z^3JK?QAyWZl!`E&c{sc$3uu2GY}pvHoptvb6|n8=3C$!<_oJAh=agGt+7Z#tCNOD8 z&sMiFeN@yUPxHvKWc0WqTZM z&&IPo(EVuQW$}IWSO_u-DqH06->IA!>axYd-BLQ?=?6tW)wuE#7P(U8&$QRBwaCH4!u>>)HMyry5rV4p7U-Fqpz(G>=|^!>Mj3 z{1gI|lLBFhD5{7hpZb4z)`03|%c-{T#MeV4nt9@3Es?GVYyd9G2(>=?CRjk<1Xf(C z*dnr2=Visv`9xQ;9Yd=|Db-9{YV1I^!JT88ROllOxQ>cyB_8kFZb$ocQ_UJIB$_-Q#CKFBA6nNIc zWa{L(DqNKz5)OX^^XUyS#%mfzxq)U2ArzJy)FRd5LQ2FmY1^9qrEM1CPWmHVs|3PV z4x|7j=LN9+fu@AeWbosyNi|HrP3=PhHnB8js!ZNljPtY*&NHl972I;?A@P@*IXbV3 z%G436eIDZZjGAsif9@_XkGd1&8d zHhGv1KyFYiX}YH@&;*pK>Z4AMb}rmrCa@MtI-4?AHBuK>M(MzrTi z)Ny-fr8MY{7*0)TP|xM+PAVcU!1R-oGBI(7yRR!EJUMsupzV`3>rvgdEX~DkAd^eNcS)n8WcyL04$?_*y%kF$fE@o9737jw?V!h+HfJo@jwd78vFbf`$##7BVfXVkRT4% z!Tv~LvK$1tNzm@c>h4o@_s~DR%A&q_;hrQx-nKiD7@NtW0s0z+!pEgse(3>JsnST} zZn=v*xqMxjze+0Z?hVvRy9_?%7bm1FTo z6cSkn5@S*RKC|d7`no@P&}iYeN_*7y<$2`opbC|!g3xTcT>~3cgpq^maP<*k@DopK z7>Si?s$Hcw|06~sqj?@(FYpcD5W-s5e$25oxmurUTx2r@IzGf2n`X z2kvaXg$$ZX1SCi5iHO(mv4d3ttQ<;qEqR2%dUHgm-i#03oAIH0Gk);i6k}lURY}{F zYHkdHr!fq(^N$m3@>DzS9%q+ORxp#Yf(^_h0=E?4TQm~}bRH+U^ma)oN&eTxD23=g zwitsTwGOkzazh7)ImHnt4%0shWSW2IZ6?T$M|lg%3&K#4mC<7{vqQn$a?J{~reM}c zNEyIpt)%ZEZR0XQTf{iXr$Quz48f9^5Jt2A#pVoU61qe_#D-v)l$fbm3o+)d?x0;m zz`hi62s|&5#S`rfh|YJmLhL5elIK^XeP2x)X`*l zkp^n!NYHZ6OUnXM)Csz08JVC@FB^1%qW*uRs{gOA{k-<`e>&y8rylkH&(@wzey&!2 z0QLWq-52C{a-D)_vR?nsRQi8cWd?AC`u|3*|8Lav|DkpMI)(T-x95ogwENLlqTP>1 z?S94gt=-p~GF*YCzhNsh?Ekf|GQ?sCmo|uM9+j3XwX%AX8`1)C)M4Pk3K(+J~Mxw1Fp*HyDjTI8(#npK|IY*R(gghyM}SmB|T!7 zDp2y>-*Cw)(H{8;bZ4bcX_8Z z)T%;WA~$8~d=!$R_V<4=cF-~paIKwObAflG=`xBtwUD+zi)|5em!aNv*ycoo96p7m zK-14K(H%cgs$&{bN&E@0IaL2vPr9F-LM0BhPORy9c^Y<&RXxD@m(w-%TD}&Gh!M$@ zl(fe;9ack%Wit`A`muboVQdNlluRT~7}cgiJ?TLf8E5iw8Zm#Vd;VW%c9H)b%`UX5 zoX*WI?$eoFOq*#fu7O`~@$+bQA?A_kOU*7IZ4stXGXBMH>_qBX$X>XS(BkChYdyE; z2B^zSd2|4WV3Gx6*bq4l_kH16R2LON-jPc>O^p{ta-!>xWXk5z!vXD&1P%Rur2CZe zFO-rmp%%MoNsWJ;WXgu7lL#BXn?-9EP0K>TCA0XdTHxCV19pefB-R-dm_bDn3p=y~ zYd5W|Q2}?7-27=NtJf?}A`}gRG+ga24hz#qs!Z28lxvfUrVwo+8IK@s;+F)G&&>W+ zM}}FN?oNH7HfL9W)yl3~fT{}z@^m4cfs;NVRB_Bx*+_qPzRtE~r@^*mr@^*mPrho~ z@)WaeIh`M1+p;I0@Q$l%43kH-ZGq%q+ZH-`0&H9Mou@qglPtN8!L;EMl4KS;%Y{`aW(&z)^x90pOL*MCnc z^vXhQmmExmzG5ry5S%Vx|@&Z04j71>6)p~f6)J-fHFQ%Ksf?cGFIYHHJF4FU1>&8DWy(AnXb%?2@8{M zK)GFL;gx9cEPG+OXw^wE87NSUDaY!Zwov?xB~l^gykH?_@t{IXtvoFtyg~L@4IfS_ zj$VJ@9W2GXlCliFp|dB|wOsFI=BIMQEMT++aZHe)kXSERX(xn|Q7&0Jpo}sgIZ!?t zB6om%GyuaqD28_QK~S0;P34g=#Wugwow1T@)tUCwHkSYZ0rg_u;*vMgQ$At@X+QsJtL zBBzU!OBA4*`d)RKWapX_A2R1qZ}u>6cC7Pf-t1^^c8t^N&5i@O52l09F~Q<{TZzvx&h3o&*y5|U6Rc5O6DCclIm!l@g~L+Vp=d zsh7bz^)O$-1Zcq{-W3(L=o8O*A36Wu-c2V?Az+J5@)g|b&Gq%3@|7p~N^bPIB*>;_ z*dqPmytx}nIANcO7eu?>S8{{TH3rabvSs=T(g3p*GC;A2DgF*|JH{p?nMf&{eXaJz zKG$t+lG%H|uM){l^0SovfhnD5d~$ytHhdH`JOLUGe`6;@!&hU&O{2_Tc`M>0y>p#r z?Kk{y9*!|fJ}$$5V*F(HI{&V)fuB`dNjbpy_-gor;%!D z-#UDArZzO@G&SNdcRyNc0^X|r+J@^dt3xH;4XfHSB>_ag03pQQ;sKi^8_?g%w9uYgmkHv6N z5;MdpIPTWG#?%#!IVEbH3ABICXkIC#uW8IFBb6pVrSQC}F{c!tqxH1{d|hMCLkP#U zPNr``NAUE8>6&Ejl~>ZnpM|+h>ciP-#?HmLOS%^)txpHuuYxHsjNqn|{x<^m2LNLU zW(FB(BXGY8>^$Q%eUo_LL;4=Nx+;r^U{NJZb>nlRaOd)j)DiYd?jYezz>B0B5b7yBT$^ z5eJV*3s3}T;zxftj-xhIi4>~~u`twXhOrEy-@gtx8S>3*&l=&(RzC1&!PlFgev=_R zTreb+!7I0871rmL4;RyG$4YwrlwJR$gkHBXyk1~>vK@>+KLa#Qj@ z789KG(Vc{86B9KsaHw6E7pqCCmCb0?%PL-AhfH*y zF%4lRmB_=k?@VOs`cv&X;&g{Qv%s}_A~A3+#|)O(=`m*-x$g?`S2W+OsWbr>LY>-ElRuM2+{I#WC9dQ-db@hCpZKXLcQm^)#j z-?9N(bU}_0vj67-AU%F0^;liYk&clSsqJ;Q2rJWsaa73T1fKGE9Td^??}?qr8MjAX z08X&on}7H83&~w|-f58P9cdDTrOs%A1GQTT8pG)ToMUx4N9+9aq#K!|8&uYdq+!|K zVkm$7qWSFEvto*WfrfINQ;z!olViC4fAzMncYKZh|EssPd#A10b~d?eoBSB}{}=E3 zPX7NP6#uo|1L_vZ?K_11lxg)OUp`El}p7FmOltT zmH6}UgHlOp*~;>z>sCs{j9??P5O}Dfs`R09>E_BPp>l0$MFoZysNA%!th9VB0WM!! zKDJ8QSWb%+SkaiGGei*V%LKb%e?+hsU5PP5+jyD{iM<#zUOhcW2D{95|2sP=#F zK?nK?I?#b)<1VH8L%1AQsy~8Dw^DrqE+>`h9;QPIrwJc)NvX;DAr+H9%i+ni=#2XB8=T*sBx zkE8@stBIX_EXa%VNZU>-s1QmQ@-B(qCt{m?d1 zK33B!=hh+t=P3c!T$M((w%?L0T(w{eY~#oMv{A|Iz#JaWff;%?=wQ!yQO!a;#Fty=u?+DS3gO@e8iPGk$@=GahEc z_v#tH;L1JYU(LI=p7Fs!PQn%#{9M^N5b7dP{acYg#9*$pi+icUgwCJOX4AeWPDX>f zo!?cYx}9%f;YVLPY3uooE{4nRb;d+L&bOYcfnRSi%t=Acy-ydz1=9W# z)B16%pLg|c^?WMu5DJH=dW=}ayjVo4rf0j87m!gclB{4KS;78l z#TBEp#!8Wj%cr#ZyZ7~@Xr ziJPsIf2)-A;dGeh-i!TzSgC#+*FD|pT<3=r5+eg;J%*@&1OWB%!|IU6L#^Fk%;f`g zbH~eboo1yOn-y3Yl>LfQ{i@=47r6X)B*pO->}LnD$~TniHxlZ81vuUZrH8vhg*g>UB|8Tzi$)ebO++^^RYX!hue^_%ug(OQ|}@ zs}^gRHDgbQ8$JysIVE-cgtVe%%U7%}Eqkb|q}O6vjJ7`Y7Tv8eQz`Y!YHgvHS`QBN!+5gj&6i|O+iSA@gtxfdGV zY{sz{C&66=xtqW$#*u&-69zK|X3uMo_&Qvh;|LNwHUAgfU1lUD(Jl%}(giUwbO++c z=f?Mxs`r)kN0o}7D~p+vk`d<~bu6OjKO&DXs4-tw)vCpTnl*X!8<`vCcSMt}h8}gfkXl z`w!iL+jQHX5vY{6{V#jh0u|Mfrf)Y5f~e3V=p`C+FP+h*$wUMt&`WwUWCMw8#25h| ziGY77(Mh5R8hkRMjU?L3`iP0y+3d;WvB{h~d?bj8F@f~7vF(tvCd)Era_5{r9@tI# z+?*jS21H=%ud4g%2Po0m%^WUA;nwTc^RK_^|LQBD{1g)Rsi;a&3pNQkr(mpLIO3J1 zn4GCm$T=yy%_3q{s$wEn00z6^WufAgEysUAaMC_Keb}y*^Rlq6Q7AuIL4KLi87MCj zTlf|A(GzT9=p;xz!LUceAB!?HNxvbK{~rB%ODKOE{W^jEy^H?6DwMz0K}tabDil06t8^MnW<;S%IBNJtu5dfp4p*KO;I1zA004sv?D4fBjV|7RKU0QX<4;=c@ zBCQ_P#+!pos-r=j6$M3|{c7>(P-oe@Muj@-85woiaKj$ofdy(Tv>-))!cYrE+O1_8ZNw5b~Rpjm7TVD5nzE^ z3uV0UN;?5>=!?`F6F3Y;O7!g3tgU6dF!Bz>3p&!en*vBk;mi^(wsZe-$`S7U;&=N#1|(M1k?b z_!X<#x~h6LUU(6%R#fO9c;R(*DlWV$LzZ&8iukPDPKeJc>k=#K{E5%rs^y)-5T7CM zv)4s@R&JMw&(LR8#Ai5%nE33rBAOFF;?<9+4kbrnwX&ii4 zM}FzeQv;I4hcB$)8)ha1+BhNg^vq6CyGN>~ZT(C}#q);SG~i^$o6CO`Mz?F5+$S;D zHJvLM@_}V)c0KJ$jQ}BjW3l@qQh%+n-yGa>@*^Rszp{7v;g)v>qyAcB9|pIKa~%q| zj6FxdEf)pimj7c!>aU_;xMigRf0DT6*Om{1TmC};Zh6Udx0J^TdY1qEAk2kYayDTvIG-vja6aZF(J} zmo?)QIU$ar8oHQw-hp(7k&+bB`xv37Z;(sjU_L}+z7J+QNFfR*k>jn|UoFh-V=v-; z^RrxairzGrtyOZKNxwqi6zC%{nvbyQEMwi@*ksnTz5IEHO>f#$ZGqN0=V+anKoJAN z++Jr&g(@CHNf3V^CKu*xt`wK|?rqJU%0x2FVE_LxNwWW+sayE;!Xp>NhtGih|KmDu zVoM!=0qp$$1}56Z!DYr ze0(lh10UY)LIri{hK7v$fCqd2e4M1b8a5iA-z~?}<9K?A_kj}ct>E!K^p9sCC4md2 zAq`OCB_=`Lu}_}Jfeax>lqQ2zYO*J4dk~VybwX?H0TP=nf^1>VH^M-V!?0h`HhBQ&-8|9Qt@wSU+qat} z68?WM@s2e{+vO?`Q@AS%f|&ZBv`fXprv5thYmD(l)hk)|nIEt`9?I137cjJ`-|T1V zuNlGAzy116{mD>O8dHDOb(s3AG^T#%O*ZvcUAw8j7#HitnfkK=O#Plh@`WzqEgkfx z&QhFVEcbUWr3rL7>!8mK4&feyE%!?IQgwf=0LwiYWqy|XdGm?maF+WpfxMDku`JnguPSN*F>r%EttEY-SMbflZ2+q))CMudu*+VAJJq}B zJ10QGA@^=#d&N5wSS*lwJ9^SwLH;t49f#xE-#Wj0{`fqc+U0*( zl5O^G^2(7{A^i%{zWT%1nZcZSHikH-(8vtC2leUBlzgFP07+XUoALG(^PnyE_s3AR z-EQO1?-)Erq>5tct6oZjE;MK8SccSZCL$`MJgIh{7GGhG)!fxk%bFM2O-u| z!4qC%z7vfxdZ3?lhDpjTGWod1APs*cIHlwv6Q8{I4-(BV?33tFmk{$Fx65Z46CbxL z&66H!Li2&N=OlHC$*T5~ii|}KcIwbEI#nU%DJ@AA1j+L#!VDS7kT;EVoV~F*Y79uY;n=*C7{-eusauAmGk- zvVWwe4nkG;kZfk?C{!lmSF<>lHj2E-j*%quSx(5gss*%Hz}_Hi5piG^e35vjGwLyg zl>+@Sf<{r@hFoxScpwUXBvOaWI?mTYoKU1rnvfo5r)Dhc0%N8f{Vy(e0#avE0j@ZL z)Iok(;776%fYiB)d+f+aoh*L^sUt~plH%1N{wi%0x;=(XaAdOnOTOi^db$Hiw{mFl zGN!6;V3awUQXZC^@zh3bFd0b_B?+|zo-^iL9WbZ_?{xHJ7^}!&_+4UgbAMvx%+>L`cayCPg2^> zB{uL^mXa3c@J4v7e1OSG4^V4*y~$+qWO;6de>4@j0g)6o3h7tR3F!m%{JHwX^Yy5j zwAD?B!tltT&59KdG5fsxA>}61q$KH>xcX+_U#laEd7ssTW4zjt{Et6M9AQTUw?Dp! zm4bPwA60tj7gSB|oT-1xirnwMs$Ueum76Y=Pn#ST!iA)=<QGEg zcMJGL2MR=}?!iml1ErGSC5_DJ$Q4!OcNr7turmA@dXRCEzC0V#7ZwIewcT@ZXR5nbS~2xD~+mn9vj0{e%Q07OB= zs+Yk$SF^H^>XG>N6UB_sbw{dh$yRIDk>`I{j1^d@466Mp{t%j)Ic7;Tc9baJJOwX+ z{21uj3x2`4yNG|v!%fz*2qW!23;$N6(9TJje#ImeB5QO!HQ2-8b5!+ivPLVivMB97@KNcyp+!4XZ$*Cr<@r2<6m5NsF9dO`**qZQw+q{Z)6S_pe)7yhGUAV9Z zvzasusYid^<$I_uj>qW`jMM&Vc_~e}Nb&&?2i8)5jaQm-{cNalLXJV(P!;S~iZu%4 zlI64-6>*xPB0jB4bOoRy4%G59o(_$QK;Hb*!B7$R2SY_58G2eqMV!{4BAhZRV%`#( z6F*eMX*9*(3>Mr(%;5LSG@Ep2$!83* z{#*t^>7AWo`pV~fklDy?MLb1jMt(5M|(J9Uzu_^ z!&Vjq%Zxwv*FT&g{xuF~SVA1mu$E<)&M$3Ud28w9(ickJDR~wB+q*KVG^4bkB(`K) z$?Oty$rCH5l`tjR!x^?R`EZ7%Samo9y}*Cr3`_A%J)8kwp@%czPkK1RQY;X5aD8nJNhci}VH^0Lf zYrt{X!x@caouN6LvAGl&f z5_grklx{@A2eHYOm@cVSI7~9&Eg^q0HQU3~C7^3$raUf zuTb5`P7`W+g_C{U%I10w^c)L$$=bF|cDz zM=cl$?|bGZ;eDsAQJTmP@B5BFPjQ`Gcop9F%y4+$GsEG1&s+oEw<-|t`#OJ7iig4b zRt3ZRp809xeGfl&lkvWF(DSAC90u>J1iHCA#g)d&Wcrg^X|H^%5)}jKv=M`;NSPf! zI1NeN-o0~K22i7Uy?ap$f8ap#(?q_T&bA%LSqEuF?)X!EJqsgjgv`9 zTN;ZuzgN^IE`Ppp3KJ3CI%%r!!nVfzt?%WE_ik+$^L~qBSpHcX+VU@rg#AkjxV;^J zl2JIudZ!8LeT(HCL6opz>bB0?pu@^;;n?k$(1Xe7sfQQITx?Q;#K>X}wkK}G>v1Ja zl$6X6rgMvw_M&HmYfyjA(Z+Xck;BPqO45dTiPHxew8kF{Pl+cSeH$C1Y6dyfRN+Vr zq9LC?q$mE#ihq-N2FxvU>3fb#STKa-C3^dIZ&VA+4GZW?I)mAC#f*$pF^-?~6eiQe ze3jik>l+3!Go$ZlYLda`Oif|<>bS%?Oe(|hv*HqUjH};Gwt;^KI$Q%@P`RyQTrrAN zBo_Ce1bezgV@8chOvo6hW(G`6=84gpk8{3(6$n!DJW=?-6t-^n5Hu!xwi`w0 zhth3opG$tt1CHU?)LrcW2&!tg>7a^h`Kz0N=WrL_Tuhix(P+~#wLWU?1{p`SPo$R& z;@$pefbGpO$cA=2Lb18fC)+b+sG;0HB_9mKfF;o>%;JANo%ZqnJca!K99=DiCzwLQ z*hlv!c^reAs$7umAK2Aqxy!KQz4N=P(eK2A?GOIFF$@!Gml){ow0Q5~_QYp#72IXe zg)!ptgY7f`B#24QagA7>MT7jg_6Ww+VL8~|VVPyX#c}b?wH-D)zp|2$Mgnc*!FKC& z?I=7z@kM`?FG{L+lhm_OIiz>X*7gn`xhs)mU(DOy4)?&)Pg9Xs)owz~#Orq{DQXoV zSDQK`#_^2A@MtV!kk6Lwke2)3!kC^c9kbvT!2fS-c=L~M{${9MxiQvaB~-^~aeJ+8KnfsV+Yi|Dt=W{7{WnbyS&>WzXW?TAoyt57*ZsEO)~ zCF|BMx;Bpm5O-SU}+)VhX#{^^V`e!R13VLLC8U>&?J}Ob@nkep2y4)o!?eF8J(vP zwyb}nIwLrf9KzOciu2hV?{l5nh_5mELQOQvq>z|)q^9$9wNMx*teEV1fQt|crwA+J zyK6cV&0)@0(Tb2{*P42y$vnZcf{XP0+4`rwsdJ79=~0m=!VF)Zu;Nysa0VL6qA}BZ zq2*#%2dxD=|+N&I;0Gbk3e>m^P*0@a&^vfCzn)9vnei$&l5Oy7+P zu&=@0jjA2}vhHhWLej>KBx$UeF`=v9-Rjnnzfl{wpl`Llq(g3)lYDNP)%Zf^Wifx# z(9fq6_VDh3dEkhgq;T;sK)CyGxNvQ_`%t)W5>6MdR~WGS`O|A~C~)0;8y~gSR{J%2 zi^Ffvt|4yV+O#a}n zCh4S1pl`~h8;aI=xL2Mbalp@-9PK| zduFl!?yE61okM}xA1?K@PBC;{qJw?x8GFW_v1jZVd&ZuzXY3h!#-6cf>=}E;p1f*}M3ho~6=bQQQjP<*?Ci9h} zso%wUFSNMYwtSiW<-K2Kf8(8FnEFk3WKSgQQ(c5jD*?7c?wxHAtCG>bG{d%3i(zev zE|M{38pLCBX2p@u@i(IwDa^L#OvTTcw*IRr#o#j~fq}tyq3corXU;*^cc}++|ImZb7fdx($Ma1!mB(_s zE_h{{n^5E_AsKg2CLn(cC<8^?a6X(ywx{M5NabZn<#&+EOEeXltIfyF6QfaRu4n6W zT$c&u4>G7NfQnkCg>}Z?B4_`VYDgKf|2xS3OE~+!OKq;6HkXf&K_R}|nOm8>pvvb3 zvL7+q%Z>Npy;k4r;-Z$#Ex;4w9-b&DG~dpn3D-c%^Js#%r8R%z78)+djYI)tLU%OZ z-aMh%09-d54Zfp_f<2@9*!XJRKtq>Bkd~dJC$oQEbu(#qXS!)NyNNw%8mF6XrnWa9OX}_9yGg1^oerMPc-Wb=o3_)~ zrsv#y--m?2n{M}4c>?KvoO|y%=bn4+efQmW&KJKkLqI5<0+r4$CZ51P{vP)6pJE@U zcpsmC^JZbKrLjYFkI0qr8`81srhIaFdEVPIy+@K4 zW}5#Xd8KS3DV-gmyYbhgNj7VY$kC7-tP>;NsCQJ3%h6aJ5kujSOrqg%eCvKcS>qhW8#K- zvHDQ?A=Ob(EFKSx$`A<#(UVXl;1|pNVl1#PY|p6HZ_&g2&q~T;b)qX84TXW`^&&D_ zv}1qB9f}=}ZN*RoZ79(+lUvBmx}E8IFLA1o-aFncP1ZdckVOp|IG}yF4MuebZ$`!OwH5P%Y zRmvlPxfqWhCUXTI$XDf^ax5r&V=}tBvJ#MgQcVX8Vjb|wUl*|+bg2a$ib2f7->QG1 zK&UDZ3dGl=nJOv(BoYhCGK`yp;jlj(M&u(XccOeK9`%aRu}}!c3c)lv2EF7R3d-W} zSTJbS(r^sLy-^@~pPmR~c{C70vs>cOVSS9jKp}%;A@tzIIyc0edHG2tsjTFr?C9U~E5VuCXfmXNAmR&?Hcoh1P6oY3jD1>asX|7>9r1SYaiq z-tgfELRK>5M_l2DHb{Id>f=%WAQXZ%3zB!@ zcTJPKje_iSH4|4;V@oS>HE(lwv=CQgTcg{9d7Un(rLno$)k|EhjoUl=FtM+xqa6xt z@7+aQuAS~)NZbii31;!1KA2CSsb2Qu>2K_S)K+(gi?}-355V+6@xGmXO;}AU$ECL$ zQ0eVho`aA)z{V4(dD5vbTqfqCR;tt zv=vupH#XGK)zu9(Z*z5Y5DS}U*<6AngQ-IlC0Wy?(8n}85c121K$C)CI*28^=z1K5 zBB5g#YZ4vhu?hk+JgF`Z6G*_>UR519R7Vf1s?~2bribJEVXo4%h63?_QEz0BcITjP zKd4q1@f#69+)CR8wa-J5aEylLDO7WdLLktnpEQ+$YZQcF`Z!0$QQ0>ZrB&yu82F_& z;f+EF*Daf2*%BGMbu&g2h1R_M{CrcMuzk0CV{NtO^DtD6mv)Xc-LAaoSN?FXQu~l{ zs#E#PP9@Z+Y?77Fx|F(qZso?X@{CvU_>`+2Ki-#0{mr_9r6;Y{D zJj#&r;7i&>M$n=uTu=QqU_0)O1VU7y!E6l+f_?BSvQz*mw235t@6M8y0;xExEbwPM zID6t5{2Yf+6FKoC{P6Iz_~GFnvO?raRM{6({yeOldsKNfM#)-}^K>xW zs2s&_GZDzArZu;JnVtvP_=oueL|8Lv&V!$_NdaQ{j>&vXTt8{XpBk1|J82dKBGgk5 zp=A=piwNy3)-?%PMCh9|W8xl`=$%AdgyBg6Y7>G`0IH5d3_y;s0^goALleSr*1|~^ zI}Nqu5#c+m_>&Zu{O{9p`9EZ_XE7!S=U8Rup#VVsEyMbMA}jX>i~T+Od54km5&QXP zR^TeD^H-As+}a4grU(jOG9>a66w;bNJWCR{C2Wa%66J|?iK@hw!~==uggeol*pV1W z$cbPgo;Z>?mY7T=6K4`nCH^AuRjIXAsdey!?`TNufPdMB z6uz)qm>$1bP2XEktp(ZMUArOW^xK`MCI4xFlB`(4*_uT1Y|SM6KbEW)YfdJmyHaIR z3J)hrDSTC4N=2GO0dc-uYQ{2&Bo+1cwS$e_)JwBmH@a!ga-e1U4LksM`U5o^nbW&wLn z&e;d2t{s?ZpUl9%?EcgMT4uJAR}P#FTnM}y_?N)H2bLeW@4&!;69;~BpqQ+^KV?T> z-QRNI@y(wdC^luMsB!A4+z@}SkC!0$VmH2j7O&=9?4^f9IV`@=U2LK-7-h$F2X5wu zGrz`Q2JHRsGqX@SoNZ78Be}q89%f**Dj0?Fq#vEtfp-F2$u{bCyhKH}cNZSvH`~Z% zvl%*ivoxu7^klN`v1D7_Wb$Rvit_R)bhfSFvS7Y+B!J&|2AIl`lsV%KSzPP3Cqmv+elE6floB9w}fQU0QPEraj))aGjGBbI?S_>WJ(neOvojg}y zxh!_|KUs{O_@$20Rl{XK))VMxe*FfAP&sSk?-ZAPlB#5f;Z3KKYd2xL*G%`2%jKmb zv<@Ty=ztJA`B_wVBDqz}zr3B;1nES75|4Dl-{NlW;m%g_8EMzg$1ZW*{i&e-+15cT@Av1kc z*gl|}mH7U-R7hspH>E7-mB)fxqK^C$Vz%X#5EB|l=8c(HWA#U+H%APn5bEB4JNZg& z!P)dnW)XKoH&NR~CHK%>@>9uDqj4Q(q!0~86r)w;mmESRv1!}v*JlxzwDbC@wDU$1 z?UqQzs-1BJzK>a`GTozEaPMq+ZD!AVCsz@Z*4hO$YOz#B5zskk1atS4d=kyfbfp!qU?YDEahwvS6IiDhQb?PsW^RWzW9ZV4)`Nw=Swcw!t+ z?V-I}YTlmu?;%>dA!+ZWo^faf99?eZEWg;gNhfA&60L7?)lo~w=sc5O#qJ<=l5|tNM8yxyjGTE$im8b6ldd|du)nkrYCZ5ct$TZ8y zaMHn^NMd(Pb8~krhgMr+5S<3QQ?M=1lqKP-$dZ8t_`nURK+{4z4UG*!3NO4Ov+%7R ziw$P7Wa8>84x<`t$kZQbS4Q)Ca);VsIJOrW1`D;nj<#Q_4RC5hkDZX7_`x`yrq59q z>a_{$Rg+^4l;ned3iUxoIW=oqT0<as}#wVvHvFz3o4*1>7t2Wz2445IXI@dICX=vNr zDZB3dlRKc)Piv8-OWLVO&?U_hIwhB#E@kryYD&;bQ@?zOTIJT6n-8Vf#BQ`$sWVx3 zq+-(vnT8;LlZz{_R$n%%04z8S!{b7hYT&99au!k|s=gJB9$QL^KtED%0w$Qyu*Lp` z09vmY%A*-mK4wwFs?Z*UVDlt{po@TF)0~lj8g(lup8IvzS6DCL7}(1YwWt#fa0Ei7 z{ix-ma|bJQR2y{E%e15X9dkN~PV@qE!GLT)j^|f@762$6hXtBE9I4rYCkQAYWe684 zMVi2Y2eH^(l+$-OA?!y%yvxJy}8LHg@ep&hAF)uGN` zc3200txmn$k#k|l+A_1YT>5~^YKt9GTB45_i@~$emE2@dgRG{kiq!V1i*+O?&ePLM zlO8G?8Enh&5@yt)lOAsM_yHX&rd-g*E~KHjfaJH%og6fw3n02MqAO%z4e zJ^I!m$7(%MZM=xCV=NgfXV#2H!od4%j(ZJ%leloM;vNTqeqG2)uR&kf8!iA9S283# z3s-%*wq`Gt{x`gRqbrlQ)ETgWoo{q;b~foeGV)|eZk{Ze%M;uEI;RXBV#(bh7GsAP z*-2NIxj9IuR;JkO4Vir8C?7s&Sne3tSw)P0|2}YYSrv&)v=e7kAScC@Wj{vc~mk@rq1ktOHQO4Qpg0Lb}H|=8bPdDyQLRx^E0SLR%+@s8l0QZ7)>R*v+B=A5+e z1Sz)Na@zRNpvvoWN;FmF1?)arAH3Q`l2Iq$o?5Nn1NNv9%6fFpb+yp3RZYx)>>wlL z0-dC{sGs$#`@ld)t4_x$q}8~2j=I0Hjc>ij;|Z2B2;~RwY%sXGZ{DD%9`QE`dq4Gp>n6|0`(%0Kdud2ERAH_{!TY87f@~LySTxBkcw+IbtmTV zIq|pcK7GEX3UDdZjki&J!IL#F=ty5m^s9SNx@+FG_LO!vHg)$-dbi0mE%Okz;@s4d zopf;1RE<9In?_K&ql0=^+tHcF%P%JeBl^x1uZHgBAT>^t-ASZdE$XwpZ(i!zp$(>w z4eF(P7Z(a@+}!l#Y3@;fAbafvaK?4n#VxzCZfchTh=HYQ_d9z3&u>+28?zFim{C1# zGU}4GY{oj8bH=&{hRK>a3$q+|{2v=`Bp=v4mt)A`Y>ok()(_NXbzm>wS)JOrTNeit z-(wdHNelF?4yCUf=I0q#7urHW$P&~XnpPDK)U@5XWkY*6M8BthGb|?P>P?%8a_iF! zhCa9FHxt3<_T-SSsXy9-o1XImQua1b_G(EBvUkBdaJ<1QnL~9Bv@Tlq7;g3ru6*VS zSK4{wO4@ldm3Cey>51z%m%a1UBhnp&xs`+E!u2TbB08_xosZa^#}GoO{yph#6#z57 z0U5U23~8USG)bC&lX5T7!(TIm*BZh_=%s4l`YO_UH<3;}S$d6bFW53tpJA!Hx?xCt z{}EhL58O!i$xa!R??$a)-Rz21r$xU=m`^sLn6x_^~f+>DWOdm^_&H61YAk9h{ z_odM9@&|+H;&bZfgUmA(-JGVk1x~Zwxx%*07$sCpjQ7k`lh#|S?|?qs~vvJP|z{?K@m|p~*ZJN&XoiG=IRUnzjJf&%| z9NF`K2_oGO`HpWPN#uTu?x4eq5~y!S{SSLj8XQ%X?!DceJ$BL|BsZv`Z^w})ZlMir z(gR(rVTlAp4JsCkqhVNNaYBWNX$iz-q{jj4IT(1%)6rp^SIQvL9qWywCT%DUX5NT} z%#2)>s_E1?a8>pM(%tX-&T^MdvrN_edGA4g0k`it-#O>I=X~dU%lXcC@G#rU4<+Sj z1iJGfLZHt*bVUSOluV$*kR>~aLFIB3imLQ5N~H!09i!CP)9?@+j9Y5tC6i_8#UDuy z0~NERWHN?zT{qg`@`E)}BAz>xi05CHi1qrkd$P^6*91hY!5A03p;UY&b(wktFe6ld z{7XW`sjN(KN;g$$azc=&up=OrV0Wzyd9v@04f8ZvXY?EC{*{ML$RZ$2tB(e*)?bU+zijut+#VUT z)Lx`c$M+rWzMc3E_zM75!N6W=_q~eA&@cGu^2ZJ8eI?&W+ogR{xAd8RlrA|Xk2C?t z-7%xR{NZ+AgVts-Z8MiQ3i-?0eJe<##n33cFKPEJ#rIretC0R^yKfbyQ!f=D$-1tg za<|zBJGmyMWT%vl6PszG%=09jv@VTPTZB0m`5NzWT4H7 zyR^jaLw@m;=h=|wry(4FK#Mkj@OPW%X-w>kL84lf-S@s)oqa)mIusb+^YXIsZqInP zkNoP{1^@QLzZJ{n&7pu-=;+$E9N@g7@0n0uRl4ulP-NTkZSW7O$?513mV2HHRr;O_ z^}f2CKorMT+F}i9EshOBhdQ^);(yZf6c&jsaK!2hKq`V%L+0CmG#4wAX5jzwQ=#4G z>z40+uR?4J^gZdGy8HZ>%K(AO$cp8(88tH}Y1x4?V^8)k^IJVX3;FXr&xg_{Frq4rq777M32ZTbI@ z@%0QbFnmx(88ih^+B>glzdFoe@AU=?{FKrnG;n)dNXH5reh%{OXC#pps09b z0>7LXC5ql}q>8dqXYb$G`)F!yL4E{f_{FBuC%vaoYjpX4!WXIJ;M*&PRN!xur>{qu zJM+zb&Utc%5EUP3fFuK&@VapG(_aOW4ny?XDf{=cnzi|Hhw@$2@7wst;mX*7B4evOubxUC)MhM_ z#FfVq-G@XgGpVBt+qt=fscWBh8jv&GMvroJff-4!ARXb5L$4k-Le`k2@72;DX}Q`- zGy^ApL?->I-Ka`$6T}?b(nZEpdN(Ib25&sSyeAk{YdeGKLU(yrFj~GJUw@CU@-JGW zc1t%9`i+l~NTznYH5`Ci_LYAa4DIVGTwUH7q&I+4JvA7heJdP7c@%9V8PP~J)|DA(>S>xLu z^t>DNXYy~DUDD$DLl79N;r+d!UoyVGAN0K&oYt+@{vqglFF4Kje(<&}TRXRSJ_!1M zMbDNH{g5&2j&`z?{8x}nSp7oM{L&_l5Z*4?w zqF|vtgPOTkkyBtk1Zr(hFbn3uWvW!X1A-D5h&wBscsFQNsT)WaXboAUikhQ=Elo=0 zfbd?rolO;%vP!8{$Gn=gLZ=gdG?Hg(MDj|4Z%e4dZISxro}k}S_HdikUcLYK|L6U` z)clt7&sSnt3qa#YgykYb9pWdQ+V1DUZ`Sec&pMQnGEA-(E}OruYKE8Cy$ z*4#C^#c^S+?qlLi42E_{o}o8>OfE#Z3xgZZCJ$B_aXUq8|#4b`)r1#RlErRe$5q?pL2TlGz!RWA{fam46*RqF+`Nf@Dv_SJM-2+SOBab>qd!5_4MZ-& zvIb5sZiU`$(R-KGw>?FD=sKqj%CF4D$T@TNp~7tV(C?@D^Iw0Z7XnR+wC=_QS9i6)KS!AYh8ck3vB?4DqhN_pyoI@N(L zg6c`B?q!EG0E!rnI4UFtohB;&8oHp#&;-zxRr@vn?*ovti6uGFhK8Q3Tp+)T;946ebFH|UV# zN|TCp1Wqd9Q_dn|znoMWPr+Jjk;*xC?j=g#v=Tml;~AEog^}=q^q|6( zrVO7Cq~_GySdr7%iBRbkxuz>%diq*R_) z0_Wq`K>xWJ3YQwTh%)u!^iie+zE#5Cxs&Lme2fjoGM%nQbhO>qVu+NJO8qGVcg$ck zK?jtAoL1`3qyWLJ3rhVU&r((%R~l40=T0Vna4~1wQ|u-~e^&2o?tE8ZkO@d;OJ4%W zR@~#xgwDWa-~zOAR%trN78o*YB)Y*&yV%V}ku#vZ^QiQIl!z;gH3Co|l+>M8YR+6l z(jcoimp9VUdw1SUXtG~v8W5d=Mj#c9{8R`#s<2Ux&&FxC&ppZL^pBIpE~F4PeoZNV zDT&2?g{(vxuT=Kqw+;Za*q^U74OWot*F7^*)MSmkIzy>Ei{R%lFoR%>&oflAT&zo$ z(}>%83d!(h@yZpsD3=2p-Ff9q&&0yxz)IJcY25jN`}H9g6=bmpk$|y(6F;q zD>`r&DT= z9T<$edq&?$$J*7pnOM~Dw_~PILSe94SdIF}Dc*rFk-hqrngJqa0L+z)crly2y3ke`)6nl3=&%Eg3c+#NoFM0ZxHKW8F37y~i^y<5w?i|EfX zW3+%Y-Uh`C{q9QGl2KBRzSWQEXrS&}F^TJEgt1G95kXdaX(!J0g~K9Qq%Z+<4x={9)}9#{^npxL-gBsn`qW-1GQ)q~sdoQt~->Bz_iG)Ll_kK}qND>4PyLw+N zwr6NVas7jAzn7iGF-j%4Zl{#f0F@Cu=9kWruyeeE)HF1(3-mdNoN*^v&5pC>66DZp z=~|gXqx&$o9OMKR>8~7r9t1s2Ct=Z$sOFiBfMJccYeMe?UFaQa9=@pA!6I<)M*iC}1Y+TuRso`0!nLO-u^Lr13>-WX@gU1cB(- zge~B5v3VueBeeiO8}tK^c69Zvv*ALJk3Z+w$QdF~wna@o-#tNpi-r{CGxTlU;PBEc zA~!?(!_6W+t{AW!nAw&ws?s3l;TrIOu5mDH!fN?V8}aWZE>N0IXRoK;^i}%#e5xyr zA_si%eCxyrIT4*Dmy$W3 ze)mOGUy=H9liPfM*kZqGCEF*WJa*QUORC(+JCKK2q{sCU!?o2SO{0wT3X7NM#kB)a zn2YDhDTn_Ume}?B5=)20TV3Y;BS;mD;<#d-qDvelLW!YE=G+5nuCYt_#?Ym^gdAZ= z9R&tgVm_CvBt6gtv48M%Yh>mUeuC9yEl{Hd)ugQMGKWRw+UYWIJ4>`+X+PS+-K`N3z zY3MV9nFdc<4t@giU?=x@D0NTNCnJ1_EM^K?yiB_IXxVs87;t$IpEJ4mjNTFNPzg#u zVy_)z{iKtB9b-jjNOFtR&88F7?(5C5qqs4_mK?BhPyn3Y1e|RsM;5xTXBL9K4em4; zP-!@z;$+7xr6WdscH`n%q8k95ufGMYrZE34f(#mIRpjk9@98;GPmXv$Mid-Vf16aB zvDv^7XOTYjCPe60l%8$@p&@FLBu48ek2UhB!8P%JsB~ZmH#JjH{XH6kJDbQC=0f_5rOqs{G+XEEec`O2rcTb2OK6Ts%;$ zenK37Rs=t>^^Cw^YedD~DCgd7=Dri|9}-nY$2>Beo+13a0Npl(CQZlbx1g7tD2Tdh zamz&zCl{YeU_*Z${s5t4 zoNt<;!AQqkIfp*4Ij?Cy>-!R`9`6&DP@RW=)36aox0Fo1WUbvNts=O){T5|+zY-pB zYTE=Uzhu}DfewcRH7DMv7H}4aF{wQqKy)|^e4fernCbhGy!*|;ATP3mjedb;+Tdl}w8N3uFH z1QIUhZ5Y74P0}Pi(l9ll*P%0rGY4URK&=jyNKO*M*#I$zKx7dJD?lI`83YYs31tV4 zZHM_jTr-Irq#e^fCT}||+5~kEs_z&%Xhg~!8|0J@&Cyp1JW;K7lg%hBzuTqPG!imD$4uydi!TL~ z>v;vRfaFM@F>@>;WE6n3&`Hb$f%A@i3lYd+?mL*OI=YQh5-c*JO-RWp$wE730d!!L zuR~1Mpemgq6fMSxx(?%VVKprHf>%hn(2O$#w%9+02FFb|2o^jF*>BXjRl}J=iW_oy zWTt_>;?}KpTGWo_J!sZt)`VAoCK~;YN30q)Vu@qxBB+m_I$+|MV``geZ_?yYw)$|T z4AW5?lbHszv9d|d(ON*54vfzOzkymR$)0Wd=BUVX+-euk_c2CvIfc|;0VYG`wOscttf+EV0rJ4zUwqT(d^>{+u zE;vTnxcneKQ0OR%@HgmzEIg_0T65Sn%7)uuA3cQjku`_CRv1RLcFo}|wf1!y;i4+!c-D1b;n`tWDwLMT7`15Ur53p zLK=>Z0L!&64By-KATz<_I9}7R6Gfg)tO~BGFwC_a$L}JF$KAX0A=(xwG zc_lbd(Q9>VLXO~COD%V;u4JV*>_2;>F_?Cu~mtq7vF5FnyRvJiO)nlKYcm^nitA{dmXK!#D-b7t6a z-C1?n-C;#VkP&$}3UlVT?mz~eRq-6%gDq;Qh>1XG1z+P3lHTu8Rkv=Z!QK6L(|;u0 zb?erJVRmy@0800!jsQ!X*cS+8!=re%GZ6l{vWxC^!f5;r z6F*t?i$owf=@+KkDAZy6oyMS1*(--g(+6_Y6#iNsczM)F*CoR%R0qg$VY?CNq|b9eVMGRhE?xA%jy=#hLbp%3Ep~O0 zi4~$l%FYf?mE47}HMsf3h4WqaOdpX3CaaP~Syp>4`~t;7j-QH{|Q+kxiF{ABG8 zTaC5Y92qo!$2KG?NZ`ozw!4nU?TmAFs9dkw)+_R%CE8$gt)9nkcsu93F(%H#nCRp& zp=^wo^4HzC1YU(A=`tmfoPe3MczkRlC?o3-V3mcIzQ;CZ z9DAd*4b-DiVj4K?{LWtQ5IYE6>)nGZZZv#FpT@_3{i=}aF_{K(Hh2qsR%>yG(4Z5! zH^K8WG@xv_y+7J3_!}EEFY3fUuE0)gPN=W36^YWwibVP7=UxcS!oFIOz_GnKfn$Di z0_!%8(EXbev_?hL57%9$j}Hl|Hz%OS2i$>4!poOgxsZnQhZv2YT$mlPRglrD1T^HB zYp_&*p%F23*oSO~s2(KuefH!>L1C-ezgq`O%z%z~wH=GuL!m&+H)6tBpy{D?UA9@- z#>D<;4m8uNx9StyLF{-eedy2qvc%?XqyG9sXK0KX&@D;9?(hPyJH@*FAqp0W#`mDnR>diIV zD(@@Zwg+^rEsY+K;(WUVQiXI!yJLs;j^RPwh7IqA=&a=cdPAirL}w4}Sr+!w-aXNw zGH+d$H6!cq8(Gu*6e#mgO0p7|>1wXF9B)XMq!}mAO?vVuMtODhsx0m;RyDPQgq;Yb_({2uK!3nwmg^wGIv?%astA6AiyUtA>+1(ObST@0i ztz91EDq%YzT=<}QR{dDcuEBI9kPmAc?*I^UJa8ch$o&oF_haUF{e=EU9#4FKh41c9 z&IUK$SH;=b)b1%w05>8@4W_cDU57SAe72yHT_c~Xs?G`7A0#RPlUJL$tiBy zcpTPxf_{C~9(f`W%(psYPb4~*6m>TAhxDUao$oqIk#pPo<8r{~l2>G|}3e0n}TpPo<8 zr{~l2>G|}0dOkg$|8Jl0P-W5`hG#Uts^hboUiH#}V;K7z#>Uz5cB8R)@{=zqp5V1b zH%c_|wdh5}kzDA$ZMC{L$RI4jaQ$ z#L_?%7>M5^vKozei1wDg?K*>h?fPf-MoTh1*z(NY&>a^;(TjN38zP=M;Ctzydn^?9 zy3o6a_yw+iPpLe-&(TLgFDZ9Z>V5)8j7-3&F9*z zO3~cWmV}+!(p2oZ0Y_YbRAt<+C*JJz!n(5W#jDq(QNoTVL~Vy zW=fkKEy7Eg&!1q+c-j_gd>^2ZHOO`@iWDkh|q36bIJ|( zR|(gBC#wHyxD{XL;tCmhGNiyqP!o)2LQN={ER`R+Yj)9peTGn{15YIH0|Ak3ASYK^QF zKcG4>P_vg#LY{W<)j1H@so^py=?QxxrSQk`&r>4)MJl6YIw6*wq;Yazg{V6rs!tjy zCocy=bp`r=mlNk_vUZ%A#woF^9U8P))SVL5?OKEcAxb|FrFCr&4{Cq%_b#zoNB-laVW ziwkUBNdm?}3w&ul>raWekO|nZNz9V)Ms1Qfb zV4uPix&sO)ZK_^0ceeFGnKI+PZy&BiM-w%a+!o4Kp6|`*(H(V1o54`QZEz}8U>)MM zFl|VGAw`24bE5f_*w+q%mB)ZWW;S(WT1XpgO@E_C+E_gR=sJ!YHqZ#b#ZC@3v;SvO z{}U^ObW#bd-V-WyLz`dm!)oxRTn&N~Hz;Tjjtp5M@5rF?7kG#E1;&dpLb_6AF}tf+ zF9%X^<7v4R)Z1$%qlL-SQ-f>43(?{Ha$jD50tai9s8c9IbRWYQ@jYkfF3|$MH9Xmt z;^~+aOE5^3lYneaiRqI$=OcysNYak3n`%JYJW?npJcuUdf1yu6mKFA7%A-74dxL%W z)ndyESpBB%p7Q#XkEg);YsgA;2+*?fR`;2tYk#!Z8SjGk&^ZS|QHMb2AINQohG7nW z>GX8eQhxgs(|-Z#<5CK!F1eU$M$O-tsrE<|GayYnBH9?|jSH~GC@pTMbcQpqm616T za&`oIaLiQp7cZ55bZ4a>U1W!Cde$*BX)2`^Fhkm~+5pm~e$}^UYEa!_ha6lfp$2Oe zC@N?M%!mH$%L-?ngs?*8o8fI7qbRF?JgS67q8!!rRqJgrF0S(CB2cg@Gwj-Lj?Xwl7*jh0-EWOOoxklufrm11y^fe^coEA-%yP)9u(Tc4VfV zvDY<_aMEt%B3{|4G4I@!)Vw%b*F90QcFXh80?7a)3#Vgq*Am!b5|jfefs>PeX4+n8 z#bDnN7behckrqUg@mcVP*dB!ZZ*BMkLa#2j?BBCKR1E~u7R5tIe zFKymagHpi>xjDLI1BIv*=7@@1L;|?GjX`|(VS0BV!zU^PAe5CxE zstL&FiBGdE@AJdEiu?8J*KWFh3z4T&Ab{|C&2^$4(r$q6UNA|@%m`UVg#1hqa*PNC znIiNyA{1tdkZ(kYWG-YYHLHr$*JM+ZF4y@Gr>_xbK=(M>^LVgDO2f~?SFhkP4XvPhzql)hZsWm@4`r=S%&Q_P<7khumlfnz}8Bn5%MjVnC;*Rhb9EGv{)h zs1{?y^bS#RKCPeW(IByZq(d~EZ{@C&H;*dE{fl=~4p+$eX}Y|ICxlFLrlzl4e(%Z^ zGxQZ2?3&2t!SJ6eVIGU2{(nH1Z_k!{ zNlM5iacj@8r-ZnchNsg*yTAyVz!h{^Y(1Tm!tV~&^j{4!=4izn8uic z2we6&9|vkY;)uRO`^aCNKRBZ~uTUg?pB!}AbvPi0ac9na7_#{jrNDsJH1JgeGl0A0 zYU&Ixn_$m4#3|~3sw-qmC|5=EJDa%k(>EHP-Zod$^E8|0-KI=-IQz8Si{vnd1Oj@` z#Io695rCvAsg!bgRx^}X?NHl?g_rbsnN?v%Om# z(cGKN6nO~doVfGF&>E&6YYkU#$h^~zMkHBUc+Q3k?!|8uWOM&kC^Q+EKy`ZAu@BW^lshjw^>nlmbrteR{eBGrWoE8kx@{{Y>* zOALFI66WyW9C2+I6?Bm<<+PiPw`IyAa(?E73>H!fZfe5I_)-XF?~A@AgR z90!+cwnehG^2&qVaieV7(9RUbRyEVYNEVAZcBt1=EFP4<(2Y( zDS9s&iZqP!SO~&n9N_qM_dnK`TmMocvrzp-497S_sVp$4>Ft?B`8L%Q44LJ?FgG}Z zMM+(V68AZMS)-((o5geaV*F8bjr6p+njm3G8kG#BlOMISd=5OsO&u$q&A$hIgqBF> zKR5=Rc?2|{0k31Eny6YxgDMx5It4j@-moFiRBC7x=ejXQ5DTGNEd~=~9I*)=JUEY| z9)7j>yHt+#=)Au39-Y@Uw|(y8a}UjZe(t+-A%1}3OK^6}mU$2ql|i7%b?)P!-ZE$a z1hsHbFBwGW9S-uzpkWYX8$k%LrSd@-@~8QBC4wLP(mnXgfuNTX!P*Vppg$#lg7roa zzW7EWcq;A1_Y%P$yRl;TC-_pR$R`OD(w`=v5MyMyc0suk&Ind|ann*Mtz5rNa0^Fv zCXAZx!03vljZ{ZtES2)9D-t1k_&B>`#^#zZOZR9nZWw>k=seJxlFeimiUK|)cRKyO zXtKvx^EQhh>5hVL9FVtItK%JiI!~qX$v2tv-OD9-r&qc$%SCs4N#PVv?g#bm4)>hr z#PR%<+SK)WJx!Z)w97r;B%ysonE(poVmt~z<|fmTesI}Oza39;iq0Ym>d+@&oS+X+ zlT?BRIbEtW9z+F>l>cn0$g%!?Zh)1pes{P*xKF$sa4Pe$0|lIa?{;!^KGn@Q zdA&6MJ-l2?6AbCs&kZBabiFsY*VOupEcv?JVMj;9?xqz>%E(x`t+uUJw5Jym9*uCa zdcVyESTb#46zk`Fb5y=6AHmLkfJpYSHk#bW+L0gODAM3h`P|@ELC=Kfl^Rx;8&TgN zh*kmUgZt+j#)2#_&yCN2pKc$@VK)b7?M1QjGd1M$dY4AS00o9Zgx^2(T)Xgy7!^Ub!udqrJfxO`k`I0 za1__ahYllS^5nWemPa1er{;Nix{e!0*89VI@9^4FP4IVrjzpy(4|<&1)-v{$^YEugI)4pumj~aY1-ZCEoFiv^E;l+U1FVXs9&&X!Os@_YQez; ze_n8ZLsP?whBp^H-SEeTcN%D7(vjJ@29qwr43kSN{-UB48G+aYbg7*TlkE=88kugl z{H3AgG`@s?uik=x<)OH2NzEYiWrMGuh384Mgvi}V*HFuM`e#xMAdAFlX=a2O;oxs8 z98{iLqPpuIB-iqdy0m_Pr4;0=a6rJ=I(&J_npbRR0N?f4k4V~vw?mfrU_5bEP%0~- zz_FROtac$OtIjIUH6JRVDqDcnyT!)8Gi~QK2fcWIScxP{Ic){|)FfxmvYoPI)w4F@ z&CiLZ4(Pzq&*Ig+Ly}cHJ)t`>w7~6hmy7nDlsur%Xj6SxEIX=L-cBtRb?=Jmqv@xU z(f+igzbh(^f(V^bi3e=11?uQx^Qr0G70L8q3)x3U$X8KwkXe#K4qH?%rVi%aE|ROg zD;kb}b|aF1Pb_;M?FIk2jqR5M!=+(n{2ESK>_xW_{vwvVCmP;YV0H9BnRYXsHTa$7 z<$n0zp!0Bv1>0SAPu!`8qt@6~{?k|0%{`x>-`{ zbG=(DGgaDJ<%X|xDM*Yjr~Kh z>?2giWHCkEhobr;DAK?4BDwryvFsS?uAhkN<7zW4l_X@OJ;e18bsvlBWBN5-t_@v( z3bm{PZ^r1+gw)C8Sn#1}_=vXJXxzYSlj}Ye)vcQR)bc@I>vbTjd-B$YX%w9-j#>zz zVYQVVjM84h%K>H}ncoPT#owNW)l58;Tp4!o=VSEq-;yhxXR)gEf~;y7HV4x`6crzl z-{w1_I-#}Y^X3z3HGM{k!FhSIQB-`LQl!pCf71+ltb~?|_zBo^om{W(eqcgfvIgJ+ zJ%MWx5KB*prjvPx6cZzpd#dZD!s9KneH>eUfHW+=Gr@V@INeZI5Q|K@MnB-3#4~84 zS8~)ZGNX}u750=QZ{tpa(OM^_pAi*jT|3o@ELaQ)%-P$!X=+WcT3;IwpRjTWgF^|pE(C;=MPD!@kV>9c5P)-YNnWeN>sEb zYwJ+m-L;Hlymtzxk8`%1L<`eLOt(((f7D8E1<$1x&L`=j5BL@DJaVMWyRB66ySv*! zmd??IY**mZ1h{-d>1p8@d2XrPC*tKpe=gn4LrXQa8aXH)g1QZ`V5^2Zf{!+q;F0ar|7P!5 zgQKd_ytmVxcS2skZBV#3k=RK_h^Y`m7FwP`MP4d042Yl@2E`CUn3i>HV~Ihrad34W z)>cjVmMvE zdvtm_?{wO}&+75Sg&)0?p0+)dMbG0LHqJ$D>P+M6kZ^he0Rep+wImjy(irjvN9?9k)&9*B@!%iOty$q#=)}0 ze6S$*cRvD4H))}F9bF?8(D{nWX;JOBkf0XFA`RrS=6*hvr>VAl! z>vwiPOMK2Yx*np1(~QDxhw7gKi*t1$28(|0P&L&#oZ$%=^X}hvFyQbcQ_Y6hd;Bo5 z?B$dEd4`&6tvky@7x~UqoMhP}a?q(R#;|q#_@;Fu?9vJIKTBhfq->Hx`4AG0G$*YI=PlgFhL9yNwyU!v=qS* zb>?l4aVQ9=43X9_bP(E@QRRYueCTr@GgOPq51)(aauuZ4OI7pnC}9NFQA#tDIq{y? zra^yas!{h*?*TE64@0Q_snH;`db9|YeP4u>M&50yf9hmAD`sV8*o$6oAi=I8rYy0+ z&z6%UL+xUd1on(N9&7bv;VRth-dnBXOLfO`qv&E3wLE*SWmZZ?Bod?Qq~&fnmfrZg z@pt3z#@~&<|JQ%QDr6j~hy;xs6#luEqc~5g=5mGisVjhdxv2&xDsng+zPA7qxa0)HCW}jNXwncM9wqTctRy*A*lY^_9D`8@=FX&f=Sf|zQSf2P0_9qfPceH#TlE+{k%dve5Rx_KTj zsRm{v5tCx)SAPht`Vd-0n?V)X=(fhtgtxEDaWSsoU=;ln8`p~_zz#1~OsAF=Lx&ARPYNt)Sod)iuIh%`2)re>p| ze|>P;ca8W4Tfjq&7OCiyiT@gD9Xzye9;xW3cnmN+`bo_I;PEsvQ9r33fL8tl+br(x z#rCl~(%h%cq?G6POA4xsTLXAda)mTpB};}#br^FWG0;4-d+ilcbCqS^CjNfFx}PfF zfb~EycOLQgeIpZJU(hj+AqlqIxcB2we}2q(2RCJc;kk$j*JC}4nbsedfs1$3p}AX! z-s1VOqZyZus2md!MFV08On2Gu5V4#S) zv^p>Zx=jk%B#cXYL_Bud9&Zqj9admoN8>_tc<<15nMm|N!u$T7Xl4kmnh(~yf4g-m zsHljt7^ShiLJy6T;NY4n_$vc$>()5t9CDTNOhUx(I9Mt;u9RmypKO#Y6!`{iiKY35 zjAZ1FH3f}n6`h`;y5u*Slmz+BCc^+2{c5b(12->$8dc zWon$4qTyKGyHH(AlRfW}VLuABf5@=uGF&a}<;b;oTwr0FAh*S>Mfhk{V0CT)=Zpe} zX8-UaDfWe7!4;i5%HqL=CY8$VYy+S74&t2^2XD+46K^XB(*&&~6+;2JHDIR3n1e|G zSsGt|_+V*1$U?T0Y+@uJ=aK}@xHO27v~}pv0ddMwf62nO+j>A^7H0kGp0G4`!a_?zLVNq{SrD}UY6?wtgv>(% z?|o%|4uE^yJr-v3$TGD3mMwVvxKn#>5mb4oDK<+B1KJS{bY)zi(&&L=grolq{Nn#zYm zxnHRc%dE&MvxsUfQmPb$9jwTUxuVDh$yy{sk+>5bqs3{4@exj0!jtqjryz3Gv?9fFBrdT+p67Zc?S{c%aSWY%w39p{qE-V$!vQ z-N5l{rE$arCqN~TC{h^<6;d^Lj&q{*pb5_)C2e&c%qgu#fA!IF)_Nh3>R2=vlFaYa z9$YM3%h^N8{t#yhc67WFOi18LRSkY8+XhMf5b*kb-Q@KWgV*_c%IEv_VfcJ9orq*Q z5lO)06iPIc%PHJx4EHhv?j^$cqic@)>9T$L@bAac_sx1s*}FPRL*_}PP5U`GM=Frc z=h>x(2Wg36e`DxS?$w(0^6HLk;RMLR`rAJ&O>Uv^w0(NHtx!Crb0op0LZzNNSz}(lS$) z@-%g(gGGYTwJbH5b}9fXLHpcWRpcxS=$I*~r7RLSf8E{@+EKPg4?9cm=xSS@C}oAa z{d`OCb{vUl`xk*@z(rj}N{Md^^>P1L-uzS$j16H}^wsb8*oO)vYUUc6uL>RHxH zud3eAf4j@uX?JhkcRDtU8e~q_?wc+j8BTaNh+De7f=>HD&`^$t17LE(4Zy1czR%adI7HU;?Atj?ApUvj7So{mJvQu-EZp3)AV zU1m*guX;uAzVIHUM%6z3*qvps>R#y=W&fh@f7+$((OW6(A%8;Iujv0yiuaH|u{)vc zb=?~&`?X%xtPeH0%3i~#=|jg7{hs7c(>*y}Rmlvedy>5xeO9A7y!j_)cPE_K(i!@s zqv}FK-HS@`? zf9IE4LLsdJf_Ue6?fC9(|kjmR%ChfUaCGBZb2QIev zc3zaKJT@+7#Gfxl563D8xKbNa`> zUtZvEJ2Jf!cn=7i)aNXFML+R)=i`MCpz-3*ltE^bjOn;K(B>GIL(^Wej*O~eC-{aJ zRiP#GKi`4oO>{Ce}vOT zWx=8rSghtv`Vp<=2v|%`QpFWBn_>B}!8(@-EL;FDiC}~iP$)X@XF0M5l|7S+3?QlE z$_UmF-QZ2p4Gxc2r?Cwq4_&65Uv!%j%{xU6@i4SeMBd|undB~J8+@DjCBSx5_9})G zSW!j%28ToV@ig;eVTSUY6?f5~%072n65O{!PBwF>0samv{$siBroC=M=w9*oH@3&q z<d<^(%c*n=cIG+boSbjo!j z76QxlbY`H=3qcUM$eqG6E~SUmrjwcs7F*1li3$tzW7i}Znw+lPWPWWm!3JYh22CCY zn&}hXLVV|luZRAeA-*q|c`K zN$eN0prPGpNLXa^+TPgAH5jU)jESlO?H3QLzEVd)IVnE_mV{pfJ08R!BiKU-`puW3 z%*IA0)7(|pC6m2re~jtC@|Z$AOMD?tuiCSuCIk@gScM4!O}geVx?-cbu`X}z71_o}!{6PPvM+R6P$# z(Ii^31`Yd7gtAP87@2HLv8C2)pngDia`kEHlx`piP5Rk__1aN5%Ny!mVROeJ#aZHtj0WxMnbx|^- zcF%l0n9~GvPWt=wHQpR@;0$T~LQNGe;1pagf0j(2Inc#ga6ghs&X+7B;F&)jEnYJW zm!jLR2qF}Ug~CHFMsx75AG7RRqq#ps%WUqMIebl{e;f~pFl8NwGJmAu5O;v$aBwJT z2Fri-lc?B2VpyzS1?P2Wr*FD3{4~DsDP0s_0^=}HrI20lfa^(&m=p*pzk}7(40E;$ zG1iShuo)4b^-c726w@aA=V{hR?^xO&xkY#QK#==m!_#c~=LdI?~qdecOx41U( zpj_xcfA;WNN{UOwcbWcNAiiE6%t=JAIG(c>#W8dr(~|At7#*y}317Nsn%VfHhzIgQ zvhhPX>+FJ?cpD(pkvXSa09y72pMEG)GDvN@qKrt}#_Q4cn}`{gkLe~cS_v)s>^fVh zAXDL>T1m;sh2FGiC9KdWv=Zpi7_9`qwrV99fAxG6S_wNWLDwJ=>Xv&5!BB<%UAYeX z7icRs38VWLy=0*4V#3*gYWGZclA1#Nmq_#FnRc46N{U$6m=rdwa6_E=7mL_1}1YJ+JT(BbOS9AAO|Gs$O! z_3on+>J>?rWRo2Eq~a=_YWpSj1%z7tO!lEv`c!70Gp3~S0$hrRLrnO8?tN5te>5_; zJD%yg_EAevC+>GD{K^dHXxggktBjOz%FrFz^3UDUMmFM#xU@B+9A-*}m>)C(s@=oX zRyCPnqEtbwZU3jqyb*k$1iK!&E;`6%A8oikMm7p4tlntcln+?UCGm~XS8)0t(})*F zMJv8_!A`b9+$&0(wL97`saIs$f99a<7DaB0#Si+Df$@qH4P@ZOb+Ki@QTe?aSP0;oqz z2W=FP`t9SSb{wf0Pru6}HDjp^$|2RchQ4RWAlS=;2z-X|J=xkv>aOf~Pt7F$EYh0I znEbboW5#mC)zqqy2SMfQv9KSADls-F76|0%oK0StpR0@^OR`9HHj6BAe9k7m>XoJE zn1alu!JJL(wunuGyjECXe^Xt)Vv{(gIn=$8d%?2FuVO$#GZg%0iNVl<6%*sq#wx8# zAZg4D_MgrCz_3-YEB;^^WYB@*7)ST|A*}YdRO&sCx>bjVm@b>g__C^B#mi1flJS>3bGtn$!-Fny@lu zBrb8WlQ|&?zm832*dn_KfyGrW%NgeEXuyMdxi7ZJc)fq-q!Q-!OwmtzXu4lTXhkxE3 zUTMxOKsw5xi7Bj&bUI%&*WhWvr#!kWZwm2$M`wKEzt}Bre-x2sQT(%dxUWC~%5H_s!40v`qd5^ZxWr!lOp;?tOGO1wB7v`FJCNMp8WVmyI>xe^(- zN0EO1bkdsPae5<)jEV=6OiRZ3C%@M2Lk!N(##)Il`FYTYzvt9iE3~#pj)@2H16ztp z$@gg-U8bR#0DWGt;pc ze=+7Wql$yT9Ip6)u+m?(jK06?X=5BSM)ikpQ}aaBQ{*zR_DWSUF@4MbwRdc>Z4|*v znuOryRSM0z5PBw{T5*Hi5RMQ~L{wpkAA=AI{18D}n+Br9Nqn{&MFs%^DM%3&{2(D! zvh#k}c{u01galC~2z5n2%HMpUew7cTe+mf*ahTbMW2XTLzOi+>z1_W?+1ba<%dhj-c}65St2t7bts?8zi&;H*Du}b-1-k?k=9PJ$f8cqM zkT%L<*fjby9;oIY0za3)o*h4=JY_vpEMB(^$_@OZMA{gUb^*eRqTr;pJrYq=ee4^5 z1XIT#JPyXP2F8*O#@rql^YqdTglEB+!pCX6koPu{n&Uxo(zyab3yhS8nI<4SiMJSp z>Pe@-G7*|bb;t%&xPX^tPbS50kSRF2MoHS4T`-Wd4f zU`|1BnmHgE11qjqLUbvs>t%?in~kU}a}bIv58+di!>8!aoaY#JQY7Xh zi%CQGTzRn_hu^0|Qm&_Ff8MfV#S_KU_UtJPmGe-e1WYY~J*E_U4ECNWOq|AhqK0R} zr^GK9+LI_fEJ$=HO1GK)Z~~GPWv)SR9r`yQunCV%Vw%3jbDVCg z$$RTMk2~I0O>q-R(z+Vy8x#q>Y4EQmEoT#w1Y0l-o>dwvufKv=UE%YYcLh9FF7911 z$0-tvLC;O4#2^sAM2=KdpMK~cyOt*gy({3i0^(M0kZ*<*S*oH(?4wKUk-slO(20gU z4u3w+ps+Xv{%O3;e}R7Eychi zTPKE;7dvTo@4W@*S)@r7u}*w}R={u>jZ)*lm3EmOChTBAe}4%CN^@m!!#G|6W0*$B z)msIxeaWOwv|b=g)~^WX&I;(LX0Wa9~NcKz;O|K#*qX-xZp_cTU+SwkhAD>}R=7tWF4s zEygz$k8^{Yw-D1q&i+@TcAp8VKZwBT;e7vQ{0tJ`f3-l!xK3^ z3;o$kt9luCWGSZzDRfQ reBTA1Bd*=f>>kP7A=#5mdF`~#>@wf>i`{8JsBTci~q-ol85yn6P zIpl!|fPh}>!h5QyW&h4j5?bL}9*?7;-^vw+qHU!LTTz4kDMbgb`bNuoG}$a8XP1-C zPEIda7k+TS7hM~48gm<4P$HCobj@nIfbzx_9nWO0} zpz0v*lt%;tCnv|niVjw@sbqyl5)JYpMS?A zPQhUX=j^3*Kx~I|(n)$DahN>19iw$qVQAJz{yWoAkneKx9#Wd=gX2Pl#m3QGZ|VAv z_4dt~_Gn6fRk7I%bVE1tr&f6?OcCLJeBE~>qqp!Pui`i%%fIGeN`D#b+_nl&p6AHf zCyUx6q&j(4NP}hZ(ycq|6W=~T!*a*c?u72+OisbNB?$B4zTC3jS%=(YPv556UGMG|k|8=smK+E8OZgO?9hg^zdI!{RzmX_Oc96JmH6mor&xj4WYnuYaK z0XEaF69w;51m^r5anQ4O?eqcWb;r#;fzDTbPxY>KO_>m6n=q+0OP(9goz7aExPoeK zBCO1${M`hYd**HN6ST~Nb(5-aDcfIIdMY-DjOoT861S?qu%f)jn4~%=W2(~f_wr{3?2Wx~F-t$TZMW1Y8d@T+J zfioITTPMMC{}>c6W~fz)qy-E{>r^f^8FGd1_!J~`D`f(I_!;0E|p}d^TXZ`V;N25-s z+u4m`=hpJGcH^mE_0jA?7zj%w+dneEan%Yu_VW&m&T~0fp5R;=0Ew^5Sj@~>cr`F*EPVaGf z3ZHP0sGyuPA}#~MGltr5W!_OU#TE0_*@5~MUcPu=o*H6S?vk7LY{$&S^{xQ_8TTBg zxYyMHE*Jh9JH5YOYs1yv+#(941I{dZtm5Qpns9GaXIkV^z*e;i&>*#8ujYE@R!(O` ze^KT^0^#ZQx%NfI(KqXhg`{d3FK;B)L(a#Ec6^58>5fsr-kne|bx%8G^WvvItS~wov^6iV-~MQfZhM#R#KKi?|U1_xo>eZDtAVKorSWS>rWxUWo`E%%6bUgn(57C z`0|LcPd8C@M(66eq0%EZtAp0#1>&Ht0^36#(>{GdN3okcsB;R=_|5*Tb-pKpDGb!O zMs~00H5o6>;w#m9wMNeb3si(D=}p`SGg7S&(>qO<^D7Xl(P!prMq>!ko1Z$NAABY) zFrCX*8rNw0e=LK@lm8Uqyv`lbLAmL4u#)rg@MslP1z79q@1zZ!t@O^4Km z)@2}0iIrb!nf)6!v>PrOVK(#-PzrdM!5>lOaC&s;*8g=m{N!?zVcmmr83e;- zM6?f+od97m9rm3F0&hTat{*ZWk2yUHGShv<&9eMu)0YaC?TJSPA@jIQjGcw35C z!Du1G7py%e@&@9IBoIa{p+fmxEf9Y~EE!)wJ-=H>Irlk-@`mvv%dvEMPLO##&A0Qmvy+|U#!nAQC#PZar4ZC}v**z)~KPn=(FKy4?} zOTyBL15#-!eeaCCCq>Cw#T@#Nt_ zDc2W|(g1_ffPm5fnbH88(g2;(z%TDR=|_TKm?7-_J?HS4V{~#4pE5up_q%s($^rSq zWBmRtE`?#6O7i2^>5+15y+0uLJB#UCV|=nc?x3GtzK<##@WfdFh}UNjFy2Ek0n|D@ zwvXKd%hWefGzPsy&3Iq`Rnf)lDPZ&fWP8cxb7=BOJ&pcTB zKBwY40}K+_3*#zS`v7>-L_uIElK)>~zaJlp+2o`G0&eK;V4MgwfJOj@OLfyj>KUfN zhlZ>P#l6Gk#-s@*H{LnQA7r_UY&eMf8}^5Z3%aM(4aJX{b=il^8Rojl3&rZYI;fu* zfCJSJXQrADh0bo(Ms_OnV_Rb*~#+t{7ecdvg$qQa}Nn<^B zT)FSaMFvqGq@o?~NXoghk_@vF)U02n5VDyqJ+2uh8=>7Up`5^>)G4GK#35q$g8&V{ zs7OoamjE(kE?2LzsGw~f7hZNOj0mp?#3>}+4C-ex-Ae>$Ev^}p-2)IF9VP&_ zNc!o_;jYvcGRIs*JsMWB>_hh55>5GM!g95GO~SJKFVX?HX~YvKpif|0#{23*`2rLc zFwV1?x!^D8>}Tu2>>mv_XBd`Y2?yK#jSG zWgOi9uSak{@c1c?@lfc12Vos20n(26MUPCdmKdh*OQxl zJT|ClLlDl+Lm1~s>UM9(x47xKm-(A~VGN7_t=g~9_{rYQ!^sLnICltK*xS0g1C1wn zf0?DhpPbK4NDvE1o;93kIG^`5Y+J?(o=;MFNNyi+kBYj2oWA~}jIR~z{-S?7{EqDN z0q%|?CYL^y*`6z=TVRWfL0b(5M2LzBzsBW#?zbyHN&X=c{by}MEGz1sT_Z4i3}yfI zjyq+NPE0L)c^%QNdRfvPk!KcJfg&r@12Gfx_BI|i-bpvFP$@ey301G&=}-!1(X8={ z$@}OJeIf|tkqrU~cf%v-QvNhU|C|S%R-NN83w*ZhF-|``R<{mACFB>C?W>5W#19 znvF2r4UJH8Oih4*YsE+<#l9Z0xAp+0rL|xGN)yxi1MX`n!L_8}Xx7mFnVOd8E>lIr zsqsh-pN+_9Or8C;o+pC&MID{Z=On&DUor}66tGqbzQc|#v#4d)jOR+n9+Z!8Z>ywk}t{iuVP(}R9@;8o!ne_MP8|T+emaa^w z=e0w;E7-UOW34gryS39HGAfpHk(O;Ia*@s@6 z=_FcCDn@SZ{Bk!Y*(zat79Gn$eK@h`wlDg8mIx;HL~yWCDB<`9ixQVt*L=xVPp z$m=bmt8JNXq*w8jx=B~3E9Q8+KIR#vmN$CR{xKjT?%&UW+Vs#+GOOCRQSceJHB#?o z?MY6IN-Ami8oJD(#HnhX<=fBX+2 zvUP^fJK{9~@|?p!+y-TRDDHqyTvPKW__n4Hb?2RtZ22>LXkoOIowpVf1J{A**X3+L z?mK|{&8juc>jhIB{H7`edh0cy(SvSZ30>>c9fk3NSJHPtOrtZ8V4NK}7RwvtNECiv z2$h@IdOAcjUnrF~a11JhE-xZgYu#x#%NoA%ivX8nwnj$H=Sjfl-L^2il6G2k1(IH*B8S<@~Ir}RVcBujAO9b zbfzcM+xhK)PYI8j%1aaQ)EUlhdwDSEs%o{mZu|sfKG@EV<=U9nOlu`Sweqo3@=~&& zJ#BZp5KM8I*SFL+09N}p{fRune&~5hQ)TULyqqDL>mUWrxh9*G!t`WQPoLZYGAdi$ozl@J~~uq0yl88?C@tG$WA(KK@MPfJ#0|7 z?FV!gfHHfPE?M>H<*rRck{6D{g%E)Do_QhJhtAbL@S^bA{h-`>he>NFqJyhd z$`Ii9fGjj?zrwg&8^?GwSMk-j(o8w&#gw*>OSxf26xeB9S$p)yVY0bh$IXs=Wg zrk5rRGLoC&D9qY@0EcLb#;>uZ%=~&#B%crF$+V-4PfOksszwdtJiTFH$S*2^}T~ z7vL~sloFWx$38S}uHFXD-!|BvvA^f7{;ErvCM+xc)Z8`jDEnOo8}69P9(uy~KBaiZ z&5z@j&d>@D`%-L88j22Qp1J(!BQCeb#XCJC*SDpE|F6*MA`b38qA({3ae3&U{_?49 z^_#gn(W(_Tv`2Fm{bEW^hj6;e<3`QcJ$P$}pM1GnTis}XAnDrubE~~3NDqKg!$o5AuGb#D@Q}veC zsFnJv$tfzxcYD>SGyZcBrwnuTdv=W1@bPh0j0H7<_;snCKcjA z%xCXwT6M~|0}EAdj|0S2W`2QTBK}!a!$*F{<~8 z9-3`h1^Ty-NXshje5;yIND^0ZBgY8#t|D%}hw(07>@+_76Dk9AJ=lDp0G8t(XM+OR zOY~sL#ZkCR01yAb-k7#&sdzde{_=^uwyHp7@$bn^I_yUkT3Vn5)Je6>g4EvVpd{CJ zIX!%ed5{WR-l<@R3bqrije4G?)4BUWe*4qK#ifZ>shcm|>BH$22Zbk|u6|DZ+GlNT zW00Zu(V-d&y>f@g=FFplP)j(;BB73i9$GKJoxj30TkUNgC7}zn<@d|s^ypt)x{Z<{ zpFY5@uhO~o{76r`WE1YYItgb> zJiJ@CjG=2u_P)gfS-AwA)pixS_@!^BUai7KMGp^EL|E zDwJc8V3f0iYN=##^%V-bs&fdr&eZML;ZmwKt26XV{k3D@tkWaQbB3biftd`lO5dNC z3mxgDL2xE99MG%H{&@dzMKN<#JPb=wEEwy8d6-qL77RzEL_XN(kDGYHD0~@$I!S3$ z1oKQrT`ohJX$68ek#PR?h*E;eSsDfdC3A>OI@$zT#Qq?n1jHr~!*Exqn{J)c+tHuu zX)PD32POU8eWtQg4Y>?PsGVZX%=)k#CqS1va8_lJXBnpQNXH46!=b+u$Z0K{UqQpS z)q^HR^{S6a8li_O`y5!vp=I9dCcx+be-a3r7nMNQynG>mk0{;6pxZ{HisIwgahK6P zH=R)8*cz%%#*|>l9kn%5^JPAj;#8<97Gu^H?5lMJKD8-KV4SMppF|iwEeKt7jF~RC z$WQe5PM5eGCUskKU!N1B`C2VH9hmeGN!ol2$=g2q%aT3oF7hf$S;p^LV3sbD!v*tv>axV2@u60TwNj7-cQt{jIh*TySWpk6l1kFJbM`I#fbpj!a|J4< z$P${nX%3K1c}`+>FKOgQI_NVd38&tSnkAIE5P4AO%3(KspM^3da*^J~uS07)@`+1( z)ZsGu1MWQct13dgUWTTuSdDH4=_1bf#wY_qPVS4hE%Nsw_L`5~K3T?Y4oY)_d$>=~ z2lY3sMUde3sK}21K36>|Pq|Je zeQ?unfy$3PfZrwt8YdvI^7utds8XOg(M}y=1whEwA!WE9QAs_+DJ}!IBJ7G}lF>YR zx8jj9vPip;jJ@jmHlIR6WBVc1fpj4{(O$Pg*e-5=Vg%4lP}=gR6U21t$vJSYAL)YoSgy$aMb94USktgV5A zwg6Zs5ivPje@5yKKwARBS?im+jE%znX=cTKXO+Uz-1bJ~mrJ^&)Afu?OlDKdEiZwS zEer#`nl$3E9A|EWz`m6?;0 zTZFjqvMOnj@;0hi^f$f=_`Z?U2Ar+5v$gOcTmg7T0DJm-Ntp%?)FR&j>@@%ni{Vd! zEp$BR00b>yzkw%j;Xt6rfR&9dol=DBS0%{cC2&{6cZ7`bmk^*~(l8^qaz?OZbp5IY z#cyKdr!JHq3;0w^MqUV$8zN7*vCVkDS{G|Ig5kGeZN;~sM5!uTO-=?wjz1=^yae8R z*J4wrE_nSgb7$LRVdEqFHfKDi`ZB)c_=^FCuKn>aL{j80hYUa$29JsFu!5g^iV^`A zeu=-mz4gloML%4d{qrmF5p;yj)~69I3Q#)aZC9pXuQ_8*qHo!@4IJYiuev>QTb+n7 z{~RphMIw`3nxfs+-T(LzTsS%o+6u7f~?xt5u6B?;u zo4FbmnY9VMk64#yKb<(6nI{tni0h5e37eTuv-X3>9$zW)>d=V}lRQsEa?+HRh{lhM#Mzbz&C z8Vd58ZFqd0tE+R61ai~V)`qT!uok1X)F!_8+ilt1-)D{3F>qH z7Jo{yfEs$UToI#v#crb5t%rbAd#grP_0dYIeGT}z3pf_&fxo4ZI@V9t1${MvcibiJ zK;EJ{adzD8Xz%bAfxZQGFmx!eaq&AEbYA^X_&_=Car*#u-062yl@CJRPFW40Ht;m~ z2M2z2q$YF_?ep`yz=Ld4o(?xdzMZh15BSx~y?xtv6_upB#`K2pM$3Eqf~c__vz`z7 zMLae370%Cl23dH5gKWRa*nxd4eDt(dQ4U}D^3O#qeT-cYKyRUQg>*{^UHAeci!6Nz zo=Tk2%-j^ra|gj^x_Zf<`vSinSPa6cdN?T8 z5g=sK>=&|Jp~id;2#t5hDsY5`hXi*t5@X@9b|d1Y%IeiYK+e2`gkV@Y&i}<0P66Vy zw9iwdfWk{PEsR1$$kwq4Pc~XR#)jpzMD6rN72b4BOZ03~UEXlY1%jD_0_GM<0OEtC zRCC)X0o8SvobgoL5s8x=2zAXNaCbTSD^7TYYyS9D*b0YNdr}o2Q zT*7PKP2D%Omksn$X?5j!TtbU5IHBnTkdknS`?d#7c(Td^LIKG){06PvmP;D$;1vM3 z_twnuX#1?0XsfoeHv`yz~xw<3? z48IMc#2xrJ6vZFFB2L`*w%_xZy&Ka9AH=i=|BwE6A9g*5Kg`jnO1sDT6b&dWE1S!9saM4t*sNaY zygE_@GU9P4Bp+bP)DParOv9-qo5hBtMa!7wB8s7s^0R8%$Z`$@+Bonm#~<4BZltRu z@;>+U`3PXYEwZWjiKr`jCG48bm;$UJgx5XYJOW;SimrHV0axMH2j9I&00U0(QGi2r zf8&Ap2*5$)8}RxWFY3{IL7>yMoPBl4-0Nr4bv)@t?EGULubY7Ns=l`Jz^CVZ-#>5` zaSY`9xiV-VVBKdks&dM6fXdGsqeq3TcUt{W(Nlf%UhYspC$nEYyXu~XGVfp3PciQY z(NDqHCl1+Ppm+4)ta$&$7V?1|#P-etg3q?c@Xf!T03o^}+~^M{fHM$aFP+uvdOH;M z-c3tGbH;7XFw{*%212i*C^`2{_d9(7n(~1uPwO`A{zv&X`5#xzX$FH@`m6`%{TjIM z9kqr!wb=wNr%(LguJ;4x0Mq){e?591i&sS=AWo#80_oY>Z~kOuUiVuSnK-)zTgsz@ zFvcjZA|Mgeo&&GHP0>0(Sp}(N}L)sf2FOQd4iWAgdMvo%rxs-Go!U z;>E~UPv+GhZk)P(x0oE4!A28#E{ZDB^(PH>^Bmu{#9iG_vLyKa3C~GU7WZZ%_nzh) zbPIiBS#`_GJG119up9l9hY{Itduby_xodLNrKH8cO$@z$2V|Ym6?bxpsIS$-QIp$T`tI^)2WGC{N}B2Dc$G zc?Y%$k84bC`_1VsHJ{?+c4uz)?>ezpwCflim|N5S`zU$#f0u>5}?Nnwfo|= zs_2&%L%yuu48SFkXva?(THq2Rch<~g>ygLP>+_Zw>fn9{XgaYi&v}k>y6^9u?;ZD zObEAqs{aR=H~kpJTZtyNjyH4Qx7~u95T6)MyjwrMyW*u7%kPiFtD@(Y~QsL@w?^-_awomPUah!R; zz3KCKcC=Gvh+l98`M7{0LA|Np1Tuo{^h(ircX-4E`rK72Y_CAx?%XhszJk6%IQc4e zc-RwmaBMVTz~Am1LcZ-*4)#i%LCJya@6x#mXAwC%B#&Ml{HL4$!FHF+Zw&MiNFJty zP?Gx@=q-sB%fo-`DJe*R0DU6>1YGOEx~ht0-^!DaB|*;_k`lG^Fta01gfJQMi0V@i zD-b0nhH6N1&wII@-;#|WGbSg(Aw;-ghnt97xZ$DmQfCS|vfjd(bF#ons5=h0xWCp# zyo{)sfPp1FjIIJSR(jnW_HKE>!jO%pZ@j->G*%2=)@na5ZIEyIfHcHcjvO5Z>1Inf z^>Z1%9ecWAR;nsFcWb9S&&z-hJUy@uJw51gu;Sk?f(|?bHhJRLFwn+*7=hy76!s|N zGwNOHP~tsCgm)@1oq8;VHQ>g(NwMNR#si&tbTAC6Id?NjbOj)X9*Wnlc@w7`d)|{d z74hyEU{&!Ptb>5B;bFgSoq8<#V;nBAF@VN-+KEU7H~`Cwgl7p;0K4769?Xfm_)^kG zi?h3bxG5e!yRki?J)5QNXJW@zPCb?2F!3InD8S<~{6POH$<@(EVaizXm;~7WqvMar zM-8~}?j*o%_2P+^7}E76ICs0#p{u5(ATg(;>RE~7*P2yBj`To~g`9e1n8Gl|bs~+p z@$Q_V;G&QCqzpJ%Id>6Zop4U%eDw}JBTio-$7L+~_zyfUC_u*_2(-5~@EA_7NaHn* zMC!@@lYD33y|=Ym`g2d+v9&sW21=rgdVib)pX+oh+jr-Y1Ita^_aY;1WpD)9f3V*1baC(|_cbpfTaCmFa zSUJm7^*dxX39jj_d>Xp{-uQLMbPWUOFJ!wE;hi&FBNp@)U$4ICtqvcFJfr{zZ((p- zpFd%6hfr$PA0G&cFLb4$lBvIVJ%FU*`|`+c%EC0Ldq-t$6b*m0ZA` z=a|P3U>phTS1^bjUvU5lgvbRdaGMY+(D4!fQ}Ik?jZV0n5?0j6*#HZK z5>&)+>1`AVO5(CL94_epLBCvr912b0I*6vBZ2hX1fo-SVQpr7@wGpk~76jpoY5Rui z=55elhvjPl|GM4INT4g^C!FH*i3Rj=pbqyq=-IKK;W&tg-9wA!J{LSH<6OvEK05s9 z7RM0DcC9*!H;{`e{R1Y%&@+32h%^7}yV*cK*)H%oNV!ay@V!xYRb*8JKw92IQ^uKO zElQ}FxoPn^(ESl*O>dhmLF{K3_IU15jAJHB_--bB_Z*ZHhPpCyE$XI0U5=<*$)%(R z_8jCvr+N;m=G+gfrCpZj;8bj_7wC(W17^+pz%vn1I^>avD04%#2~AnG!~$;3i}FS= z0&a-LlfkVh&ZN#KAkIWkx2&_Tyj|%?m0qqyKWbvt>qxcRDLGZz!6A37%!|D>9fg#W zle!DOIfB7zL&#=>Tb3+7a%+3K7n~Ko%yRZeuQ(}jDnp8%i91>>01iiUUoc(orbiHG zW!ubN1^Z_@i@Gv1eZc{r`LlI!@aPW1c!go2Z%%S0=J*oUdBcKu{k3;>+{}MZX@U)TRjXj_7Vt z{&QW5f3$nPj7y6W#Sr^H(RJ}GsI5P!2c4{37s5HY&swlPE-Z-tiG3kUq=~3U%*W^k zlU@e>ou$Zqw)>)=WzV%2JWB=A0aU%DKMWVDbUHfKNe=x*no4zcL4^s{T5Lw3Ku33zDz{a;`fc>+sFY-3?}>RFUu@r;IAHmDGkEsBNM)m^Oz>2IwEcQzh^l>;IIJBlI_n%(n( z8qeRQQO%GG;V>!QnxOw+GlUxD76o_44Da*a|?lxvQF1@nD_76mwU-q z2X)16&UiLDf^ZL9ZKj*8#`8@@y=OPoK{cg&?@z74i5M_&%F)9y6)_4`9EDC|5u{Mgz1SqA@$sn3B%1(~yuetYs zA%RnWVP;j7xT3O|mVu51q$5OEtrsPq;{*Jqo>^s%swKp0HxzaVYz5qW8h(~Ls&L$Ju$;!y|S`@>H?pb zHz{Iil6%*q4)Z2Z}y?;v6W8V3puZf(RgP7r&r^Cgu zSLQH0)2_aMifc16gZc8~_|)o)x$T<(Ht@XN@FE&T_ReW!2q<1hJ7I*A1)AR;g z54D|w;1l&(A&`YSL2d7&b7WRD=HbFTGXMFVt9E9FR(IZ8x=z%#7NuoM-0H94BMUK|!jicaHioj?|j3rkay$yBVvuN8UuS`&*6eYJMB=O@6fX&q7wx3TmTi zX}2g}WGZHC@bRoC%Upaf1R03)zi-m+rdK&sa6h}nk;UIQ%gd^OC}rRHg(le%&5!45E;GL zBR-t-x9d>5rKNRBThsU@-NU1*ge_)j4lhbe7B+95mBz_RW8}oLidRkzyN;JdhZsa0 zSJAtug`j)plDC=yAJnBsUv1YZQ(DnkMURh^rfkomG^N`W9`dT`>c&-1>zrt*wi6WG z0}G!MJ_fkshq3A|plM)_FpQU#w<}3zZ&T+}W$-m9Seq9+E~G~3XEOl<3M7|H0IW$w z=&swtP8?XX^BKACe)R#8a$11XBo+_&L22`Q4*%ENMeXtL6}u@OO>T&Oe?GG znHPMTRJHiDhI&%S+a-p+{W@-#(YYDyt8Q0g9t8ZI$i9tUpI~qDGVcu<3hXv{n6|Xf z=Uy=anx+W9^)gH2;`wS>EToYeJz8zo9S|F3uc*9H1Pe&lkO_B2?>QUiTHLkT?QWaw ztuLh6bu3JiI7L&mW+-%YWzIsyNuZEEEB{+B$Yn;kP$sYnlRh;3c~q*Eba$tK`O)fT z{c8v;YxijxBh^LYOJ9!a_c9kG>v19lfp_%F=+K7lI)D&V7B{YWm(F8;E z(`fLTKRT3Or$EKpoC&e`+}FAit` zL9I<@ppyA7QJBb5-$i_sk~M^Vt4-k!@dLQ%?*W-xx{l2i!lvFc6G7V_nE zH&qLQ{Rjr28N}224Ht5kCJ4OoRbs;-vtg)$%8LMUjtPdtgT?t{kk`N4B}V_0ee3;r z@h*&lll&KH0i%qe>oAR9+LIM{cwf99q&uQuTB`@dCB`y**mLb5_D>iq$?SaqBC(+k zb*hglIBNSrUjMD{k)*l3Ef#}|Pa0N!Wve{!>?@Ne*)+yc>G8Z2k zFflhO3ID)nWuav_8`M>_I`xJ%P!QqZK zCxvs{?nJDW$FD7H5W**UOwSyf5pDEX6r_r}G{hfBTjQP?GzNX(V|_|7eY(XF`q3|o zQ;+P9?UGZbS|CiiW_MQO4lg~HYC#e!GV`EfF^1n`vm5Ldbc0+Lr z$(1irpR;Yb>sE=@AfAGiNce@RGERx2wbO8$qRmVkxj_<)EQHzKnXU0JY5@h3O~2%M z=A%kYM$rEh=H34-Kwcl2MCrhJ8TI?6qJ;gXm^U5IbN{XUM>H3PIDnXeU1}Ekx^u|=4&z3EM`j3nl zT+&nH^%b!*#-f@8cgskE{(ReuSmr2wwsP8-S64j73c75CZ;M3L(r>@Z$qxMwNU&D+AcUhVcnXcc5^FytyJBQ z=xbgP2YVYwex$Cb(U^tV9v9aaD%S~ITqLFcCu-+4+{JRU^FOZA$gQi2LYb02u*U@!+?xk&k&9ls;L<`+5*dJC)*eHni z&VFEPTT&A#qAemOr32GKEs0Rj^LbnNoCJUFZ~Mg^-Av4eyEZdU@+c^>|ggA2ooZR5129&*-#UD0f26Nn)krnYCC7n4E z2&WjfO;evHHJyNDu0(-^VwoxQMwTL)r;yL;jg4sosUlGlcb!<2N&IWan`03aYc&C8 zN&{Ws<0bR~kbZPQ=LYn^YN~Y@pq3|>@8O^9P#W<1EI-Yzz~%uC<&gAmOyiTIjK%IU z#B78o1~@}_Cd{}ndYyzi4ohMnnPL{>yN*AR?EG3e%7wQQ1ZEd9cF*qKIxm5&>FxiB z5*PnA&du_H`{@S920uQ?kPFhQrXI6ZT`?M)J@CS-ov_zQvud0mE5!f>t0O;kulx}v zslA{Y5EnEp%kt%g=SD{jqbie-@`S@>j%=b@0b)&?^xc zb;1jdiRld4oY|e=8l`L2YkD6Beu>)jV#cgN4m5XpZ2p2)0(r2!Ig1)hGk130zNS1_ z-hw#YwEvf|>?UA})B1No_fTu*T?7$)i~W)ouP>JxFCHc(A$u)gbJSM?o|`|Z?pB0H zL?deT*Gn(}y$c4mLE$jO(zTht()=HSo*177(6~9_!d0xibS?tM)3>v$`70AJ+}^L? z^$uOfAPc5;p*9P7Q@bk(e|%XqP&1a$^dZL1G8bwxFYKcTl*1a4)C zn4zexrGFz*yB*fyi*6}=N)&-E-ge;rDe&Co6~CO6B+MwM2a=;)O#Nt7pQS|9G`m)j zK^`C`hdFsHA2XYrKE-X>mR4=%057%m=kP4_7cY9bjR*)Ow|(@=e+^}XqR<4d1Pu(B z`E=jd&f9Q=e;$SdU=Na!euJ_zVrP?1)n=q0EDAlR=)>?tpv>SUhR(y`9JqdbS(3Qa zb{$>y95vV6tMIn}9c-0HWB2nKZ0sE8kfa-T?Z`c?qwPlIuu4-d zS9y^J(Jjw%^I5y(Lp7TEO%zTk+@dtez)l_0+nn%Z3>S(ptdFM)zx@nMegM0DlFr?to!DhVRD zv4{Qc_p8?3q0ji)bvL9T__Lu>!wxT}IRFxB#~6eYn*lbo>sb$WCh@3I$4{KmD+jhC z9h1_$m#h*W(wtD3Vn8Y7gP2pGxtR1g)=%8KB30O){qj8}Avo*bd2Pn^6`K3V{+`N{ zHXJ$3Ig&RMlnY(Si`gS|WXV!Aw2r;Kz+JdMrFlQkruWaTV7RxBMG(|RtqlQ}8vy!E);?z21XX(b!P|H8|4c z09ei@bJR>DzTW0f65^ibJ3hC7V_A7ELj?>n=5dV=(AGP z)Gb0|>}eJZ+){@N^EjLqB)fIEVWav>#R`!o{+nEOQm#E9`wr5tiIZzzm3^;K8b!Ib zL-xIntNYQgy0_5>T-(RCZzTeVt-U3e9k=b@N*fC&N|<|kGTOoVq!rv4_v6PLqY;Z% zag$YUChvl$o9QCt_svE}=l<0|iC^lN^#ArYpv6(U^?t!Q-GQ%$24h;WJf)CJqUEt+!c1u} zjtyxwv!d)*<&@W;$A>dh%I=U;UWeY9C0BRIWv_S9B%-A%Z>;0htx|*8f!S>K0XgL$ z2#lkTVp6{68X*4>x$G!;r^Q2q!({sXt6cUUWQ}wvqMOqCRevCteJCb?Z*^1>bRQz6 z9+C!i_sk)+x2EGebGGK4d5-wb9Ek&HgbCi5)A<|o9R9`}CX6Wv)l!f0SLS4Ozg1r& zi%lIZ{A2gh00cw2ni}Q%j@36ND?HxG)9yNZgCq)>>9lM!EE!}+S6R1e zbzQY)N=FI@h&#AT$iga2c?eqN4 z^PY45?|eUm`$cfL5fE+!4YyDZ_m(kSN_KPzX-WPMf(WoQEeM!b^6wbq3E3l!=|jZ( zSVVIY*5|uH^{J^&l3HH_)Zm+>0>loi%wKM!dx;X5K$7;bZz(WvDS9^P7bL$Eyp(y8 zlL-M%NHr%xzgO#^&uQ}M3~u*k9+uscCGQEzb8?34k6RkLjev{NW7y`Q*XA0dpSRhu|Xf{s7t=hPKIo z?+*mbcf3-@#0}*eSAA}?-1&f+Yfk8@@W>zIG;q?V6xE%-583xX4iLM59q1F$Nox?Mbjw;+pxuIE6| zBz;h=H=P`D^plxcmnQ1Q({aYWi@DR+GnuZHB-y(esS8u}ZqTDg>$)rH*=L)aoxg3M ztAp{zMj>0j!^a!0AwP{P>O)cZ&=AF^>x79qQK|SKa8`p^9UAMul2%<%x8s+jRsSb{ z>s>o5pqX9Ce!N?ZMV`A;E_&dZ0#mNaZCV)6a+?+g7%A6I;4OX8rEr@r4Nz{=E|MTC4p!R)Z~+xj_=W z=|zDsl&6M(;VDmvpN{gh))SfX)an^D<*AG?Q7KP%4ubM@r;hTJtlzFH<>}6WQ=W2- zv^j@`@{}F?>DodAN5>ejU_AO~$vAbgOX z&TBnE4+g`Jw0$?vbK2vhQ$=h-p{KC|GRhRmd5|{k!#3@2)HcpSN>c+GO$HLV(x@~D zQrnnHWPl+>ldcY;fRzW3vJeMMR0#YT$VDbPlq)k7=ZiYq;agEYJEdqMoa3kfitTpo z&|U32BZ|7&Tb3py5o;|>{mb_jCKqh>1f&@B-}X2v;plf z2Ga&~#tduPU>cY?$M-z=+tN~&~B8eSTXw1g#dip6L>JLc)>Ts(W5U+U#vZ1g4<&-B33kwwOeRzC%WPV#ij~*AQM-M;KEhhUVd&fj*n|RhXq%xL2 zC1rlaNiAO;5bhQeI2m-PnE>eE$xe6+u7do={Gpnv+Mnp*5l${tSqCD17doqTm z4MT=Zz8Z}UFMeH$FV{ObWkrEdXqZD4jZ6=nzi1JI>{cMo@>+H)FzTs3B@%tlN25F( z59^0GGWC#p>Ado^E`7ErM+GzSBCmhO%DQlm5JyjBX_N@l6UK!46?jZoH#0%y3M=Uu z8OdcfKPeziG5rBZfDHEY!qfqkU4AhH(knQXMB0GMQ&Ca4WK%V*9DW;m{I0Cbg9xC8e5f)Pi2t7 z3HZ*Zp=t7pLsER3QZb6Plu*THT&Cph%=h=lrKQmdkf%j<5Xvq?$r{zve0dwpt`(); zr{$-Ha*U#nKz~fN*^Gb{)s?*1QiAU={p&F)#OqPL>0~&>mD3p5>wB^xE{-@>xv2&U zw`p4xzwmE!nWC8&Z!2eF^xyh?7a!94Lt)0=8Il>>zi4R8*slzY89Vvf%-FX_WX66c z3^Vq@?~)l?UesI{W^7*M7V748GI1n^nBDY***Jp?8)5d&NQButhfJ9LS2^EL!falA zeFg3d!VzZU2BGuUiy2{dd@HH{p%P~AUZN6aFJBUZUludF@r2ob@ZA8y?0jEn!t5nW zO7mCe|E^$0zL@_;-od=R^7Mq+%a_!t6U1 z51cStp7{num`x8)WWwyDIRhok#&`oH%w{{8siBUHn)e7I16}fpZsGy<=8Wdf^zJ!F zCM9`6&y+M!AYBms+k5ypxef2_jlR$N!|sB&Et6WlfcHd8w{{b}Z5cm`quS7Y*!AEQ4#QFhG{3^Rs0X-?YBsO!wn$#p;*Vi7dQd!{? zM6Dr3!$oTPYpL-Y^CYR|Yia*C!tFs}_(qmDL$T9oooq3C6x{vr8CPI?xAffsjXl2I z0cwx$wQWhSZZq2ByW|tcw1v0FN4yi;LfPZ14zkBbd-(2vY>$s*tFgyNl?~;fvnpYd z80_)w4lrRt*yE#qL=x2=-|j#%DVcIghxYh*ae1kHsrU+9$0`^rKa zzSviGEyEYaWQNJ`g`Di4Z1`djtE|X|FM`%p*D!qXQs8jk8wD&#>c}$Mb9^Zf z!JZ>lX*he1=y?r$jyr?xIpP^gM0<`qL)mjwTlc24=UDbg1bdF3wHoa?di;a6=XeZy zjNG2#>^V-;28s$B=oaf1kw+b~*m*Da`fHGHbBi*^lv~ZTyQ#H#~l~E0Uh%3Z2xRN+dN0rr-j9looF1xeV z<}lsrP2a=z7X_KG-c(vXXTkIe@4||@`4x>7$-;D#$y;x6ZxCkBoqMbCewd$!xeVR+ zkwEaP`7GqrK@Q&+aq95CReL`S{{P3v%l!W({zr!C3mI!k>(nV*J~`Ozca?@3Gew&w$lNdQKeKPayM5Dfp_U9Zc0{;v;~&;Muy zK7XTCf|Gy|C|G_p3ZZPdX;~gh2d#A8=ro*~U zaC=(s+|c6|p>644`%P05v7 z`uZvkn{xHuEqzr&Y&JjlF~9lW`Yb{$+1l=wkC9z| z4$zLXy6=?(&36h>6^C9cy%hJl19jncCM5J5~&|J;&DlXT|@ss>ycZhawx8#%Y z-dVS}bAgXGUgl*Ugu(qZ#Gw1>*=F(M)^2eg^3?PekT}RK()nZ_sbdnMpVK05$&P%s zm1!6>7vkvY7@VIxq@17N!NuGAflCk3H_*hiJH+={0Sj=2H%FPxa(MFz@=ZOG*>23W zB3!O-OZzViV@Sah1*O=ete{Q3k~*5g?YgQKn-j5a7+1(nD5#Rz&*neoKS0wkDQTon z_is7R6>L5qwI?+?gUFh}-OY8*h05&fPv`v%KRyY_&uvRcgv5EuV-S8EU5)th@%hv- z41Rnr;KvL7Dt^4sPx0e3ARgk!r~9?|@%lXC`D`KaJl)ZmOYC&0sawI6Dqm!vjSn83KR-9-pg4SV5D{Q#*NB#5H`1MMw zHGbj>omK7!r=aVQ@W$&`EB*BPRTktOe9vlxU#&i2s%AjoJ*#+_w2Vn&P-PYQnJ^(#S=5h6qN=ir{K=$b&^0k*RAq7E1gvbi zn!;XD;>3k3S)E^?=UDAj+@-IyXiFbZ#6nptGXr`w8fj7Ybnkoj4P9 z?pV$Mow$e^DxmYpG8ND{r7Q&g2{XI#fX;(A0?_$s7(nO5GO;wR^vxAlOa55WRMJ-B zC%?88|6MYnw7%qjiZ2(BDTys9TyeSh_r-cZ=ae!9&>2^(0d$ft0O*V>zOH~y$b|tq z;gJD4+GP-6T?kh5e#?M6@5iXc0j)+bKRE<5?2;{-FApm)@n23YCnv5B$OSB;B zwcA$7i^6rof`19>>B9;~n|n*k|NYnhDe6Bw7)}bM-AyvpxT`h@Gn)k&E^td7_yhU; zJNH}eL+%Xs5%)3o3HKk|S?+h-r<}z7C--~qGwvMsU)<;17hLzPiu!?mE^}A7tK7F- zAJ>o8RipS3d^A6jkKtqaQG6V4;z#rG{B8Ugek`BBC-UR?TXpv5GygM1f0D^nFU;H| zgv9t*o2*p=;KgQDI-QzG2`g+95A7yi$OMTHJ-v_I=3713a|HCT&FSfi27T*5>EWE!07T#ZG7T$Y4 zKXc^bnIk>oSh9us^2Y_P8O83Na{vhFU3^Y3^~`7itGaLWmUT3BfcF1`P!NK!YWTOi zqWxXzt>-!p{N`xuzh3e&b$l@7;GRQw9g05`jfjI*fF6+21rolc-xUPHf%lK69-nx8 z^6@DPgp1crg|Edq9C*KPR94)g<<<=DqfzERra^iOgs&suAI`KQ{y`4|7#JL4wV&ZP zjz5)ZUR)^E#7d5suA{A8mwcsbBu}j5jUij}RK8CwhCm!K(-Cu zs~5iHKhPj60{+ep|3Hux=>tJlKy#8T!y+pb$b&|Lvmn9eO2^TrN4g)`99H()rBx$) zD<-ayR>hKk()yTE@{ih+?dz?O93x3}^x7v%`7yoAy$x0uONykE;uYL=POqJ$ZpE1Swk8r& zHZxylt@PT6XAPuOY4g-u8r;M?*NgZXbhX>u(4Mtcht)+Pw(iG0=+kI%3srR>VYT3K zg5WhSXFd6!VIqYJstyMem54;kLLTb9c8{%rRG-C8!dX1lYFWZ^(ifUDGBSi>C+R9K zD-#h?bCdKJ4>8$Xl*;L9mSa^5b)*hnwhk@WO?Lf3Lmw>X>)koPuwXH3_H zP1nlV=yH;d(O|cbm699-q6{+5EYd+p{%+E@NHn3^+Tf|Jg<&~cy+DQFwj9S6TU8kA14(rvX{-EOr@=qD&hq|#dDthW+D zJ(j9E=uXSkRAHD^2aVa=vW7aHzG*ts&KGw_9s1cEL^RqpFTHt%+k; zJUmueJF|HmDcdF+SxmF3o{S*}ndx)UQAlZ`gUdk%CK0*bQfsRc9Nzj$GSJkrn{w)` zRU1Hx6gRE;8n^8!=->B{V#`l1_LL#yI2|=MS3QYI+lx+H94!L-qPDr43mPMMJ0JyS z5mTv!H2a+Sf+7MY30~+kcfLGBD$^mGB;^qEG;yf}Y|0@Mr5xs7O_*xkaI~pe-KPnp zksd~{(_zgZdy>*c#Y=PM6TvyF%jI-&q@MNY$60n;CH$gyhNsEHt#oW~I2#=Ty2!A{ z{(kuF?-z9I>C-=BKhNoblc%3!KhNudlTYoSKbv<111Isn{7HllAM{BO^q(clhdC_9 zPgIBx_0Ppmbchf5e&@UWt_6sPuss1s^Ko52Z9UT6yY_`Pu-WA#n-U5}$q*aSMA94R zl=#RF^1QO1JSXmkkR2{~MEqOjkI19QMKMZPmegN^>xJy7H}{dGo*86PaBhAhgsgLF zgxoa*Az$|G1w_Dpsqui6xt9lRVQ=BDcTrO_z$9K#oK|s^{l5QvRKI{z6oBVKGBRMF%>v3sBy_ImD|Lr;&&b{)!|C*N}2nGN~a_aWPU z+_rm=W3MQPlm_UUI3^)E8l~<-iTkyTUl)||^ZZwRZNRFVSk+lkP-(Pm56ak!18PYEtCuHg^uI?NBdm_yJYZWCgBXLYiZEBF7sd4rhs+5j{xJ+ z0!Od{H)r9nli#|X%jcokH{o%or#FRqG_t(y2LBvhFyr2XY#@G`{LvmTsS=&f~@D*{J{%;fIbqr zn;1&F38&+5pbEXiu?-j;i^8ZE+~oPXyb750`>OiT8wjjwhc#6*gbIoPI)iLI;ypr3 z$~41vi1p%Hh=o$mpu`>;k#sodXsH)b;w7NQjPfs{+)JI(OSJpW+@$Wls_B__(_LQ6 zyR3K8hJ(8ez`vhCtuCXCD{{kK=CvCC2VAYoP^~M*LvUFQS$8w;gL66%k1DjD(llcyq1Ig1cm;=ev0MC;Pk@Yg31+NI~f-{{3 zXD*=BMiW1e+F6hyY8{GSFpvQi%eA;FcfUiC3uL?>pu3a7_DGvI1(Hxs+72gIkmg~K zWj~cZ*yMKsWSk@0X^;k$(Y(3n_Cvmm{jB335qZYD0#~O=ZWE7`!H|I9E|pHo6BH`u zw1r)aIga^D`5LN~@(h-2fTwC4Hc1lq-0p=VD06MVXFr4wWW|ZrwA+?jz!I=&gE#e63BU@HF@1oH7(p=#| zvUW-*Wx^}Fh~GADDfmb1WYoz1flsX@tei|;>X050xs<<(A`Hg3+o^<1nFilkesP)b zLZr|XYUUwB=l!B4;93vT5c+T$tKgTQ#Sr(TiU^!;J%45r-xRp;U)|ioX@RkLk9x0M zZ$CU+!YDx@oxM|tICH%{h-N+}V7OjKfRAYPjxzHE>X zgdDN>dL+OdvcM#iT#p3qR6Phse2OaeWk9wl33$}QgL%I85xVbX<{k>FOs8-+jmg)K;f5ZWcb@W0O(5WC(o~vg z+6*?RUg1`D{y~)Mfo_wf4QQbuo%Cy`6jm3o_v&(7e-IUTbakRTB_*D-`5-1cx?Tl!n{ zf`?nxqSrWI$Ed2h0OHSrtOs%Xdj!9{;co>?;VpI_bgKQH<;!U2`Pyr^Ralexa(7zH zD0*i%nq2^g1sn0QSDPi?D#~tzVv?kXwDx(_aE}68)@I3W>R4@IFtOXf(Xjp#KlhS! z#*I?E-+YKA>oR}YNMCScP8xaby#n)8!mJKqJ=di#+W9r{GXKpfVO2C=Kl{}E9^bml z7Gs_hD>MvP6@UTZhPUeEq0t8}$OSN2!;{cG_K6h%_;bBtU@hi6daEPKc|v5CO)5sI zcMrO()JssAd7*@Pw{YgkbBSM?30E(ArCYVepybB>NVUB&bW&E_M~{%=G|;m*j;IC+bfig|p$EG_EQ4F9^#u{PeDuNES~dC@ z1{>8jA8~gkPw8Ir8yKw(vt`Bb-CVj~Q;$sibh!W~xg&0xyhTnsJ;gWe9rb?FQcm`I zVI5Bl0Ps5gUH2$m-xeohVM-dL1vx`b4O)(z15ODG1`ceEE+=tcTzh~l<@%nRPd3m} z%J&!`@~ppcJ$%OzBariSZ;5#*{92?n>u)H(jHmjmSkzw=)TRz&`Je&=4h;I?7Hv^fveR5?^*mp#p|w7*_1ws;;n;lKcIR647yng-?4US;Dxj_zsHMs3 zZ4Rv7#2I1quz^F&6IcjVU8d7*8@iS%hZ92&U3rvSd$GW1?k|q%4#h!&q71&9rbCIB zndY8A+%OezJ6TepO_vFj#1)4&Zj%G0o=1rnTC|l=^UOE~#a@KGF3HNbxsTE|V8Hla zJOVfxWVz5Toltc%jj$6nU2amj#@?ENV5^ax00f)I^g$KY#6*dq1;*n6;+phuQW}%~ z0^^4?9iDPY08BxH>7$H5OCoeZNa&hO_16X;j1+bZKQ+?D&{7PMz=3=0zz*h9BGP3Q z6kv-6KUgOZ$y_5?C+X_f;fA%UR|;X0v(7Tn6#(l*7cnr_2@ca>oxGhN9P4Cne!sC! z=)D9r)=5V{uueKOSSL?y`EIdJI{J=vqPn?pQ?O1Z>99^j>D>f2&$3Yl%LWkY)XbEu zK6Jg(uUF%AeP86I1@UT}FpW>~o{9>x5+{9)pi-$ux6&znP^rjQJt`HQlY*mCRk;*Y zswx*1AQ45hI}epIU20US0R@=Wanoeo*(8QaCG(E&Bl>S>)m8~=gyLqxlkz)zU zArao08rl5E)uB{TG0SKIcsGrJEC8!#z>_Dg3bxZgEA7|NiNcsMddLpCz8|O-WjEgy z@{P3`)6W`01X=2Mu2o>xZhR9k974WC)&ZN@9?(%}`0Hl;fAWr2Wus0w?!jRE&u1JQV+z&%kL6yTntC4O)&NMYXt za8JeG0Jx{C!as0NTgh?9e>rkWc02y)nBYisJcNHDOI~pNr{iA7E5$pD|6Kg<#i1oT zi+^3L1@1XoA_Mmvw5x!7@CyL<9JGI@z&%h31MY!G2HbPd&VhSy@iz~+r(^>e{R~y6 zuH*;giLo|OMLM!JpF`F?n+b4_SfT;$IS&CrfqO2I7+T<-E99FFxaTT-3<}&s7gAc_ z9&+ZVu=ocF-1EDl{&-@flCMv|J#@jxfqUlK`wHAcwG@2@?rHc=fO|gQpjuQn+z@b2 zhhN~H<)t?U+|yWjL%=;NDz6LNlT;ZDxTiM&a8E?V_Y2(9@Erp8Xc~V~5EqiV%~wM( zZ;|a=HQpkRAnUcQ(vhu^A8(DsL4EWVdA_Wl-Xhz#2J#jOg?<}vk@L#@d5e70`K`T0 zD%|K^(!LeEMYeD4gSW``t^T}4Dz)_S7KwxO-XhN>`X1Tc-xqI@qO=XRm!y&V;4N}q znIH9#9zxf5FK&5e%fxM4v=F-6w&1Vi#D_yEuUBc&)P5heot11t2WhsFaWsu~qyJOw zMj!9 zaUc$%&bwK4T*AT1%_R77p_5+;VCS^d_J+z0uB2(JPT&~G?A|21^wL(50GcGKJ_^GV z*uhx|(y^^f31Jls$F|~1Bhnk>UGY*7Zk?iug)W&!cI(We?Fg9=qP#HL$Z{ADEGJ&; zhQkZF`(yl48xI1=oq-a@JL7%g96{cy#*9{xnW#m}!c>eZkgw7_KiQK%Sv0tSHh$!U z7nAgr?DoWCTfgL_iUVHt6Rl>y z;(8ZFC*HOt@|i7qbmI03>1W#lqZ8v`%Qk=L#54V&6JwE5@8amhxL6fBG3f)u(dL6w z86`S&;(8Y&#t%9%4a1Zu=*0D|C|om!PCSV_+T1;rX)bgCc%*m+fT!qqVC9em3Lti4 z1uxyncVieRh-7)q{SzFbQuZoSZ84{RWSv9%XVG+dTGpK}#oeKqlKC_fGoODZ9h!-g zxMX%f)a#{A8LRf2Od6&y zev@}5UEgmq)1dqFo4hkg<2Sjz;@kU8raHwyev_ddccnk|8HnI$NyViXLVVB zd!&2*^11`vQ?u$$MrPMZ+tcHP*45=*(q4PK;8|U+0{a8Bx!8Vq+p8<@mtQ~yFz!NU zOT5^cR&k+KsOafxHVtZgdU?F?+=2rqd*1i!Jy0MJeweC8o~qeA;5Oqx2IP03heqm$ zXF&#xr-GErukdWI42)9uiUMVK_?PCeMmIsHix&@X_>T*Wd_c(ymchvbtxr_`%^e6T z0FQqcczFTb8UFW$_Kn-3mT&l7)B^k)|MI+5857zS6%DJSrU>_ZYG2=?KSO59BXqW&>N?S<3o<_H9umH18; z<`%BY&Y>Vv1cen~xouf1a01nvP^iL>(!>+S6bS%%!~v#q*A+f0FyvSE32zE?=D~uNk z*9mz90E~ig30Xb~@@V`p{I76K_7Gvn{DLe8ab<0@m6)Q&tTdU&6h%)ot$TEckeG`&tLX(Y0Fqv1co|u=nWMWa#Qq#(nx1ElzCaUA;NS5PF0j+Ba~+Yh}IAxHOHYuooLb(IV3HoC@@b{@K`u+ z6a0)DhyP6^|G;bLxPAg>g$)TGI?N=*Ot}A_V;`{oJnq4SDO0CSPZVaPq?5@geKD42 zrB!uR!4S3{sbhcZwFp~})U&^vwFq0E*U-NwYJ3s4e(dO4^X>U5>+;j>ISX=Drmwaq z7Ot6}WfNv)NXaTpC@4(HDw$=^pJiX0U|%&qr(jODEp=V-w47|#JhXvE_+&g< zxC{T>!+w;f^)>dIR(tteuk;K7KH9znuPk~DO*Q!WUl!qKs;hsis)g9od%cF&t8mc1 zHUos^Qz;HrN(^4BKA_bM{7=LX1x%>t6)^VX|o`eieC4 zyeU0~9G{3I@P7Lk%Kd~YXWK5!yng15a45WjCW}J$W61W&*yv7aGdE%eYqvI(_%YF& z(FEqZ^x2w}Y>%t54X4jm!Lw+lC~9bn8Q?jT)QFn?Vk$=YpP}5(IV=@zogQRu7m@X- zfKrd4#7|IuJIX!U+E^YFLm#yi5@V8Mn&h$VK+aL)e(5v+jSjB#3h{4xj|)!lMiO$u z4M=I>LrL^zm}w)WU0W<1>{+twRNv6D&rrtaIQfW$P@E;FE7 z5c5-%aa@kciasM3O)shTuAtqsQ)(pE+g{KU#uh;eOdE7Es{I;W4AhP;$KAY_YZM8? zK^wyuK0zEPQ1t^|K1&rfqcmpipdBZd^oPj`s(qliC3$}6l}ylyrMxO}xX`^r>h;f4 zT=Hq;=oSY*POZUNH~iCVe!cND%IJpcjZo*ZT?hBhM)@D2+>fXc5_$a+<^C@XN&N~= zQ%<9TZo|lGoM=6icDU3$%y3UN=aTW4$axyB1zeCGs3!MhVfd2hZ1}R~-DMhP__>lS zf!;c#wZdQj2t5J%z%WCq66;R1>>6HHa{l7(9D5pA)9v{pnKEXvS6W%^U#5iUWXi^B zy-X?DfyK!txj0XEDiJ54KH}s=Dw8oSqM4|x^y1`1Dzbip*W^3!Ppv@2ne;gPw;2A5 zh5vqAO;FW<*4++5L=UG!40#-qz+oFZ)VW>!eYK2LuqT@|7A|H~3KMIX92kpcDmY)N zhQc&)LnB0ENQ5v@AZqx*5RaUK6Uta!fVh-t()}#yeA25GX&ZIeX^t?wqOb>-9ty?n zu9kT^(ub!Ih05t>O-d@h&9_MF;PR{kvw0zqazFg{K{en=5Y}Waf_U`~X`Rk)#7E*&kqh%zq0 zY4A$YpyqgB1Q}oqcM6AXTS=LPtXGZ5dTl6;BKnI0)#O2?&xY=SRKARO1dem#C_p;T*Kki@$&%2oSGU8!joI_z@aCI-yWsfFTy; zY=-HP0eN+4qHz?km^*3QvCiJ{=Hcv_W&-E5@TyYYO5!GkNRa&+N6JyOm(U4-evZ4ED3m)P8Ll+m6aO zPRAfQTqvOryL|q-s5T^~#8JdDfL&X?c_NZWzPGQs<5_-h9 zM(!L~>}+j;4Tl%)PFonTy-2i`J%mkrR0LI0LLvt4?Oo)_j!GY;_a$V65g8=W)%K{9`g5ik$O{N{B^LVQQ#7hGFRIDZf0SCiVZ$OfO>B3#1 z5qX{MP`DQGC+8-VD@@J=6W(g$LQy6cLKC8m3$=4D)R9Oer4A z6uEdC#6O>;1Jg|Gtt9eaz3vf08XH-aa!ZxPdLZf9$5Li0NySy6rG;^L7ETg}P1`DD zd4NC24^s!tH~%#-R5|@1q~h~4>r6U@X?tp!Nowio>2A&0M>?VL-w-jyg$VpR4WN|3 zxf)ij(YIRt+{;J)M7f^j@hGt6z34WM5%lQ{!2Ks#sUIMZ#F8!y_y;+-d1isC;>(}Z#-K?JcT3^CX@}w2iLyN4s){XrqqGnU zq|`5`LZ<}uslHzlW!;#DzV{;8_71#05O%WiCKEjG{z4q!4x?-*=bm%$)&Q>&atoco zgz@^RdQPd`wpHR+4aBnz(PjVgS+M11E8d6k_#N?Er69($13k_b*O15AFsR6D^t08V zEgUYKw$dlVX)B?#kF21%K&RVEpBYXo+lZlP!o?%BjEszy=xB6v$q-l=kGwo@)Am^+ zGKABAt&kPzTi1n1-#S~QFTagn(MaFA&PV$06MLpd zB7FmP&`m)*h-V*gI@M%Klt+enSeS$#GU~TJaLdRyhmHExoPXFPZ&d!1B)lTsVbrfh zqzZusMg3YQjS}@sB171y-ysn7d&Fl&{T}hrtw>4|iOxMfHR|_VG0&`nz7k^r*_Usz zlZNM%xh;OTz!WPnE>b)L33J(Ay-7?NA02Hx^p&ytgo;_^%8`PTj1MH|-eVqdY^4cE z1v)0Y?PCdl;UsYNQ~Gm6wtHsGCCMN?Jpzn|KNF4E~BNbkatfa zO)c9<*A4P>0?9b8H8s_0NZ@NFn-x;wMAUx~y6>_zrQhzcA}+(c?O-NBZ?vW=m9Tfh zVVUyLl^2ua$ZtOLC|nB@+lr6+WLJb+<58dZv9QLk&m%9L2L40#Osoz$)hmPLYh&RV zE)72q!ZkSBKYLEV&;?!EhfdDmW5tb7TnWip3pZ+KW&~KOVDEuMhX)i888S=}HUMoB zshu@epHnf-TvJT6TK*zAa-dMa_F6WyX_DT)F&u(6*m&SO8AL63&}yk@vBMC&()N_Of=l$@1`6F|2GK_9LXO&d?#yoVZ&srXLEEix+&sxbFQU!4l{|upmZoX0;WHid2Zj3r^Pb zlk$ywvnk61L;>W*`uoh4TIdDY(F{FEZ}d8Htw&P&!_8s1Ga6x$6^y=U4KB2wRS!}Y zUYy;rYI{m>1hkic?fn4Tiw$m1tKsbdkF#LNM5Fc_WJw=kH4sb?w7d=Fh2x-2QMGCM z66C|?tK)20F-pjWSvw(g5vZN0W{HsXbhU23Pz9i7QgDV^FC{n|YV}u>*-;^EQI#}X z-XcxS8(_Y50;NR| zqA)@NLoUTx?b>MR_Z9KUgjW#~UJt>m)J1|eSLe*^F;lgdNGtNdWqk5=Zc{B3F4%J`K} zmONkb5B&e~Qf=j}D<3QAQ_{cW=8_>L3rqW#oO#d=uX5We6JEvnpaQSL9{^s(`QR0W zSAn+(coq05;8mOtN_Z9i`ksSVxns4kXCU^+(bDe>yo%=R=T*9HxOWXV+^_i%US)o% z4PNCI$cPB9l8q(o@G2uQEdXBSHb{&JuYxCd0KCc``c{e6zXO!S9DoU`n`BhgJ!nJDXygGbMQuJw)a&G{*+( zzOMv=%QLHO!hLrTT&D}z9xn=Vu5nOKA90|c?cNhehBjw*Bf{Sh0 zdmh0>U3~DsGRc<|!56~^eRB5nLz_#7u-Gg66Yl01s+=qXK;i3m7#17h%9$2Qg>Py2 z(<5i6hPtpuK%0>_OMy01X}G_xbyn66t*Yhsx6Y!?EGX+D+DvtAIJBAS+RHC^`%SM~AW}~gRx)#u8s%txeHd9?23T?(3Wf0m7&k97F*)`G9&P%kJA)P^+5z0bb zc5J4LtEK&reh z6w&hZxDdJ!Q^73kn~D4uC(Ig8ctYDLpYR0Q*w9AAvjG;IGmi@$Rspgap&~lQHOgkR zloLj|7w8HAryUw@VRoBwiWQ?>Y{Lc*TD4$Kg)ZF6N82~WYkyy`5D97S8i=-4)WKUH z3DNfl6m$F;DS#cRmMIoD%2pp2LL&=bc%wC#WDpW`6$LavfYI< zst>D?M)hGe1bk|<5C*F@v9i0JOST3Tp@r_Ok?3du z8+3Ss2`x0XhM0n!HRcN7+Yf#a(wN{?;;Q)ll3>*nSXxPTE073~Hdlo=w_Y^@4R}cVt zK!v|RD5PRM2){l*#=ab@Apk>aMc4H#0Fl_snYlFz08wrY0T3;(8M?G45P)b@x%2bd z@Bl~g-14f*(f|+xYAt;g~xV@n_X@xSJMMal6IXJ>$vvkTlj;)cy(|b zdfGQ^cg0HuD@nD_Of=U?*f`G^WoM14@Tn1To-UrqYkz8ZKC|?(%>^>Z1pYJJ=Q>F0 z`+^znFS(%67H_zZX+rOAxIg8|pYi15{NJzmzpcFJ=N;@mpXqLj8=B4cIjd|+C(}&ElLf^E~H7gN$|O zjI#5_x-X2fFZDW`+SL9Qv-v1cPvKM?bIjBGSUTIjnwD8Cw6$y3tv3n|=6;gv$={c| zE%!IM+j9@+eldPeZvP2S=YCLNACCSvTw>;vb5YZ4#jNR@`Hwckb4(w`=Q9fCQy;k54EULK;p92;)(kEL4%5weK5RjM*XopAB|HM5?+xr z%y{XHQGXV`0!2OY_s`487KsmC;+@6ga~4ohSA5PmQ7K8b1R+)a8^-6X7exl;+$(-1 z$w3?LkD-V;a=yl`M*ZiGyMcc~j~xX$w}^JlkSOD!R%7+&Tvm(E$r5?aOHK|@p)s}1 z$Ug?I#WCpoY|btkPtP246dB&L$Fu^yx7aMzs^>I`h`bz(AWp_fB>+{{pLgLqD6OG* zyit12SaLp#=#WbYkc1Wa59kS6E9D1`r5>uZ%~*0wx;w@yACrx*xNq9-xYpfmlctPs z#qck<4yUX46J^+!F*yI<<{92kjrz|TJ|7QCOI(ZVMU*7<<>}4#4tOsZ^%q^kov#OK zb3yQH5usdAwOQ2AZ|+=KX{Gc3zQ8E`!dUVpO{UmgVn+e9aclm%d>l0S#naKK@DOkN zTt|xB_i`&*JHvf~Q|n1ha>6;T1j~weQ-FC*1goX4$yz(Obv1A61h_cLnhg);o17Tv z!I*o(n0c~kTZN`YYlZn4`EN`Zk4=Ecl9h$J^;5>`(^RSSW+c|hNJR%>dOp@X=8iT> zPZ>*2g8|Y>KY5={8D*!l&^6tXM|MA?H_9RDL#>f0yXSMw;MAJ)F zx%uXl%)hH_i5BOLz*U!G3~iu$1z83}D|}*<9aWF6?7@cj6Qlm9G9WZek}Ax5+^GM` z6>oJKRskv6l>#A5w$VlEd3K6z3!@+GZQ*;UMr>OBfeUuIc>VW+`z9$|PqLj*dcIy7 zz{rzbBW;sDG~%R3>Erbez?f%}&KYCLSE%1JS!zlUA|u$epVmKB6rZE>~vosx+@yr4z99kRo2X01NfD3ZXQf zn%c_C*^0ylw1Yky;=M`uUe?hOXX7p7V{ z$<*gqW7K(|#S69%;$mldE1hxOYd!Ki`gy#gU+{=K2^LpBxGU(P8%v^$aJ)g8#e<3BbdaAGY|x+bCl~q;O|mq!EzX~w z6|rUH7`m?yyuCk{>YMo4*N2~dQSb#=0Bk(JL!?CGH(`a2O?G$+&IhU^aJ<8CKCEY& z59_&CN|dHYr!W+=ycHe*P?A%m|6J&$1LIiGD=RkSge|6@87!|xIG0JoF32e0(l3_G z>VoSMU9|8*WxpycMU#kwCZF#?t*np6E8!IOlSRlkDHYO^MF@qZ=WveETG|RnZOI(D zrRkjtumjw<#j*q3xFsM0N$N5>16*5DbZOvP5d;znxVEIo23#w>u(}UiYdP_U2Cjt{ zO5obM@W8bJK^0vCu2mJrJq=uYq`XzEE9x9^npFjkqWK|pYLuc*&6uVthVV5p9yD}W zv1;N9kgc0~CE%i@R$6wmrsv4h1y;Mo=9!2l!NH2lprVn2s?jF;$R$vBEnu6TMcsXM zy0tI?sJl;Z4nW-%=8=>QK3>s#w;GX?4ql(^AzxeZoEno-xMbnX&Kx>&OIzNkE&2*5 zLfUm(DcZuRsi~$BfG{H#X{}8S0&E_uB{HMZ8>mg?N{# z!-ZH9)W?PhG!f&B6;>y7ixgXe!b8C8+ZNe0(}WQ~Lv8b$j&af--Hc_*HbYWy;^ceH zkd$Ppg%)PeUiua@ASMvd7~O%x0UC>IV`xBQp;?FsXj~TzXpDY?5dn?sLIE0EwE3L` zG`@9u1VH2Qm4Sf9_jDQ1_+~;39><#vB>`nF-`**gR z?O}fQTlO~F%YMh+VehgA*2wm;CiWhCpMAjgvk%#Su>WKS*g^JR>=65J_7VFZ_P@+v zAG6=H!>pP8;TrvYtAEC6BW%yTwGkt(&C1pDC-2(&U-kI^14c^x|M;pq9>3%7_qWZ6 zuiD*~msr(2v|p98EI&tUa+kL{SI)`N{B9Nhze{NT!8rYR&aEZXDEjed7&d9j9#Q{8TJ=^5PL#ECUek$2!hh!0@eqJcX7l@2~i^>qXE0 zbnn_<7NvXFyijm_fAhPiygLDieFp%szYIX^+XWE2!1oUe)ET=Rfc;v%*{kWjK#j@Zne=a|r*%gI`ye zpG=5UsCjo&uS)q@ge&wBgn-Wu#G7dOh~xg_855>!gv^hB-|o;>Kd^SKXVscT{O4py zax5=hxN6Os#S6>gZCL7vO^<~aX%nVTpIYP?wg^${0fk*Q5`SqhbrpGC(*{(D|9o~- z^Z`EcU$q?-{i{m)?_^~#Dtbr9T!FxTwd12V<(0qL!S+?AqyZT8llO5pn6eLkj-SYX zDh{Qbvg_&{Nmhz`V7j}~aKCvAyH&G7TS?74YZ9+)#wlCM(lo2OWyugx(wg?86sDnj zW86LPZg4zSkwQs#i|+6NF7(OR*BDJao`AOlA_qNwjE_tMSS*Z#zY)gw$3mVekX(gV zY)ZP7K`OeyalJRqHYt?&*N{jcB`fFfpP)p{D?i+^e7@TSQ$%jwOlz7|o;_5JT9+Ye zINUnJ6J>a!^@m|GMuc39S1Marng*^PSgo)KI{L^fjs)f9W}|743x-#UZAOm~fDwnF zy}qbR!&vP&w`O<`?{Y-@AGJC(Yz8hL1Zwl;yNQhSWa;2EkS0~v7mS$~;cLJXpr3B& z=hpkNA^@zyFyf(Gsna2iTwm6xP35CE2R&mv4o^74xt!)4NKWo2jhUxlL1tp3=%qIG zf{}kwM8J>>8-V-4P!Z88M8}{Xx#o28Q8r}~FbjTSSaW8=)P{!sORh4Z|MEhB;Jsq5 z41(b8Qy-I3{!e)%6URN1GIvyl0l^C>7#;+V=h;B;Uc4(Z2;K{Kbr}Tjtx3266cD^w zT>!zGWdp%WuDY@yc(XbWg4ef@7P_ZE@bbV;AlDCfo0vu7Y8$qjAoo9#5jG-5%QcKL zvZ&84RFD zOJV`&iDv}R>sQr%0KMLG1>5Z$fZk81*Z}l$i?J6ffF80L|Lmz2fFAFj#8CUk2XHe6 z1ILMmf&lb>csEZE2cRcg>k@#Ttkf9*z4l51&}*-hT@mqz?Umw3zbgNIQw4w?{~>!O zR;TL#dSV_-0KK104h^7ZANu71=uul@f99zGdSVzD=n6!3c>sDQsa+0$UZ#mdrZ9-S z?tzKrbrm0GLuXtnEGn>>9tw++&GtlC6jC=ywh0ja%nv0_ zCI$R0KDZ38BK&JK>5F|eww8u=5Kzp<$GYY@0 z@!CuzzoA&l(Vt6>EzT7PQ+{p%=0H4K=tep^cr7)%pUBRJi4oy=%{q2tCRg^`nem?AVzWjN{-V(C7yr z0r;6bJ54bCGgL60+s_NuPZ)Yac%{dJ|>-3 zD=gHmzlVLDY}fygeq}zJapDm%lI5A$G`oHh`#RkY8-$Usyj{=feAU}l#OmTX>5Ws> zQ?&k?b1AtXKe~dTo0wZR+ub2CANnP1s-3D1_!$9tCj1Vim!RCR{yP`v~s zT8`s)s4w>lrmr>$rt^0QrVBgy@x-P)I2=s8vZ=-byYi6Bo`y1=2z=w~E?*uuBNkth zzRdMFpsw9`6CYtGK|pGfW0E>6!4khiBdu2+$4A(0x8u}U?k}V!;da;xgiJ5cVnuzO zY=?pmP6)M~LhVVR_7pxiF4PJ_?T13`-*D~b!87@AS0=BASqo~ri zBVuQT!cSc)Ak4n(aAZ(w5F;HRIGbaS+U|!>e}mDrlWxRy#Hj`R`gZYv556a75VJ*c zLx@7#y6*ymTVLiRU5sV>F9!iwr~g1KIPFh?fSYN+YzXj&Z$E%361WifaC-nA-{4Yl z{9oqo+h^Euh^Sl)6LLf5lDtE1Sngz|Mrmf3VVSWFXiuwE3h7v-)nR!;BGWl3#;JR{ zAtWJ76GZi=L{U981}2P^6xAEmbr#j9q>Gh~^Y<%N-vAR=oCB&LygcaMX_7`%mpMO< zZ9&6)!rSu1M+3B%S%QP*c=s2K9m25=ip!w+4&zxoy=DaX#&KPdFba^y}b!9$M)R=kw{R zuZ{DOd!u({yB%;o?e;<7eA?~qa6WP?U2r})N{#d3_}LZmT)_}=KI9#qoa8~^d>&c} zuO}01@e^%oX3s<$4wYueU|)wkHc=ks!tBw^ZjsB9JT>W*5POYcDl3Ua@(w>#5lYbg z>Ni+jhL<M z86K=n3ME>Bjlt2b*cee=l(8`xmZOt%JYZuc=4h}n$Fuppb{QM97gULl3gGm*!N!nS zqENZP#t{8|5ZD;@vM_vX%wD?!8*^K>gUi-E-bCw07n=YZLk{V>$zHn>8}m>R(Vq6& zrOVC(Hb%Q>=8BD3mFp23Ge37Eu`wLKxPn~_R~8$S_%*RHi6f4Ufm=Pw->SgI_**G9 zW}+=@f=!E!32o#9T0CQ8aCA_MJ8X=}9X1A!fBsex8-t5gU}MNUFTuw2<+7S+urdBt zRv9L(3(lP;ic$ck}2S`tQ>ktK_wpe~?bfw6U+A@kv;_!DZh?2G+ zP%Te*W8Z6rO073Wpw){vMxfP;HwK9uz#AjO)f?k;dPRBh#>jBzjX_GgcD*rvm*>SB zqqafojd95`RBwznxDLeg>4nHI3n6bpq6;;?0UnTVfZ?!JGu*OOw-pVKtvY9TY}K5` z0okfajo#R*iyPdtRZ|=OwQSYIE67$oU!WQ})Z}}%G&4fv`wVa7`;1|e@5_t7spNZR z#^H&4Pc$FL&UK7@PsYsQlJB>c%cP~aayOu8QrOie-;Zg$3gr9fM)&0V=<=DRKPY{( zY+R{NX-mn^N`8WWx0IbPi7b7vL{}12VkntXvbrp&q;I{Nd>>aXk?*IjSCH@V0g&&f zuD_z>dnkpG@8K&W-%njHlJ9ZxBS*eJTFw++f@MEhb`6p5^$#ejE|}VXA(&okBINt5 zG8Os$S%~mTzW*hWP?PUpAYmHv{cZ^KO1>wrMjG<{mz87~6}$MFB;S8gG!*hZ9r*@D zzNaQJBKiLL;=z*dNxH$4?-Q>GmR|MrjFRXxDysn{h=Hu04hF<f3ziXeszZy*Mhan8^{49Y2(kp?lOHuSJlD5^b2WV2f3Yx2mD zFg04&000H~wP+*(3gS|lTY$nGEkL2|x+C~^=ih?s{$Jnee^DqJ-HNXF!*|yI7bT(v zXdy~Mi_ksj-_T;T1T96$C>rn|RMP;ZQRiH}r0IEXO$c$>x22_hSqD^Qs+Jd&CZKw`Ci0Y9A zHK0b+gsjMhn$dP-M=huo?La?5521fY52Hs=8~QPN6#WD}h8{;xpr4{A(SM+)(0`(x z=x69@^mFtK`Y*H#{WtmrdKNv0o=3k#|ASsYze2x8yU~ki4|)l`jDCY&L9e2A^cvcW zev4j5Z=m0yH_`9WTWBA88#&M)(0+6P{Sh5RhtOfvf!;w*^e6N#`d@Se9YufsR^J^9 zuaE!V>3>NBoc~2!Y-LqNVR31}^}hNx{tM@sUu$5XxuPa-ogr>rMOi_dxq4G|+`^Q* z=PzBjAdpB@6|AkOFb7`mv2UOM|J}1i|Njlm{yY4iI?|iEp?P0#;>PCAu+7c2x(7(u4D7T zbF2&c&gu?%%b;_g^Yz9n>>;mc&>fAqLEi*kfyQfJf)NaX>cBOrsSX~ydABpEiF9@Q zJFhqXAwdKZ-1^q{-wJxm=TOIHqkjGp+$y2m7oQAgLeuj51+$+}N=_pqR9Y4n6BC1fH*ztx__KB+SA~zO@NpGBuENJ0ffm4T zf4@OBytOs6|J&7AgtqPMzg>+*2(Z!rV{BS1LVtg(HMOQZxuQI+rXZsrKW$x2QdMzk zu9;h$Tb@*~HaWNI?#im<+)ayX$`{v^-d$6aT2Q$x&zw@RVL?G2PM&JL&QqAq-H3m0 zV!!e?o3+IX`#yo&bT>@ic7MjU7IY?CM#HHyaPznv?&0^6-c8z{^m@|aq_>jzd`>@^ zujKR-__dsVET6~e{rOU`X^i0f$YAJGv)R@Z%Atc=fl)TxWO);34GL ze*VX? zr)FXiemo}`9|H7&wtCZx#_6Jg+!MGyt*ZLqL)>dSn`oWhxdi8d7`u+=*iINSUAYjF z!1BY}flG-!4M6_i2PlDw(>>kfQr`&1ikQS!$Ver1&ooH^tD(ub-$+SdjD?$}XK_18 zX~c^_$NBH)zlXoz;C~d5dNWeLXulucQD@NOM;vU4Le2TH=v*kSM<2?<#f+OFV+u1T z)|IasW1&J_{4QcC`slr+04Nx8y@Boa085e3EXTBaJXF|067t`N-cb1#&U@h%L$FJ; z>3Y!HuP-KrGb0;ZQzEf-5tiuUzsC;GCc&Yw<`W^k7pNYP9$#epg*9h{bU6Lim10QB zI3ei&VH&J>@UOWR7g+>k!wLb z8Bc&<@`6!xYYf|i(`RT;moXkfbR>i;g75yz$oEA7a4?S@Jlnh2 zNb-u3^CDKd48W~Z8OF_@vq9%m4=n||Ru-fe?>ERMP|juvgcD<5-S~RQQcg2t9LNSp zvO52P1k}}_(Q;XEMI(A6Xkvm-fpzGIFjCOr;Y2?*DVK%>axdXKT`vwWs(Z+BX{k%k zP8KCkC?)l9E3-90#a%AcoDj^N9b4s87gVX@HOp_*9!fONIU%HXQU=aEOJ`@N6hJN_ zSU)9gI^8drPU{5I-?5f_1_`DfPTUxbt#`w{5A^OvFavs2X;fxO2K;sQ27!C2A7s76f1$mH-xb+Nq z;^;y+x(cfpqcu&R!_#eSy1+I7ckdY?sVDepu#}BkN>9W+niMnca804@CW@}7_qCYM zYtm`)w8`xrtGLPS9%%S`t05utxY=VhF{^i)hbx(;L+VRHra7fNydn64;*c7ppIshx z$m)SiqY?B>ra8M@O{Q6}+&h_O{_-J{Y5JDaZji||yM{of*`*@WY;C@>WSU)rC)3Qo zk18o6LZ%_gkd_$p!y=}Zi8>h$i-GY0e{N2d6f%68r;&n)c10bLM2`+IjyZzGR}yhW zS;xfZ&=FZhV@3uf9*0dMx(Mu-nk5ago=nqEX|H!t+>MU_wKbWk@)hvzCg3xgG-SVv zd%*;?po!BTS2n^cG-uB`*1LU<3$%O5?L<^u`QB69cP`KzI__zpIdlN`2+fHEXikVt zhUSFWsD~6AC5=J+r&c92r{X@)H=(Xa_BrCnsbgRec6s0|k41&rn1g+&O@4^fcSTLM zDV|tip|&G93-{9f{px7yTq(-joCXzu^4AZ8K|-#Dk;i+GY(MYk4{}|)HoN9kKt0}2 zxB5?rTYVci40Ws{_YZJ}aHnTcZ{BbkAbS0`F$Ztr_0RTM*LwYnqX3nZy#DC{z8*J? zK<(b}SetN9)p10p#kbjsZ$JJ3-+uf7zWw+EeEXx*_%?gk))rm7x2MCB=tV zSX~S8xo5Y)V3X0d3@xS7^Zs)o{R^B(fRU&#tiFYs1QE}BF(EC2`9|n&^-z*=36%yI zfM}RRw_eI>3807~X;fyF9$!yIn1(9tg{6N|^#8|dlAH-B%=&QmxzeyzREW=N32SKK zx38;e3leu%Zdj&) zqA)y<6Z<(2PvZzI|@o^ z$GH=LlsC9WDANVIMnkFz%3$4T#uTGTCaU73-H}LKs46Z{6*oy$6eXZeR)(?py_e|I zlkFfG+|+_k!(-%9X=+iZ|DNqFvusz!-tyV`YbuRkrTG_d1 z$67bG_@uC_?_4yk;VL*6{jkBkbJ6y-59d6QGj(lAPHxV}*%!0_fq(y!n~`J7Ii9^H zyEuDW_J-`=<`!qCWUHNvcC3}0i#D!NI2Yjqa4y=o=88HOK`G3+2);7sqK#`r=OSGE z$T=6a<*~Us;`wsd+H1(UXnu*J>Vm0#vtWA7N}P+@b5+hoTOh)#b5R|UP&*gZlQ4~Q zQ6mI;buMC4a4P2_x?~`A@ipmOl(uRp&P8Dj)ozdZM z(o74G37AbU8h8m29+yXFm+xf$w?5pl-WNOZpd@PHM1VF(B_h6OjJ*HSxjfY**Kl0F zce!=_-dHd^*Y8&?!*cyDY#7k>JH5f1>-Ry6d)Mz?%fHa|TXot;-t}8`@@IJ^=cy(` zXAx}1lKH_qL9?D-4vQ%K&K4RKRo5I}->gO%)i>i%xU|K~&bOG&Y0h#%8EHzw;Zt2+ zCCSvLm={$eMT|J5ERifp`RvY`SS?SEV&&PWtKhbfHWO~k^F^#C8g5Ibja9}Cw}r;NtmL+2+QM&0 zbd_E1=qmDS?KMePnOf|Hu5wGGmag*W#-Y+xF2I!~o=;D7l}M!!@+`D|ggiwxPiThO zJ=x+ir7d%8#VPF@%VA3UWQ#lt>lL$$^BfSfD^Iw)$Lu;wN1%FcFuRJn4Gyy_O~pS| z5`VIVOvU35n2N_AFcptKU@HEp62bJ(lY;47iwDf^AIlhK_mf7z>~1TIDw|z4uPmi( zRasG4RT;zMo@|vcyC1a<3bT8rRl@9k(kfwg&$bSL*;Vxvt-mMC?uAk}m|Z#r6?VE+ zLC<}v#0_Sb33h7)PqvCPXk>DFTle&3Td{&yoD<1xH0ZuVjL9ZV7y6ENPPc67zKa;% zF&aHH@{v_*S$YhSp1urAFCs#|vJiQshlKQCIhBaNCLc1r$;!QflnXoi&_b0G0Yu_K zD)EM2fVieEvODVzM@tQ=J21C)1`3}gSDM-L$N`YRsAyH)0XjR~W7JIrAk$;_yHJYM&(PI)Y?gvgyER>oIR8Dpk=SSQ%dlNJ99 zwQS;^i2Ezjvm2C`1M3b1kp@uRG@4z;hxI>o+*aX06=K(rSM0g<^qT#k>;b9E-k*z$ z{E(}ayM!1o$%iDRUQD@O(U*1a>si{X(0R00%D$wJ1$dUGEBo*<(uX@~AJSC*sK{XtYd(%uNtAM!En5BYd>Fyi#1f^{4L<2KfUQM|O$ z_6&O{Yi&=+0*1fa4l9sW;F{SwjQCOyFV$c@!cLi71>*o!l;_sPdNs;#^Xzd!hw3Rk zIzJ94B3&q%-csEl1j5EM`v6&&U@`B5DOV5!hJmmshN7sO*H;>KD>@7n5Hb(o0u5I`$anTGHLbqT68wAzvLFtlyM)1R(ZyM%{1ZZi$ zpc&G(FBEFd%6$)-+edcwVed{1?mJq)L+bFWMYD~()>#?hhE#KImDvziQ(fh<G3scNdI#ew7$X9XACIBsn-Q2n zU<4#cMi@SHV8)q2!X{#_468x>pKOyf*_!5ScjJV#8%v+nX5DPF zvs+CdT0#;xtxe(wd*1h)bLZYWAAAT&Y#9{h-gEBxc+Y#zJ?A~Y_jhs%ljAc)Q=6A$ z*zSTvJ)It}y;ZEYIUFR0$y`yE9KT*Pt+lX2FUdVia=cMat--#pr5-c2H8i+sy5=f~ zvq8*qH;IlGk5}|Moub3p)MG2J1aLoIeuL#WL)3e;%MOYutSbHg{IHvlbPI2 z6D{pt(b*`r+FQ9$O7e*0)}@Q3AWn}5q}yO`YeBJQ<>cg*lh6z-N3dS`S=M4A%603- zY=^Uc53jr1zPFtSyaCg#$Sy7-QH)})EEw{%v)xU;?`roz=GoTrY7%9Gm=86yKR_e| zspnOh$|3cQVvgJC@vLE~J6hWIkkG2!yzL}#lUDGMCkCZ~XjHyLv^=>c(t>I0M3YAo zW-6yaX{7!4*&HpTrtYTpR(qQl8-9CMF$qkkh4k8XfoAQqyBi(O4oEoPRGde`GsFtg zwyn0dPU^0NUP&apgoUqXh4OZ~>>chFubsAYMFo*Sno+E5IuG~h_AfVR7%Q|o+_5v zZ4GOjZH`WwFVpu`d1aP-(&p*wf)xVEV_k|(X40nVX=1k9xrbEJ)#8H8Sd!^tiOt&_ z6rPjnT7$C{w2*vjY;UV4(Q_?C~wqY zhECe-L@^L?l^0sdNI%Trs_V8lwG$P@A&w=8nggkp4JV` zP`zdWq!e&KaXZ#D$5K{iEv{ z%a5EIDgRJ1@*fNrv~cGKGOsY1m-T%M|>j5_rHTOW;)<8~2OheK%Zt9lk3Ug?X@c=B0{_{P%B-##*U5Phev1TkqT4KwY9iV#=CdrlDk2tLvWU= zg-2x1H8{Pth*_X>v>~ZWg9kaRrH4#2vyA>Net5%jqoC8VGpq+^BGgKkI1-Ne!_Xr^?t+?9r}_Ouqje7r z=_*IcKVvQmtGU-p>>DwGj@VR0>c|Id?3GSeIQWJu9XjBAYB5&CNEtA0@zoD z1Mhm_&22gKPS>^86B*-81mHpq^tsFp|GcppVE#~ano#P-v|!ju!)FqDInrAUMg;Pm z1CL}}f))E8;iM#H0-c-KEe*Vp1<+qZF2kAAT=h$@xnL889j-Jt@!J?tfQbH%Z2!7! zo$g^;17_BpoA|?ET8y`nV;#WK29mrzmws1!jzNCIyk+Te<%)x5=s~ZbO-s~=jIt1; zp#KlH?Sa5rnKSe9ux%sCCT zSnHbe7^o-iiC{1oa5{%ZoevDnZ`yxJusn3>n{WtY9LADMIzg`qO~$u|%NP%;VFyO@ zAR2-IN0dnj)cF~?Sh-TlC28}gl6tfJQ@AS&lRTiyCs!oCc3=7T65Utc2o;>tePvd; zo0SzKH)rNWGxNWh&&+4$GxM4G%zS1(f6D9s-=*;N|L&fvy;r|W*8jVE$ok*Wb2h21 z$Iz8a*8hcM{r^@SS^pPGip9Q`?Cy{>86LnxWAFfm;rbgK=$DY$557#0y>C#8%-$Eu z)wkiG|Lud3srL2;x%#3-I{Vtdza8X!e4#{z)5Ophi49Lty^B!2uLN^nB!)h2>T$a5 zXx0wecGfo7_pPmWwt1WmyWkeKYynog%*=RU&6*Mtd(9d_TxI5aJV1GuEVMb>>;hV| zh0S36Q4-FD7`tVw6Wt;tv*q?4_H#&0C)a+6{q(Bo2l4cv6;HOzl*@ZDa@{3)_W;quqmst;hiMgF14LtXE$$$&5D)2Z}(C zf9QrtMYR}-vG8#AES?-C-lDuiz{dkmRByv4RHsM>j8{ZJ-_Yo~u+gbuOeYNVNvUf% z?u-)z-4WTMrthbZ-W=E)6L8I9Nu1teV*EXIJT2;0MlC}h2D~5Xe%jqnny_CtItoUj zSTn2Xxq$aw#7FG>FtGh25^@I=QU5pejPyan3n-Y;VvG(hSLc=njPLpa#vvla_W_uD zKG1O?&~+|w{M|Q2Q())0!1i~^6aQXBo(QzR7w``5e{u_k0L9pVRf-j63v)d)}|0pok54F(1Mih%iiApZi`Ac?4Np`1diDW?#rPB0mn0u58rl|D?PGR)RO z#44RB6r;)XHTHgpbn>B9OK7ve*+8sSmP3$VH1TFLe+(XB?*&|gnVWy~ ztZ0GaZVncAQfVs^RX3|z7P3B2U05lYg;HUg&?dNqy~09Me_>bQ(}nc+nZh_zoXH?k z$T-3#lb|(XS!<|DK&o~w(DAOmDg5nHO?gSrkum47XP}=2y5jyv2z11Se?EaWIMJY? zfcJf9Z`KpEO@Bw!%2VMjV!c)?#Gbs6!DprFl=&zl3+4HmCnxY~DWteeBEx4Wz131# zkC5IfO?f##ajW8zQcDaJrRaST=&dvnBhy=vFcrPk@}lVUR)(Sp(_8(P_AmvZOWy?O zt@>2-R<54urMK!EKfTpGCA5*Jgx(5OBJu&;baaV!0C%7`;sMfpqXpP^eMTnYD!4p6HwMuufYk{ZpzmH$Y1py zA>$BRk4=D3{;r|Qe(i9PLklH_x&H9nzK0=OT7Lmm~;GsjoC*co)x6=wC$ffO=f zSZ#B6{M!7ux!3$-^Xq0z?NS0Qq5fWaDbh=zMGP1(&(i-zxZ4K(e0n>TJuK)Ck&Zr; zY6)~*9TEyUpQY|zFO`Cp6A9gwDU!eQap2%G(X-1Ko(6MP`npapP*MJ(9OphvS6PZ| zyj*TLt{dcImrP&DCY~4RtSxXdu4~mjWZ+>tc(mQ;$?bk-8%hk)NOJY?d$}>_3(4Dmfuj9*m9d-RtwEijQ&f^}a1*g5E25At z!hq_eL*tchw!mC0^vMVfXA#->l&SMI(FZ^|F2%Ao!xHlmE%*c*M&zMHQQp9D9L$fC zv7K}PS~ZMDyCWxQW1X6hfD_yURBf8m7Y+D`ZJ}s%W6W;@##!CWPxy3c;!rpFJyPQW zNOyKUDh9j?hav0&ghd%D*fH*!K`4Zj>R+(w#vrA_Tx1F+o}@giT^Z$oc$5R3h~hB+ zd|65-$8$5kI3|gWi@EPK<(gspxT)p*Hoh0w0gfA!H77c5T%?M|(oBuf-=<0xGuHR8 zJ<8<_;67_s%l)#yJ&jG1mv1C>_Cn8KZA_~CMhShPMdadAOXJYQhwzh`XmR z8h20Mq`7-~tzT8{9=0@y#NC4$;D4clarayX`A?R+=dm3@?w-OOVW=)JvoD^z=N;(_ z;OF_um0fkLa%ts?%1xDNmHVn!RK{1T zxqAwC$lN^{+ZEhB%HLzhCFyXS;;yxcwb-1rX$cTWqkj=4rPlbZ~&PG4AJ zom2Nsj##Je;G~FkZXKIgCnhSf&JQ9G>pb;k66>g%ed>vIRE@tSDzT1c#?NV*!SQ^{ z$vfdcL+i;?bF$D(3>dGp2aH#H4eh;29lc}%te!{*(V%?7js~ZZ>^B>C()(~XIhpxL z4)QrR;4gP89~>#_?1h^Pl{e{c%#_{)Q;zKY%U|Ivj2XLF4vNXV-(MRnioBxu&0Te2 z?!rC^t)DtMoC0sBvsAe@3TcegboLVcBBCQtsumI(_4bgvXr*T(S6ve`BX0@eW(rYO&elS$%ySKk1Ta&O z)zBlh@Ydo-Y+6evTCqqld5IF`H(nkMMxb^rG$X~X%1~Jlxxi@XWjg1D;T=~&AlEkX-7(mYWM8!l8&X`+c6n4|N8pg|lv zirz=wyoG-jN(D7obwz!1*3M)O0j~Sw+pIXe>TP;d55X^a#RCWhucB5yQ(7Li+1G>3I%StBQ zcLXIQTlyIyUw?a`>(jvT&%^~GadaIlZ`!cK^u0-5Y{Rs*_VLzAY4i~VUmZ9(t4o|e zQq<^U?^g1HpXL8~1HDQfDQfUx1NpBs1l=iE9NfD8qk8KanvoP9gC7pzZ&6l}Z$F&= zc?0J?W_%G$Qm0>U0COo*axx)1aiqcUV6S{+SmJ{~GVn2-!E&PETIvcTve1!6rI|26 zE(msTy*KFQB8qqt5;AA#&#U8cmlu5}lbwEz&LRYDM#~h%%vYn?Nhy}NWb&J{_5Nq; zb#r{QY&iFZ#Sy(k>xJ&Y-Z=`>+PV8cUZm2b@w7;L9MiZ_d`gk_VGWa-v~COJ$EuTa z>3^eq{`1k4W}kuquGvQ!;JiIa?j9`z+@NGQ*&CSwjs*XzHyi_8VF&{peWf(}I0GEX zR>1&=GD8Nqr|hgG8V0y#A1h241~?i-t1oX_da4Rt zaB(?l7~-&az!0}W*#hHXh+C#)h?|5}nOmrD)>^2yNI}zDh}Q@m>?X2a8H-p<@} zuP>CR?=tP3QF!|L!twM41$aa9^!b~k@bsNMsO9NvpD<6~i=dgjJtOh-EmKB{i5O|d z*JsB6XXZ2WnfYk({|i=d{J+$5+h5&w?9@oP1o;2%p0i0kJ%-0P{(p1TSor@IX+nPg zV?g}B$07dT3qt%O!}?#D5UhXRLI2B9VEu*Tf%O*xtp6Xscv!#E&0!o6|F@v3UulSc zBz6ZN>Je+!xNCu933307+aX?{VU4yHhrNNGF5l|4?GkJPJ-xo&)c`~f!GIN>Ipm*v zMSc8r!2ctiGJm9p{b<|*jvQh?8n*zakN)hPaSI6V7GRY=zXr2MY8D%tiozqMKB!`% z5FM(=kc)%P;j2p*EC_gF1MWE4NX$q&0L&5p!m73OAY@3!t+Zb(H0;!o*=zAN`86wqycaFo#$f{(4^Glih$Q+6rb_^4QDW=$W7! z9ZmcR1bm}FjhMV8@l`p#UZy08GdKYr)FBKi^6Qr&EB%JIy6K6$Kz5$b@rvw_Elzb( zXQl8X@n%IH^7?Fd6*C-LBOcMa*vF6PT?{sg&XS;oI%Tm>KB5=XxHg)ymZKz15c@e; zuqN8%uOTQ&ysJe?rWA~glI&EVBs&>O^1xP(lC-K&l2Sgb#_MF1WDsn2tVUiVTc;X2 ziLxCVIytZKRKbaY^97>?(+{2egXy}UlRqg6flmIx6csv|VGRSF?2QDSJhe3lo$T%5 z$s=^~N2XBd@LMO43HxhKxdYvfAel$+|Pb*N8|EoYrerie_>?XfQ zYI*@B`A)S0B}u~0Ll`Ya2=wu#trLbmvJQDs9+M(NAD=Et>AMl3k9{2aXbl4WUI_yI z{@Xeh(C@ukHPFwh0s8$@-BbeoJkfxDo=F4!TqR#spr3GmRG=TevHVXIGoasTkpE>Wirt3PO}2&M=k*9cc*z;fqsw+1Ny;N2K2kr%z=I+`>6x^ zy;Y_J`n|X91_JtRvZ;Z7zmtJ}_ia-F{f5T``h6G%==X6rpx-BB0{w2ag#!KVt_uSF zh=^}Upx2Krg25$LCC{OCZxV>K#0xe|E~l?*HC%AG~N z>#yinum(r>kOY}=($C;C8sOG~aG6Iz8TP4BhDQ)(c%(P!XfK&-ju&P4%k2|H8TLg) z8TMT#$}o9*IF#XES6(;Duup+9>_e1c-*`}lePL0CeUVXyeW57BCvB5P8RDuK8+jZk z!{qH@OgUPVq0)xKAR*uC*?d@oGCbTv?kZ7+!*#N;C@hSy7h!~NSE~nm4kLWKS_>mY zGtXpTgeZ{-!3bZkM#Iz>4I^ATUKk^bhCZ5Y&cg$U>aWHYFqcH3Yd1X0)c6d zh6ASc27zhTFr*Lbe8G+*eqCWjMbZbGPus0d)S_mGC4JCDj7<7K!c?RW`r7EE4~uFi zO!`2rOiI!R&jd&xJSx(M-f1R%@Qk1Ip}1~pNgqN<4m9(C>jNIb$enUP2|PT&fQN^B zlD-uJJbXnmoQncHB*B9d0v;ZafrkfFz{6e{czD-NRuT>H@PLmMCJgY9h7Br#hX;Ji zNzJst!zXsCfrr?2De#ak02MH#sO%6ayJU8VCk`qaWx`lQ>-Az0RT~)SN&P|o7@pLs zQDMFV*^D$*cAmR`g#aZv}(dYQPQ}G0hPuB6qROxqVgwGm-fW5&EGtn z_V>pIZi?A_>FA}|X_t-;EQ#^2T>K0PB7X*+UJP3$>*HhNV7O3klu*T?vqCalobekL zlkw=2qi|B{NYVF?&4Ibkob~zS*|DD9;0`spG3+?-BGd_l%N)40P$q znwFF$V7&5qz6l9GcvHI81hm|l!I{BzR|Omg$49YZ7L{ODalx|Ct}RAF z%}%O^i2^b_l0D~p-FrI$XKHKzNonWa?|IJo&N<)Xp7R|RYnJWpnJEKN{gVGjjLQG7 z7)3XvM^|TvkK8wae#rRP3mrT&7qV`j>c%mi%FyD9z18{Feb_bVQklSD8QB`(4|Evr zVl-eoMScn+Hi)njR~aT_kmE*bzY#W8d`ZVI^tg|frnoO@o{NIs9GMs7OjuQ0{My(>%WUY>zPz3o0p2U~lI?Q(X3%>bn3 z!mMBIUNHFk{PfYqj??qiTVUnIWR{O3dxSAaCIDsgYrUuD%S5qXnt(@6vErw9r;6Q> z`zI`cNqsUbv7g?Zh5K#%pd(GKl8p-XM3NON*|QsaOEy)*e7RQ3GdGxuEkbE5Ap(lC z!dSr6ws;*KRYpXCCW^~U*#UznnPi!bDkNAETHKQf-7`6R^7GVwo?$tm~Y)MmOUU6zib+%E!1l*X=kZ> z64Vqzh5Eo!PiFNyCy`XORXyFZXAR`Oru{Ho6MG$lkC-vc5&;qC#pqt!(roxmSRj`B z(68-={YrSn@>Ia=O^zP2!`Pi66W1vMpTrQZKs%uG}a;wC{Y%YD>J+U2%Go;^DZMEc>8 z^Tp{y`F&;;fED{eJPvP0`~OFNBklj6)SGrSy?8vf;z|8*?EWtOwCgF|`O62rq|e_v z;2bRR+IswE`~T6c?c==yj^1Ng{`CB+^#%b0jt$HrvW+-Om0J?`P<*kd3W5qiRf~$xQ+Q99O>WJ7ihZx zuY+&66EYpi!V%%{ATOl+5)zX>JmxtzX~N~dAqaso(m%Gvox1O7<}Ki*$F_ZVK}2XD z{4+gDSnOG{aOsi<$aIoJmd#takSr=%LA2B~vTVg2Bu69J8a&-eyc(HS-%y9Q+;dZS z`I1eh5*7OpBP5eFA_4@5!VMTFmPIlq7z(yQMkXfyE%kK`VU1u43sp?2d|_YBEUg;a z_Se+7bG2ak*04XM6&7mwX(My%HD{sb!%&NL^_rX9u94hPN@0QEmT=x3npfKl#j5HW zNQE!tC;pJHf;4SJ1S;#`zo4H4sz@M6!W#hte+?F?ft1EzI8Z~X0%Z1VvVA+5Jef3; z9VE0h81`-9Hv1(1jyvy~ad*KzGk;9VaQVhD<-ZfWjQ2R zr&ZL{g^(_!qOP{q7p%mf!91!lB-GagDtuvoWg1x#s1EvSw0yGA7p!iqCqHQngozCL z90&q&8(9=%va$i_JN>?8E46Tgub#{+2g;HMmWbD)nmS(?yYp|U@H5{BQXHs3kB0ji zLjr{*JZgBAudyafFf67iMmm{S<7=ozper_!l^9Dri0~075y26HjZny7fd)U1d?~^l z3mnlEf_qKC5Ny(>0&F6RIbl4*gJwdhfI!eYS;du9Bz0(@1Wt~$0B3twn!@78A+qK;hWcorR zg}xXWPhW|Qq5C5V^tTZkJs6?%%}6tOJFwO8qFEg;uA+N7?pjS>?5KX2zT8o}jvnYZxsD#}xOF{!yJPNp`fkVX zO6mI@eWmo{jz}3j(eY6k{i5T~W%NwPuYL579l2}ipE}yt(7$w?SxqnE&$W(mmE6my zWR8b9Rek^Odr$Q5Y4H8Ocy8!B(E2s=UZ{XAi03I?8WXtv!aOYdpc@?)`P(Ba(Yfz( zwBZW>&VExV)N-6u^^7```6CZ2jUSG9g`cj&oen%iHek(~Hbcf77mqAyvp*il+jH|)T#HQ8S_8r&M!;C`sJRn>|XTrG_jTq}we4B7TY zn=VG1z8yUrI5#9Qd3;j(I5!nI_20{^G0N{*W_&ZqZh52E@*ZtG9}QoK2G2*UF6=wl zd-pQ_xS?-uYZ9plYz~E!mwmSM#L^Fz4lgZSYDS7ZZ{^SQ2@CG*)r{0d8ZG#iSfW0m z0ZFtq|L&2oo?I`wxGRhi?A(6p69%t?K-b>EL(HP7bWa6pmOq~&(aUMU(UFey( z)ZrKrSVw%XOSjoeiI6 zA|(G1lj&f$XA81eelfa!w(0m~UN}ivNQu$LY|gjV@}_>oo06{?(UyzRgWqZ?f^42$ zow4F)JCn(getQBIybbjY2JFF$uC6!W81Y` zq8q-BuKoscG9MJ;eec6a3as+Z-&F-V188qfCQkdhbOdgk2{_gsCH?5erxLyNmDdmK zXI0ic%&M4kIn`Y;osVSf{&RYC!=>ozzp}&lb2D+Ew%whIgL+OMa3sb`&gsYt zLR}smsV+HjZjBXh>2wZuqvu|_r>Ps&zs;GlnDflF6>Q#s$>$Hl&IGjQ$Czr-f-^qv zw&jt3CmE~;GShNdc(^qrS{GysycO`b=Z!-Jc*6EzniKeS4~Ci``4Gu}v-1(qNv6*hia7Ly3V%x+>Omvt|7lDUl9yn~6ngLGa|cH^1d z#pMvq=P(Q2xik{zjCFi)kDR0wn!Jko<$WALX25yUb5R2P$SOW-GIY4EVKnD44_Py@ zl0jW+GiGeFwslkazJu<6urdG|~=lY>DtmMIanBxj+cXkO!yG09pYSz46WS1vqp}lAcHg9$(fao zBeDJbwA$6u=^4_Iy(GV0MShiz3+`gi_D*qe0MzCmzFBSl37a@yuR;Qh%lWq5{$_$Es*%l^d%zU@t>QR`_b&h==CrtsN(vY@~ zwl%+>Z^^|Ol{svlYvo9ec-m)Jo1SX8pR8?-t!UG6MN(R1okn@? z=(7nbhFv;W!$0smi+?grj4S!UG11e|Ia2Nf&3um!2vg8>VX3~2O)b;tJaha|BYPdo z&hVCst2!*M#EJ)+}u@v5+NZRGNigtUapK zwPD12Ksj~;DQ?Fm2Qm%$5gh-Zw15)~US7@GFn<{`Gi;oJdVOLN$oiMOJV5$Hn}Jo8 zB5rKO>@Kx-P!NgHQ>by50XnA3Y%+?MYs?V*lVK{t9TT`n>!u|vbw0Dw)U0$@;&LX) z+Ix>Mzjhtd<*YWclzR^SV}y4h9P6ej^SL8-X(-X>X+0b$%c6#*pENXk*-P*ISm&i+ zVSz)R9w^I=702{c9<$R^-|0H4JCEu;&#(7{y5(&Y%$WRMX>QA1Yxrg|$0rsr!bt7; z^@fWM|6s_>oZk_G`h<^%O}cO={<1~L_oD948k7*~K4$i;!RI{a`K zpg1PM){r?S3dg;nLbNp$4rj-C;=Y4un2b*ag%&f>0(Q%lbfRD!sdnU&7AzGgD3*AK zx%q}5Myw>%&CM-R3ld}Z18tQL%UWrL{TeQqPIET7G>nb}(qo>wmr1Mqcz3mZYNL-B zO|rTzBKyF?3g8-uNWpqWuv;FElG*DEXQUhSAX~8L2(gkc z7)p#53=_kB1C1;*%~XL^?mC7UPf|AZ!o!lMALdp%hRg3zlNjSk{4Fzc05|Jg zyoI)fX~3v>k&2SHmYU0O{d=!8el2uQQ?vO*v&NWeR@dW|2KYcJ?yD9BBU@*7_@9?r zjH;EiOp`JqMQD_+HYthvKurv6L%>xL`ZuGkD=(ZZ4PN;LA<@lOqxIK}3y_#J$Qpt; z!o=Z9lbY3FZ)J-%BupBOPIoBcD zfrW~YXNJ}0zS)_AS6sCzahiz>p+R#Y3WZXkP)a1OknBa>xWaf56e+(F-pGt=8+O0+ zixE90j$+JFSY}=p;y~Y}$d+p{NtSE9meYs$+G2`gtoPKqaDsG?FN|M*#B-_;a?!$R zVVt~Na3^1FkKwk_oH2XLBk;}EjbSRTfB);M4ycDhftF)6JnyTfgNVP+cz;0Z=h{DVjL5|)y8M%N@OiT|mZ#TrqCH){V8CM-s zQ$-eEwl0TlC_mLYz|LktoW}F5CVO{$WlvNu zu21y-CG)wLndcLo`xV23>r)+nPw3nOk&&4%@@}@l`N=&k5b?P7c!P zS+on6=01}bHB+wU%-gV{;sS9|6SHD6))S6HoX*N~8*d$uw=*U5T=JVcKp0}hCv@DA z*&GQyTPi7O<@LojU<`jlB2vyDxw!+9P;oxl2dZEl_*o)4K(t)J1JNsHC%QoIgs~Ebn}IDApBN@Pjor6Giz_fas}4A z!EhadvN>KRv*rx86fWOyUI*HV?1C~j+2C3U{qAJ1 z7gjlAFuCqg#|$t1mjl{u;u44SzP+0{J_R(pfbjOP^S<*94xxUadB?x;CG;gd+jU6? z=@Gm|#MP51LznbCJU>?iXZH+pnjy_489m8e!W)I1!}C!c&z$z;O_icn-J^I40Z7@R zO$m-a#nFGDucI}ExJfffq^Wc)9Y@F0DK%qi$JFku3D%yft*t4kQDf3)R}!pE0tn>N za6ypak2wtg9#@d&5){e?Q2|qS5POCt#i*2$&5jYo5OY0~W*iWFspG{foNCNHzOSL4 zA9z?eJq=hX(>q(RQmVm9$+D?_EWbF&>k3i>AaXz?JkD_@Ay0CS#kKl4Vm`evT7*$F zF8D-!usArt@8c8;DAkLBZmI>{5r}>U(0rx~peQBw30O`fo4bzGaZH#7rUv&o7RF;# zkcMn|9jN=B4;t-^F}FiFw*v#&9Os3If4y0L+hZble{z@HnIQH!7))R@P+#KZe#U`o zt}~q)lPU_HSp@7E*t3!q-Xbxzn8Y=(SjBJ+F;58|yTC>58w~`LnNdAg&0~!0lsYj= zqjj}pzB8GD?@$1$2?@b-6gg8^{+)*0kCz0F>t7I9^oH931N?Z6LxsknX$;ky`~JP| zf7!eG=qRi7{>~)CBtXdU`GzQYCjl8IQP9#USco7HP#|K&AO<759s>&+0!~OooE0Sy z*PV2`J=L~n>mSb72WIBI@BO~d_w&1uaskW(DJ$l${g*jK11a5uf-;G$3@2n_lU~y)z@6Ql6UWEX zVjk?atn_tYkpUmrfT#l6w}QO6s3lDwu=CJ=sDZ+xGn=~pZIkS>i?0^SRW<1Tp8!$& zEbcnozBhj9=``A}rf%%b=;oR1%G(-9yt~ zL`h#otU8xfA$ogMB4nE$GVS#3MlyTvjd}I|y zsDeYjbx^D3i0wm11UaAI?p8(?G-XR)n$jfxGj1Z*a800u1Qn14!I8n4IkH|Mu+_G} z&A?&8?eXY3^#SZ7$}&1~)Hl_U(IC8PcT_w${}F zpgo|ZzXx9{XR$XC4I&?eOSGXB1`nj9%KLZiiMi2mw7rZEt(;Z$H%VI%$|gHEr;Q9S z;^jo~xjv*+d2EeWre@8oHGP7feyu7EASfs~*bdT#Wb}cHC>#A`lV<69~}2jJ;5Krihv+%!nE) zmu1e7rw{I_%rx_}e4nN*zB8FmbnoIu2<)0MJdk`=?t6QfxdQfE?&^J~)3;HUu@^WG zB|}by}~nFR@=2{o6jn=j#a%h=cPHlb9T-hKX3fJU(7pJHLdEo1;3g9oB7WzI9Bya z)#15Zah=HpjjvflZ*p)Dy{>f&@d~Tvqb!M%_A)9RZMS>bW(nYC84QC!=iy~`vr?K z-t)V}3CV#IlAYtT{k)RcQP!ChcMiPgOipWv)qlZiS%$@Av9DQYuM-US#v#c9&Q$nB zoYt4`V~F`b$XX8BB`k7~&-|ej9UV%R`kFQMf?dXMf8~Xv6+uWRS+p-W)|%zQRH*q=yq&?ooRh4!PbK|a z-9*@bi?}9M2bzsatqxeM|6{jtk%k(JwD(&(!-aiX!jIl_rhT__X?J88L9Ssu+jrAd zZ$I9RTd&YM1YiNImFpe*O8rG!T&^_;J@ExBH%7BB_(B8jo?|T9gZ{(FvHdL4vz=8R zV^uw_UU$_mQzzqUx4pfPeUgkhw`W?n?^2DWLlcj)suN(Q!%-ST1Q zu=;OU?LgP)yXk>b<1*el^GI8#wgA4_)z&zlkFV-^R(run)AHM&kTIF4d|-)aa-1mX z3yvgB8Ioq$#xr_705wz9YZw2D98Cxy zH7s_Vy?SC6#Jrwl4Sm>ZCaxuJ4Z9xwtU^3_aT#(h(P0Xf3M`@JzV+%^6pLK)vB+hM z*b(Iz(V8N>yiPqj7Z>-Bt+?Xk&dfBq6V-$`vhwR<=%p&Vj;ua&keO$gj?hGC zsxg-}4Oe3oWr3c)=(}hKS2#>d82zdun<-7k2M$$i(5$lE@%Ga zb{(H3whktMVICSv{iV4bN=z2^E&j@iI>WLR8VyF#S5t5$?CI^Y3ezznlQ&{zug-ED z9T92d+8A-*Zd_j&E2d`DqguH;y!&SQzdR)YH#dgC;bUe4r^a;zz@0(zsi=a1}?Xhh}CMH%ZN;<=33xKg` z>E`<7{eCK(9wRb*mfy;@hFK#m$C_ikT>azfN2-6fw4izk|M&f+Mv#%29*Vw;m#cN< zg>;`FOorZa{@{#zluerxuL>6Vrj5TwOO&zFPqsR6^F>m5^`uF?;(jdEXV>~VeQGXN ztWfpavyIym#8d_kq>6eJy`f@bm40Xl^7aO}T_9B9ndC^D-qIo@{%x83Dw=a$R3ueZ zlsQGm1+5d`WP{2OJx4X6l8!L^(r|G`gr8t&;11m%S1IEdDtPnVhLS`l=YmTEuM_Dk zmD#ZMZ_gn8bv<);ngghAnO6mYcv}cIpvXfb@57Y{B<|@7RU2Qz%+eMW6u7X?*>Z;!~*4?hY`WgcB+XjgfHZ~X^ z$I}aO9J~0=TcRF#M^fk+$xvh8$-9&6qMTehT3yqhd9pjTVT+m_Pp|j9vrNQVY-%T2 z_*N2?3dJ<%h?MK%a38Q0u`eMh8IzeGxL?hX%rfkYD<_IHL)5jUn;{JU(7BZ7l5Gkt znCi~T-M`(wE=))$v@IY_z!N-AL3=~#M7-6x?}y9fO-a#qIevN+x;=A3R_nlR&UjhK zTfeOnw01*{iVhXJldU3C6|BiQ)^MKxe2zuWm&V8>!KHde`r&kP`7!@>Vj{y*`eSs+w8L7-Zp!JN`kTy=WF1sg3E14 z@C)GP-EFkahf~7(7|!k>yBh{Of+830kCSySd|8HSiyIbzD3lIpI04u}chnNU-eMva za0yANjMCdG@|MG`?WLO~j6om`o}k=-Cny;dHb6KoMTR@UKw$g{S|p);42$CZZ#>Kz zj+FMtLGdi^z4y)+M``s_qy+_;*jjai3thf4ZAL_-Q_uY88Rhye zmjkIhAtO$iG6m9J#VM5H&A+JqcGe|QolLpo$ar%nSxcWe?j-4PSZi{y2e=TF=?oci zC!y6o`#lyr$vXQ8U11q`_RqzULV%?u1JFpZp^gb6pwBO==llf$72@;cmStQd6y4T6 zAi^U(9BJwfgCm*g$@{7wK!&65W#kNJlAG+y^lZ*>%%p5&D>9O{(0y+YvXu+0#gpkP zuMY5B@aN+j0Y-ipKlc| z5em>KHthMJ4uXz^@BryWQM&gHL?t?_!Bs>SFc#Lw8QcPi1(oj=6`t7Tg!Ij)ouM1T zKYRg64U~5Sj`;1NZ2ARQ|BH#6>(m9f>b^U+ZHC{znb=X#{Qf)fGV-%sJkmE_uY-3$b=_%`pN(z({ZNq>Gu7v?^$lQA2)} z$KWMc@$c7rdmyuphnV0qA%W%Lw_GR)lEPqJ>3o-Bda7Bz8;K z3lcTAq<8Txbc(3LniP#1)x+zfe`R19MYu18#iuI={(n$zeOpw~Bk*c`mO7na z5lB8Hez!9Hu9L=zK^A0M3>g!Qcb5Huk2Nc7btoF_x9N%my7v@t39Swns1h%;U)Vzm z11&D$ZoB}H^LJ>mr+`K_id^au-Sg82M4nA9-l!vIR@Owv&98my1 zuyLToUk+NLhoAqR(1Xe_Dd9!vF#fl&$UEkbL}I~miPm%s8r0Da&wr24JrG_0G|UJ8 zxgEfH08b2mdFpC04=cB+<^PGAKeuf)qwqh^i$+s{wj2$=;tPKGu(afR(Pt37>ivh6 zm2%Hl-_O7~1)4%e$xJ=)NM=GFe9t9q#CAJlgPX}O6|tm;Dq`6y6oAH3*_TJ0k%UT? zC&A37+c(OG2vrFm1ym(`lu(tnrTD|^5&<%eNA2r;*c9iJ;oi7ZI%KNLAmfBRF%_LG z`Yu@cyyr-f0eGV(;azc5N>9YKmcX0qo!1-xb~Oey%-(o$v8-3^RRQcFz&e1Vn)p!? zEGPr~MPj?>S5wu*3>HoWQqSoOmfHr;U@0`fH_EDeZ15EPdWgzl`Jez8NTTu?^nePn zpZ|B9wVV(x&nu|zdoDhrPvTtj(0x!(gXa2ccK4+XEHy##!X}%x^et>j#+w3Xo#2`ke}6)OV}Tq4~Z* zTBk!(Ws|O+Wh$AKxVY9{EbN!lD`(SGI04DQMMZXzdQ-w$$zhpOl9;kCZI!hTYpj`0 zVvOc~J({I(GuY%10ALTSc5V7ti_Yr63iYdS4^4JqyB7J)`XTqqrQDinnO@~_b1ub}qoGpy(~)VS|wZRvd6#MS{`x*k}1<6y?QWQH4+EK4loY z#G;p3<0aN`ng3kr`?H<&#cg=Go_?%iP5tyqyvX+nczP~@karm*U96PLxb@Q96AlfP zALlrW46y8S`WezHA(~TISpL*Qnt}FA*dQ!Dw}|>9mN3Jq$W1VE63>G}DbV!y{6!d3$>*IXsyjjZ|-+KeGGOncwJ7OLyE>$oyJp7_8eR(o0V0em`p;C4>` z#dJEwfd_VK!?)-%CFm8X*HsT}%PxTqmpk@g^#_}k&{Q67;@jmMt2z(c<%YmxgS13j zMNBnOSU}V#OoHq9J0(>%NWsYkckfM~d+CX8Z7Y zDD8Fj0eA5ECtJ~B%1h`#8wn{@qKaYwR^WMWouuVGtb0YAA&aO2XfQ5pW2JGU(H6k( z_2}PNgrkoxN*lcon-VrgdAB#g*^oJJ8Cq6QpXBQ?!()H)Ld)A}fg>_VN*Y66MxG}+ zj=>r3d5}sVR~xkg*(g78%A@DQu$$3hT>;Y^EDy1ELbUdsP34txGDJH_NG>AIoc53l zy;e<@gp4;}t`z5RBR@?bi4_67UC_L-?jN?;zc*!3WwOa5`6sa@s*Fy$PF3GMzDI?+ z=B8cRWiUyV;Eg?G7IN~{?=4Da{WH%J63T01wBNQFG&_!A3G|l6N3f8LAs<75){P zlD~!z$NA(X7JbJ$rA)2rEb#3O9&ZITF)6D63^y1QjN+v&xJ{4XGtiYD8nnGzB>Z5e z2^H!ZV#3O{KQzZ9fH%rqh>xPTJ?;u>vR4(t1 z5Z|Z{dq1Stz_rZu4~_($6Ed;~8X0Xn6ivn36n9onn*d+6NNB9m$N!n(gM^}C)=aX( z+=IRtY6?n$`y~j|Vr)L>s_`}PYzvDdtl(&DwC|uky2m)nG?UpPV7R5Obj~mYf)= zotFp4;{0aIX<4yKb}idIiI&h{>#las zR$bfmluXekNOy@&+`9YzKpkQZJ1Q#C)Bt;*=YGEL4Dq8scK4hmhcI)$?{n{c?tQ)m zlKN+%Ylv*uQH6nNcW9ps8WNVU6(StB>T$>Fx4-Rq^7hNp_;trnq+n;TxHysv2Jfdv z&N7y@r02=SQG^HVVK?qZ`iMhpemF$+tf=Qny1Mx2V=9>p6D$6^S^pBZEM`puY8S}2 zaeJJsh!Cx;~Y#S4Y*e_QY*m+ET&n9DOR*f)WhBB$t z?yC2C^4{s8dn_;76QRciBw|CkoIOa|`=ewbemoV3_Hfn-WnQzpfeXASJwW}#UeQUv zEf)T^79OMo2I<4xJ83qvEt1RL|CZB+JY+1bbb_(On0sH~6~lFNBTK+oF=g-d1m5XU zRUH-}Dm9OsLmj8jXee_QSjJ&I_FZ_;JZlb2g!~>vW#%C)`Os%A`lFP3rl$)0xW3-b zQt-tc-$MVuGpy&_Xa5umi*VT~mxscRI|pMmP<}*6Xc$tIc!> z_13PN;|69G8$XrEOD^p?p9V=7Xa_S4)xEhrunAmUjCA^cqyDdF|35he9K`_T$z3Bk zhQgs{8k4p-^>;i!xAEZ67h;pG(jpdPXM@5fy}o=4^Ru%&z6{F87pm-Y#FoDp}MJ z=CDNN2~fXEw0QEv>%j3+KjlP_M+W&oE?r-!aeJSth_sU1Qq6>_=^8K{!heD7pwA|6 zI=O-f2sQ(IfwgW{PVTv5p~ku+Pz_DGyhXh0$uz%@eJ;^tJ8ARNcrye=>pPXICDdW; zEKv*OC;IhNStu7$FJKe4=y;Gpxg_CP*NL!-r3gw}pfS#-A&|~Sb;~5Q+Ca@)A#?_v zm9@R36;HaBo2M)n?Zoqfl}mZkYG4!BX9&-W)I%e;$$5H({}Kv(xfOm_K~th)w4(&% zgJ}mHnHss;jm{&v%o{9UHHu0|cI{+WM&Wdf6G6TV$o5W3g*99Cb_ zv5I>RTTwooOEoBopoo~%{e{1&a=KQ^BO|G<^;*2jB@vc-g6PRfV zvYV0b`glCod1^|88~ZZ=&iX}qskD@FKZywUm<%ZK~)=Us|h|LkK;&ijp$DgQTyzwGDWvPmr z3s|TAh$KO*2hPx(QQD}>WjB@Ny1dj1((h*WW&Q!i4W~+T^XyIkCde4}SFTAoLmC2$ zPbErb<#xG5 z{r+5gD^vziGN~y7%}E*Q?%6dMmE?Q1?ITlFbT^f!ftz(w#Y@$&)XiwP@#-!^$RG_% zzIo)gYm5i9@B?c}F_r+4V32w<5FhFx(et)S>m%eg*-D9H+EO!RsipcKWj}B~GhN?Q z_AV+=hDBzRhO-GVFZaqpu^#y8I=+&6-JG9zmB<|eF(@qRvKT1TNT?HLzlDF<`7-6i z@@rEv%1-VNN|xo8ck$ zl=$H@J#Pwuo}TVGExv?F|ExG{#i-}sA*;Dw4S+Y(W6H|2pqOfpxnI=h;-$?fE+@C_ zOixr+^gup&1h|EFBfX4Qb!ZNwlGXnGRzBnpWaUheO~0dCOk`t*bJtmQeWhONv=1b- zp!|`=(-O@It|GGoj##E>GsnWzV!IBV94N67b;{zHO;5%=5e4-vTJiK0jhPC_9ti)B zs-H7kPMa-nVLPYI9dEIA=F@MB+0cjSyLjno0Mc6!n+|zuA{Rpgh>_k@FBFIffj7(2 zW$Evx>2Zm@N4S^B>`$BZZ%LmGYyihGdTP4o^ZRAEP1W0|7|N;!MJJt9n0q)rJ}0Q3 z`wM6Tl=BGtTE%g8`*r>{@uX_@K%QP#_!nq$&AACjn5~&LY7hFYCnfRBqv|!~@`01= zBrR8U_8m9_*dd)67oO?SgCxbGy;r7a?~!)r%CEF-(80=t#AK)& z8tjY3FDvFzvpT>ckkuObP<3%YrHm{%)~lS4$vE~*F}7_aYg_Axwh3O>B1+F0Zt=-x zg=#>aQlle@uFah$smvxr$dCx z*?$9Mqwf|V_R+V_OiUt6iz^KcIhLkk1SuATsWc5rz*Z%@jC_h?;rxImlxR>HIAu(# z#zUgJS*Kp7zRX&;B#l+!eMOBTe5MH0&(P@ywY-f5o~sW_jSvN$EZHcU;0J2p-eu>F*|?+w)Uz(Ukm{^Ws;#te1Cz;>9SZU=M!o94cVtY`S9 zH*UVu+0F42I79^q#S8bNcyhylNb$fwg zMq9b~WV%e)Q$kesgnDj8r0u|2j#{YB!|^&1Vflxs$S)#(-6c_R{75Xx%1GF|aJED= zXhCzfN54#o$su!@Ap#E-GCh_GXVqB=U||wpBLh&_q;Md8lS(1~31i$sO%L984F);` zqdmU7(VqO=QErrQ5s99yEjpHW(0jO$$w(2ZQ@_Iujf`l7N;@-hEqUS_bF{oidi0Gr zHTsH1sSaFkT1Wh8V!`ePTKx-T6$52*mV89WfRA4EE;O<r zTFemwI!%N1sHmrOGn$Q%d#pbKB=-8%pA{!lIMT>(n>!qh=hC=-64|tr<=KfT#_AT9LZ(dwhF|G z6AAq2aCG5Igf0@EEP|mE6pa|Vt-ID=dL1rMYVnPpAMFQ;6MT-C!}w< z=WKP{##DS~n|nVuo6qyJ&sCB6U)Ig1w_3dgVjDuK+H@K0(r&3$`xLAQ{aYP(Vf>&!3LT;Y`}+L zWdp%p{ZdlHnhKFq9+6?`E=*0cB>lJ~2$5Kj^obW%ELaOO@a6?J^vc+Ya|p0m6F6|_ zxK>?1cq%8FeZaAUSFDDy4PLqx2w#gieAgDmi(IT?eQ)D-hpU5eij=mNJMLtxrMzJ8 zr~*UJZHJY)Ayrj}RROF)^op_g>Z&w%yDyVQE)(F>2Dd8V0Rd5UY4i*37;3%=R~ z;D;OicpUP_^OczZPfJU2HTE_}59TPEY+{dDa^Y^XWTMx&yEkudFF}M>gsO(^Oz=cJk#zr~agNrOzPxUOMt}TJx zbk9!vKK(MC(LYF*D!H2YsUDIqD$7e#&Q}U#02skG!u(&yC&se~z952Yb_y=&tZ9YsV5 z@U|d5T9TEL94`zRkgnxMQ3C?>nFtA9Tz|0wmBUJXSkg}8_{uKm8I=Y5#chfuI3Ip zsAZyZXy_+;+eWR97*I4YOhrg;9_|4ym!w1^F3ucGc9xxc=$zxKa}N#XI<0NNI#FP< zII$uKZ35t~1mI@8RGL&crPl+%%$f`W-*klURX@t*NUx~VX2So{~?G}?kYYz^`LiZc}<+lyYLIwp96+-GpxoIf-!^ps6VO#tj&#;=i>_FH&O`~rDncHCgE8_CNZYk`EUR*n-qle zg(;W@hjnoZ86fC?DEscQjd4)N@B<9$%WYTV*TKI8C=_f+Ly<4Sg?p|_!zs)z@Q6=Y z-$J`U%8~>$_)VMu8aCz`6p(Tn7NeWMAfGG}*)J_fYEYx?g1$d{q?kslk0cH;h$~H z;BB9H+NlkBG;NNib!wfTba&j}(K{5Y`=q-sRx#c^ocCF`k+Qm68!YJ@H7;CVu7yiF z&GY8)P~TW=*|HPE{Sh;2LV&+zXQK-{nnE$}GLru8StSFxlFQDIo~89p^hd|rKj_%m z`awt47`gq1`%a8M_h?hO_V~_n?Z>s{8Ug2t@#x@FgkWJG?k(DOplB2MhAmuuHFizf zF82(~9=K%X?+4}%%!#ck{@AU5INl#^UA1B7cVgACU9l}~_Z{3c+&6ZDN~gf?Z!q~_ z_|b!-?~e1)k#W|$&3zcDeShj;;X&wQjC6A1VugnL1`i!%<;F=7pdm^=H*{z2Uz!6K zvdw`B@;ga>r?Sm!KKB<6cm}d?lp9M;Z&s^$B&9UsO>HxeB$p2AN$|I})%7msl8}tTTyLm5dq04!Tno%e74=|Z`1*FwMM*7Fi-AT8^c9BCD z+mgH4tWP0-%&p1aB7dmC@?>m_xqF7WBPF&g*Q`vARl8|=3QJFp?RqXZXB^X#V_ViG zYtOlJZs@BXc6ax6uCE#$8ydpp02qY2TDJK@543FZg}&cX3+$V!{QUf}6KN@RZF~3K zewVj#uXkrt+yU;mnA*i*Cb^+H#Gky#8Feb}uU7>Rhs|pD zK@;616~@SIa{mr$0RQfCWuc&cMdv+2f#yRp4u3xATY@I%hh0pQb8Ba*E8NGJcHqaq z3-8YGxhkPW%*&u~sG|$IsII}iAk@||yMrspG7mDE(SpUO(1&`j-P(DouS$3i$lW76k^Dzx_-`v6k95(oT~bXq zOO$@av+I~VBt`9-@$Pzn7nyVdt&Q{DLTjT!@t#gK+*&0Jw zMA)|uPXKieh|JVNF$`NlBiqUjg*y64AQwoUFdYevbewEkYvJ{BdP_v}X<2KJ5=k93 z(SRhl9jw7C`H`oubH0VBOOTLx=mJ_BPqZ*oWBmHli56)SO?K`v&{lbRVujaDupXLL z{E*q8%u@zW&L261&KB-PTEA1B*|ppksS;v>sn*lEiIH7R9nGWAfF#9MwWmB$dtHCj z9?`WhNRcTaay7N5ziPpFW58REN;?8%6eC-L>Q@P8DS{DN0XjQlUHNo4WZm+{V97P@ zs)_ErFS;Q{m$%MAUX?W9#IHMzn)?C5bI>;v~-78H8?lEp!y^f4z;W{=F+-&9xN&Yf2oLIwH7aNROpCtH5 zzGfwlj6@I$qRs%*e-mhWz+gSL=>UC5}roSdx6PD;; zAp+^T8>Piu%ENV{Pm+G9`iZy}Y3Ed2VM(m8Yk_FS7l{79Tni+?bv>+?Zvgn}41w5m zAqWPmk)Qx%LroK$wLG<=^Yj$A8b`-lU{gXj&407^EO1fP>7E$};tivQ2TM8!Ge=As zSe$@zGG752sFjkK&qVP-C>W77IfAu!i|h4vTLts}Qd4`0Rsvh?uU(nILfO4q-u7;t zz3Z-cD}Gbgb*)yJ;eOx$aUL@RXxY8D-)}SKob&x(-~V~O^F43IJMz(PP@B|0@x#K3C_e%_oG;#^MqSp+hNhp7BJ~Z=O(wYd!3IQMYKNJs1sli_y0!Xp>Lk(x%`l_B$s9tr=t zi9&ErDI}vt?NW;|%Beoa8dH-a9+2vBKk)gqplzV}O9`D8e<>_Su_l+VYnjY_X1c-; zKRV+i9%~HLIwS=5OvhbsX+3(c_UJIBZrM&HVOxkKY$7~sZZdWJTotbJ5D5i><@Aae zV>JommhH4y2&V9s?P`^3bs;%o8n?NU9%}Zlhv)RZH#oLW|yG@|{(4Jnlc$f@e%XU?hreoqvmm;;nc0$)wo<8 z$wkBjn0|6nA|~Nb$2CQSCg-Lew13hDeO9+EOEa zc_5)~pl!+Qx$0)RL&sj8c|TheHwk0Lj4_pNWiO9F+1pH`4NvR%`-w3Nz z4x!BHStnlyedr$Pm_HJEjXi#geW;wwGho64kRT4$!Tv;HvK$1tQPA#3>+Vx^_b@(P z%7UIm;htomPv=_!R@dH)uIZ}-M zZ5$>O;afLyETVN>4yw+E=D{@AwU`S&XOp_*c>EECBsPFVS(LxeEIN(8j!z#jYWOYJ z9<_6MHhDX!OeHEHG}~^|z(x^a+UU@11?JeF2P@+I^tT=2*z2sYpO_q#lVxEk6#hihz|v z$*Cm|5!h%B2{oFDp+_?@^k^myJep!0Ouou#n^?t_Aut+4tet$-^;4XFfBU9EcEmKnQ$m+6NawVf)v6U;Yxka)9-K?%a0czL3i#POEv|tEP`_| z$6Y3&kJ6OW5uDuDLL@xD=a%-j64@u}aI(Ef2Q_sh=(*>GB>^ew0^PZUEYP1V8E}E3 z{C}t_|F5h4qV|h_IpMvh4(0z_YEP$Zt(E7a{C|SGTYe+gDR?I6<^N2ie?@8lmnr|R z=kou0P5vKR=C2copK*Jh=tsIAb2-xe7?kdp|IpHXy(+_HNcy*Lf{y*amh`W$SiF2$ zjd>c`8X_T!K3oi|STxdWlp99#A7V zAM+Mzu<-@p5X6%_veG{?VOK0?UD6P{RDhE2{+e@EnLLpPM@QD_aPA(4e2}>O<;aZd zF=02Xgtt5`7Z9a;NA9T=)F%rgoA4J=HF>rJT;yF7DH*T}+;4Ev|uIZ}GFJb|L1Gy@x}#Kap%`_aoh>lzpj`dv$cFv6QJ9& zGrtermWKQQ-IgW!azm}A+tPqLCu4@XN{qTKB=un&uMoN|WNlrBZVO$U-$S>hp;o8c z(vs(SGSBpA4aJSDWun_c9_i+8sMYJXe0n#I7j!y=Zp*WpZcF}EH+qDn&rv!-b}m8I zkWO5FsLRWEWL~jqK)R|LpsO!kRShsS@`L!DNY@Gerxx%HoPQMs|HuA!1^>SqSnz-F zM=AKv{{aR6xibue!vG@mx*te{UQwu>k^_m*AKb(TL?=S8>raGU*PjTz?z@T58Nq&~ zBJ{c+w+P)^(2ofHr$Hk0>#taZ4wIYi=JVN)2wlr`)kNq&>i>{InHb2R9D*VlD>0}V zh(n2{G(#wtQpcf8SEj{V-!3%sN;FuOJ-1Y}>bRH;6v)Pu<8?+`$bQBeDHC&c zFcY(QKqjVEpXLzWz_Z)N7Ee8Vgtv;}cQ5TlT2 zFIedygyK;yTHG&>G9WpSKN_NR0Dm+fhk3vpTIhqIG&zRyBVmbcc%vg@8JDUv>8EWL z0YC&Y@JIiVIRts?1r=xUav~aV znmZmXH38bCkmfDI`ln-ZOhZmwgD1T-F43Ed&yfu|(fADb3y{suvc)&#SP=~4f?bzC zDDf60eJ(bLhs8GWLor;G#0+sF&bzgxKJ{dM&PVmU&0)077~UwP|E@mg_x0H5FlZE> zPu1sqjL$LpRssG=eU5@~-0Nid7PJO0Us$fm<}P^|?fhw2%cMPAon{en&bTa-%;JyH0Jjt0sCfW$xrvlqfIZfv?zHZ9+rU@s|tWF^Ozb)gh2t4Zp zpf@Y(?617pQJ3VuHn}Erys&bDEn|W$hun4SgTHq8TfIvDTa(Knw6tzp1^FDNoC{6y zS>ZWfH+i|3#uqxx*rp%mgn>zQbA~}Zn$}GN;u*a<%g%%)q&CVw>&SMeZ z0;_M%U|BE$RG0WBO~uN@Jp7f z#}1Sk|Ceu9ItOK3YI4SB^fZM}Oz=CGc%CPi5ArNnxh>;DlYFVk)nXeoUc41LQ5YU6 zUu4e_G1dO4EOVTx8fy2sEWYM2$&&De7*Fb|h7py&X&Ns@!mlGizR;A3gDLkkHQOxX zJ((+=uy3=Y_=t;{fW}3N2E{jE^*oN)N?`;uZ+5hEHkO7NT9}yWolg#kqz{PthjqHU z^I8k}fQE)oTmc&|Yk-m=-@Nv$ zAAKb@Ot1?ZRz~!I4dC z+{sY@IDGg*6pj z0au{x;I_Ujrr3>iC>iTSG7VxLbC68zZ6W~zFdze)-`_en z%k$CS3|wcRRvVI@Zh7t;O2MFJX5+98{wOInE*51lZh2uDQl$lE-4i9*REPgb?AwvD zUdE!fWCCUr6`FCw8xj!o3Cy=R8S6U<@h2u}V4!r{dl#xns)mkf2V8JTdPLWQM z2%XT$QO_hXvHyu9I^=XgqL~9+J(B1Em*))T{ONN}Gg9&8;%{iV>62&zZmb9v^_qV{ zk__FLVkupuhq}aXd&#D9_!Cmo>bktsN7aQ3ZK*fab)}}_;|=&I|J>abXKsTHbJIHL zQMVi?WdE%jGCh7c)mGPZxOIMc>ZrP#gk@>M7|JYi0&RM89aPczyQDUxu#ZG`14Vhn zn}7F|?v&Iz?_@~z4mAnFVrLA=1Fc(0HkAJ#AHn7SD>h$v>H^yTuh@LVJ9*{i(3>Wi1b0uc}cx=7qMj3f%ga1EYAWl#>cwd*yBS%Jhy4~FQ zfF@EOzRB~>rbwdqbmZKh`%wtE_j0rb?nSME*Ho>6V2y_VJ1+qrVMl)qx&!MMuP$9) zCKZoc`T+b?;LpPkNF}AKmz6DEvrHmt1nZfGz(eJgr4N-!qbj0=idCiM<>*?VqI%8h z(y~0WJrOOPO`j~NYWn8L;ESK z9YsRp?xL2}o>XRQK9(CFTiVS^l?Am*!!)tnT=&TrrqW}ZsUx)Fv%Vlnr2ghnnn1Z% zB%(73c|4Ln0HJt41-Sf6r6|SmK9Efx2;wAv1wM7a(=kEJ^goPG$Kk0{5O3l^lb_dh z!_W^C_Cx%+$2$dvpjD~za5Ah_De)lkH{Qj@je?BY4g^V8hthn^RwN4%U935%{hfQ6 zUHyAXW!tgGq-H&nmh3oNbx(^2Y#NUyC}D)k9uvk)UwS^GmwKf zD6aRF<`1M{re+h1d@RTd^N8aF%&Q!0bJ<{I+Tp!;v{xKOA|f%A_Rl8S+Lg+qfoQfX z%|~tH<@aj3S&&%lNIiS8N$SF)z?Ee(n`m#?Lia z#=~m(K`rCwUcP1g-n^@886WKABy6t1&XvW1P&bKc-->h{I&-B%+(iW@bp3ojgN{8h zG8)+I{H`L^?0h40KY~k)xF6BhqkeM)x*ws(PJsInve^c3KeDJ+b3d}EmbxDqrn(=w zy;kpjhX_CizNw(^%ldL6y)6dbUs`l z?Y}Us53~B&S8i6%mjZX8aFB|}h(^rwMWksO+nv0K{Ntpdfl zlQ2UmyQGx#;BuJk-i_mbNU3@q_dPx8TxSOr5+ws=ExM?H1OWB$V0DP&!RC%HXYmOd z)w*kz)2uXNw*ni3x?fbP_9~7yfy#eFQXH?rd3FGsd_}2xRdKuok1xYtBfRbo3i5TR z6w#zqHY<+9C^_AyRPBe$Zl!9El4+3$xx!ktXGPOnXZE{xv$%{zHHi{Bce^RLfO1L5 zQJBrWr@LNJnqRfWDP_Brl0C}$mz2tvMOks}R+{%nv5M;rza)hNo_6tPJj-iJc?A+*C9OO5!R>y$WfOqS zqZ-=?jD6?Yr!?=kjgVI(J{A=pQ%^6CCoB%9iF#xqiO8^FSxlMDs3M$Z&%My`Ml;U6 zcq`mRkh^iLVVntAF=4P`VD-ENi7&&oF@a=)r^f$=yIzJ;G999jD0PcTp$8B@KG(mc zRKBgOeMc$(rLv$=nRD&H#2JsUeFtyH zW4h%p2vo}chrMfoit0$yw;y1)PZ&`z(dfOj!KQH(Q3>>7k0HC5$V7|@;3Eq7AUa8u z00|hAj%Xv9b()FeCSzt#cJth1&LmNj2xc6!Aw8YgX~|j5GQn)_obB;6drY63GlW4! z0&M+Nbzl7eB|5vA!{xx`*85$5)&JF3Ekea{G~8#RB0)9SBIF;3zJlS1SJq&1rei{W zvurkp45LyJlW_%Lun)f^RKC3P2n?LGP0tvzY308pY(FMcG*^@UT+8$Z=%=R==UA;`-)KUYLMiDPDU*ElJf7FewRw%5t{Lk-#kzoYe193n;Iq$ z$x84eLd8)n!N>#|X9U0~sq2jwY9;{A2w+8U9)&YHbgb@hp;s%;gn>ifU!|3!+Iee~ zNp&Qsvy!N&v)k?+8R{%=&xlZGJ;S5U{%c6o*|r#{v#P&gx|y&xF%)K4BZgynJ0VQo zhEgOrq^Kgdt+K&h)u2TgS2ZA0H8=*$r9Y^#xrJx58;W(hdu=wzW z9c&F&LZFQUQcut9RJFNDHErut85PePuG5H<8NXSpFuGmcK1Rey6v;v z1FN`MbX(YFbq7H;4Z3A(@NKk*LxE-we+v2u!?qy!F zfOp$d+{^41_xz_1v_73V+wIV04jdyHSwI(J7?Lv6je#Eqf;*l2Lu5B#P+(-r)E=VD(ml2%316&3N z^C}uUdSTXt5X?A;{DAZ6T47Nydk*ivf5g>h=q-!bdL`vKG!_D$|6Q7-|3BHV@~M@F&WQJ%1pWWNHw02z8~8Jz|G%R?#6N`O4bL5F{eQTgeOvuC zAp#Wbdn7hMb3i_-lAo&dqp}BlF2M>uAC5f$paci%!&K&TL1lh@5dow6|Kauj5AAql zdku&GR_@rgy=E*ke@o4#`482UZ)B>dN`FV?mhGHkEdMvJ=AlZamO9#4zUhHSDx*2$ zw(qFnHtnbaYJvxMa*tGQF0a|LnR=_*Qu$!{rY$Oek~sz-XySs43>0_QbbEmcb-*yE z8t6|LsNmE-`V$5!_>GJFyg3Rghz=?!s{hLXjDYw^ik`^RNJf5mZ;*c;>x%#G9yFSD zb-^4pWtqf5Kr~+6g~$r6v6HpNt`*1_#^x!@$Qt;Wylvl%v ziND+{`_p58dhqvK#orsz{rxW7pONGQE|i8aK!}%^1a(I~d@vspgbY!b3=*lyo~Yw4 z2v%ptf)F+_fQfwjtDfCTN#W3njQp3yNLdD&Aj#W#@P<6VjbL;EKM$*wz)K}fkL-Ha zN|NjxQflln_%u?Fp4a~Yl1i+ezenQ|f9iC*!7(N#B3p7iT(aqDP?ZTSwL6J#wgi%e zIo}8aJ$A!>LF?pBoObJk#BRmzeck@OB#^j!h;>5ZIG0@H28Fw#D2l58A(xabtmbHie`klk5`X9e`Rew4Zl}6QHeGRJqYK^MjbAwg= z)mN|TFU8rqeyaZ52vxton8eUUtfhnA)L8N}gyw$98X7>CrvcjBz#wihSaYv5FICfu z(A<+=7N)shyqp*grMW+*(%c`Tn)}ujq*0FN4`?*^KLgFZ4bn<>#d2lMy(+6kM8OSm zu$J_NUct8**8!}qP#sJvgvk2frkZBZikz#mE=DQ*>OnU zfR;o?CcV6>Ho4%-K7xvEwu3|ONw|+l1;x@&y%YvrXwKBJ3@KmJN<0kH zn{#Q1bZD^f&AOn}O=YT)l`BaDA=*>HALq2rLw$@M=qHU~qH>E&Aucfp0}Y%~@Q{cP z-~F*fGYtDAI@Bb@f(KmkS;mwHTuSw1nJj2NkoKIUMlo4ce^Qq5P=k$vI!33;q&%gi zshptk+)S7uO$_-0`aj~7O~YGi)M30rLP$J7JzOUfL#om%G~;or z84Y7&;qp4jntUB{(a3iwiz4oPC;LZg>L65fcgt#qV6ie0zmm(bv{K|vc8nxh&T>Nj zw^|^2CF~8t77+((!RLu(7NhP{SSZjRA!roUZOBD8h6kePJ0f++tmAnNh7*d^Stw)~ zTvUx^Uy+#OLVv||9zg0$EW!mxkUGdN7wkwfB9J=Y;ubqRQYTkI>PRCw3Gv%O{##lp zbbAb|;K*eC=R(`*M!Ew@w{mFqvZtwUV3awUGVYO#@zh3jFxhDmB?+|Kc^nBqFkBH@I571cF;_c zv6XU~2@|4>x%-OR(L(i}q_mw&bl@+qAvMh5jqn8dfQyG7pw_f{i^by4_1_G?G!(f4 z(I}iKWPN)|$m(z8Pc^1|(uj&lTik>w4EGFLtyu67^FHz2t=wdqmL?q&SKsXW6SYUN z;B+GxPEi|@zc^B22sAg*Mk_S96U>bgZ`M}{()lnDV1~UZQcg^$6-q4j~kFF#3{wlv__6W7OChWWIPh)U}{I>(72-Li-~bX z;es$02XS7qfGV(WP;o#6L@at4t&21(3#lB5Z66WL2wk^HbxXEdvNnBk>0T_rLSazp zPq7ErRLwC*qOqey`PQj;0TjkS&z=c$#@$Lp9&WOhMHoph>PT$eN!UMBl6OeE=<4ZC{bv+tDvRTOItcx=uU1}46E2cM0K|c|G+g49rra7wYP!R{}`I%3}MnxcN{;6oFh&!U8BG4Fm zLPkZL(4ZnbGAd&6YMPQTRKy7vO-vM21hGRYQBV;lTo#lwS!|-Hh@-2q;2ME?@TgD^ zMI(bQ+!rNq#!x^|`UAMy-)k7W5s2=g*j3+kye?6RmmuImLXW*g0^X7Vb zIO8=a|B)Wf*uP0RoZ;9M1n&9v#j&RG~_`kkx|9>bMIZ&e*n5b2y_6EQUOs zu?f4-9?sZ;&B6|6Yz4z14`&=B>kQ4|jJgUuj7mlPy*!)|zy4YdXONNast#umeU5ZE z9QjmNnk5(w{P zM?5mO&2y)uHuH==#oEj!4wP_X9Am(FJodz}dH9{n&vv85lCjp7+H67Y(R$NZX|pz` zBVYIqi|NEyl6^Lf#CSM!;1~%*rrgaMV9@e)ATDDHp`ZIxli4}IA>VPRhojb56@ebtVj(i|BX0S6DHKh640exZm6g!`=$|k;P!5STQ?0Q%vG7)L@=SOvTt8vcGN= zbFzC6XQmk)p3Dq}uT4r>z+^HEKPM?g$9VgEWQVgq=t*jtVYlC_X%7=edOt0Hh8CHnull`b0dFX@O={pvY*J7a0 zO~{vDI(2%z zN|D_UetFlHDz`;_3;;*{41=9{w4wF#2*C)OJpPj{M(VJ6Ljq6 z&u^2Aoc?9jDV<+kTv{veSDJ);BnnOR3IR_q&-~XzLYCQtJj@LB3L9<~if5wnPE5=RoM}DRW$F*W0Sh6} z=R>wD5`_Fj!TAF(K24F6)933BoUx0o!@K(zgCR1K z-0j8g-oftTwC>(P?&63$-4wmTfZfNR*os|&Y27T|yv!~{N*!-R!5va+n>CI>t$2CI*#cR&8gjDM(XKphDf(C zGk<}K*qkcr=CE-NotTq~>Pbwqi2Q6Z`Idl~#)&*HCZ+^Xj&m0Hl6*6K-oxFJpeX4+^pyh51eEvYnlitXv^P{IEfe@V1FMDG?~ngv))tU45t$canXA*ka#u>XhCw=tvoKKg|VgDoKw6vT;j@V1*d)lTN zyUx?jKKhJ4qtECw`iwrK&*(Gyj6S2!=rj6^KBLdy@gkI1xD5cmaw;W4mR3MU8X)C!;IGC z=o9f6<4*bQ{^^j#?*-L$0}=$DZZ7EGT`DKy3z8)H1ECXUa`-@?Wln zkRkamLh@h0$q$`x_x7}VL;NJ<;_KbZs?t|fhXO$MBjyFTu_3(I8hTA!)mqmIJTbnZ ziGpJD?W|9}3R0f+$${3k_?xJ^C^r&CkO|HGVD<;&KQIE9(4UimR0y?)#)N*T_`_{8 zZ|Xs&T`g9_WHz1>4YhU=w=(Zg%PGIrpX{IEzj+DQbHj*$pmiE?>+EqJggX8e)bVpr z$A@Sgx11Uggl$RD2gb?7 z1N-P$DXoCXG!f0P8z!62ZUVDSLnfJ~B{a##UAB{?yPbBc*(Eb(cS^mT3?a?12KStM z@B5G}?4;Yy^oO5p>3*Dh?>Xn5d+vSr-FMDkZ2$ashL37$r|!SEhD?!dhQsrkitcRx!x#Z%~oR6ovew#Qy)$s3$OC|r2u$~#DyYW}7<80O#l)?dN z$RUP2Vb8D>mBJAR5d*=1M8d&fbn`wRS>+;2%-f|QZ*W*bYdl*H+4Fjx=f9(&hDLNQd;IS;a|v97BiJq*@H?9lg*?f z9P~O&UEOuv+qz8K>s;NY4p*b8qocbMdbF;y&D7y^H$vkkSF^jl)7faM?{wC+q*d!P zX<`0nCS?(a=nRJgL7;i9h`bd`G2{wFMkAXs6hgB}G!1zb2+~CFh>xYkA|X+!r{Cif z{YbeOhz<7x@5*9ox=%WwL!=CV<R`BrsO>0fol5fQGW`J>7W<*hAfhD>1jA%4BS6KT4A7De zQD?>q84-YrDOb=aRV)NmE0l)-b1@nnC9`E5$X7(1a%@QQL?rZXWhNl7Fa#MEPLqldY4aZQ_69%I9YKbs>hy4Mxv?cbBYGVur3h9dl&}kRz z+yL|6h=XO=okqiJ26OrS0Di%pAF@*%vY{MM9nG(Zbf5Z zBtu-cVJ)}Gg##=r2-Xydd9m?ZKvY2;!2vTF@dTn`e=IVp$N`jO9f0(BqETr$6vZwa z3HzhcIx<`XfW)Z~*bjVMY3 z9{*4*EFtGWRLc&MPAs&Y79j(^J`_}iWg>_KB~*+^-YDlHZG<&JJd|(5Gvo;mlm74^ z@$U2a!|**E1Vr`)M*@T)0b&-BqQn;q;eR!e4ocnwFkES`!eAOC1BehC?;ynfpf@^1 z2K_@r1Oxx>{3i928_!7TpM4f6>!)y00?J$0>++T?0=5@#Fx0hn$m-o2x{ z9;<2MxO8;@DqS6}4gl$FZ-Q3aaH;}&Xi{T4pwn6BZpN^)t`YHY*R?sj+uK{)-L!_* zh8Egnle>Yo;%w`{hFaU(JD}z*&em39V)HDUOK@Z`b%>%QshSk}m}dI}KItH6QV>iV zF=ZBAi=$8^bPQunqOB}aPGC|eRb@c}2{^$ksso4W@Tj6%eP(@nFuD)sDlMzuA076D z`e=9ddG~>8g%Q620mRL;T~PZx6beRY=oW>l=P3jNjrvJd8MrJ#2&Rv-Q~+N6j@PG3gGnMOHYKkmZ!3gk3{MCGUw#x<{EN@ZM$3>HdU#P6$4dx zDbZAm{Dx2d-X3|=!}6cD$uG6ZfjaqKN&c)|c67)$2IQALvfC?PcFSiw?vv#v z`J;zrU%OmRe*eAYa*13gZ<9ZIQ=K^pT1|zk;!Qwy#1rxds0M}Q0jxmw!mr3u0VLld zlAJq>mJ6hORG#Bce>nH*%lJ70p?Y%l75wnZV#|4Pxt{Tt9#Jk6h z_*2I6){Gkkfe0HYi13|pkS-$Buvq;#WD%ix+=z*8me@UxxClGP1*lEvg91?XUWft6 zFe?xqH$oG_2y5X97L%ct93sS7@dU*s_bFN~H_2kBFeV7kv&vqD0swi2Vg1*v+}kYn zx9sPAM#@jw&!?=wzpy$ljSF!5B>aXVDEy8g@g;-2!SIad#tY)N#VzsG@shYLUKzK? zAB;D|AC7O0?}+!s_r{0g(fDKW!|^BM$K%h$zaM`g{-gLC@wemW<3EZ2EdKNOFXO+C z|0e#Q@#%QZlLb%S{^Y7B5y_buYF-l$8rB%9uO^`1@GNP|$*G36lPUYnPg3@o9JRayn@(1h^k2P4?@h_5=`9a}>T_Ox6h1wMUi1pLmq+ zkeFLJbK%$ii+M)JSBY~Izw}SFe38f_MY;57?JLP*_O^iatHgcQFA^KkN``-GzOp|~{NiNo}%oWH#`;WordH*@Ta-6i3z3hSv+Net_Of@aV zH03=TsKy-1QU=z~mRx8Su;=8Qd2nLq;8e@CH0(=WO7`OUeKRQ^ylemZ{dN1d?)U6} zV*d;Kf4cwb{yPQ>NySUaQuOHkgcHxjt{E&eWTq%_>K9!X|EF$Vg5Yc9_!7R7^IjJ{ za?4@y_3=Ujg~2F0Io*3RJDl--27_l;nGq@t&eErXk!)bqTN&6U1&qSDQ;*JQz&il0 zXbW{tUZkMgwG*A08!hCb(Fh&A(Rxko=xYhb7l~%awZvPZ8Rg|y(Ak!}i-PgOZ~gd< z$Fiv$*&eTeanjOu65p<1BgXn-^1db^SG>AmYqu)UhPm$0_9U zWMuM$wdUK(tUq9t+{tqVmdj$7|BJ=gA#CbST``jeWIcs$?boie36(Pz{swc2>trQ+ zKf!Q4QE@s+Pa)rpr;rC}9Y_Gs0U>tIw7_vSv02Q$xQ$o@>(vCFvWLHgz2k*z;aa#B zu7zviTDTUjg=^tjxE8L3YvEeB7OsVB;rjn_)flRuOR_i8`5t0E+cmuK?UiRBi`j2L z>yY=EgklyK3&yAYH*1K>6oSOASj6&9BN;_!2j9L)_vP(y-%ZX`fxBN70>Q*k_Po=yU{HT8bndp ztu&#y&!Oglv(#$1p1>BDSqqfB)R^#Y)lakr7%{8~#^hprLRA3lYZ5~9G3XIGs#Hf$ zO@ggfi*0Pm6*o}B&fNBUsokg{GIq`Je6soTx2g)W54%ck$;P^vjak-@Gzfi=M*z#m ze?0N8jY=Xn8MkaCc6JA$F#@QRz$rD5yCH1U`1`YvO8@cj6heVlLFYV=>kkU!2(1q~(lV zK5W~>#FM!cnPeGhPCD2#LhO!7)!+=~&}xfxqElOH7c5KDWl8uZvZP}HJ_183(Ebun zLyJt1!V51;FFfCas=joVj9q@mrdMON>G}ih%BWsX?oc`m$M#&qV6OJp(DsYf0Zwh` zu@ll`r$_KKeU`dVuZ@{68*HnfBp+0$57NphS(DaP#H3oLzchAwJLLXYysJ>;hSW7V zqOOeEI7UnsQ!g6ZOW`}GnHy+?c8znktKiG6{&AdZ@>1^_t56DiUDyDfiSJRkBIvlX zL}Nd|S_YLz>za*vw49^#!bG>LM!>3<>jWzGu3*c#u-TOwGhQ}`<-h47;$Ig`R)(nT#)Bo~j8g(-$p8GY|S6DCL=-Vy5P^V4OJ&((A&0V$8G@YB|*R?ri36M&>SlYZI!{9ySOT1AhxBf2&UvE3(Yp zZ>Wb{6m_WammQx$t5cu0W?dMvwv4PTr#9d++G59s7HK2Kr1NZaDLWa|AgdvxBBi~m zLJi5WbM*YsxSPsG8r#ymgz0tYxSLx&en7*DDHpV{3u!1d%fo9TIXQ~!4zW-JMT{-A zKn0IO69u6)kN(3!+e$4_X}o~0V@zo)XV#2LLhsMn9QQsZap7FSJq`l>nvfM=fxalM zJr7h|N|W#mT(#-ioVir`pYZm>_H^D-XTUmke%Q|0S+DU(&yz*jd9r9WPb~LqoYHlO zDSL;Q^c|vSCtY1;=OCS0nPMxgP3I#=dGxGqxuaia6)^r?pK(0MCmL$)di_>S@J*Db zFQ5`bi`jgpu@$NdV+zmR&H)#9(HSTsTl2EU^=aXe)M;1MLzs0X)8}+$&b1ov2<|E6JoRj4TT4q*%+Opb?O__DW)RVC z`f8#c{!$c=e*ANL-nx5mh1XS!0Kq5TNRzu~J7;lSH^0N+PM;dTiT(wqFt$<0XAn{R zwJ7cx6~}_w8OzO_pDh2pqDk4Ffx-=CCeFf*41bacpx*x@%E%{v<`bl5v2C3uxqPiq zn4fjhz7wR_GViqUpiY(7WR+;D%JbNLv^IFvi6pH~zCE>4y9ex4B9!&$oa=JFZL^Y? z-a&fEIXX#eQ9FI-ctA%-lSao9N=Lg&2j35%7TOsdJ?1bf8uff<79KsITVQ_Neap&W z`h^>j<<{KvTNoU2kYj|L+1%4<*K_ZE*sVqFhKxgswH0_qH_Ku~O;=@zI^V`}dhe5K zv=yd$%y+g@IF?kaRIAI%5slmXZ_RBSk>_j=>8K)9eSEXK=qxiCw{Xjv;l}%!Q_Kvb z`IXAf67HdLr|SasB9J?x4qPmaWLy4DvjLoThpD=yQ$1H!YjcaP0<}hE2Q}-2GBa1* z+(A0`z@$~J-o-;%qcMFzVDJzIpCN2KOwVxP;d8(-?OuJNcDp8^>eTn%I$bKR*_54_ z(X-+o+I`x5tyt`J<82gQ@MO#j8qycyJ<1-G=9;(SL{hyQn^?Vr-fc2X%RGcFJ3Fyx z2OZorRi#gSTn|cjbWrcAJ36=U^2>?Ah_*AutD$>2NR8c4YA4qD7WEn4H!pNP?-Avg^|{ zhQ7A@>xtlNyR*pG#GmcPP0w2bQufwT_Nqy9vUkoqaJ<1QnniUMwB9rA*4^yuT=~ov zu9W>od&++EWXe8GQe)FMmwa;S5$hd?T?h&4C!%9X;$m3lzWI4{s?G z5nNLD-bnS}s~I2A*w~E^Hl{{yR8c>A8>cUv-_1AB>Ei1OZetW=bFs>yZbvBV65OR< zieDB|%o#{MWGnNT>MaTP+5YXjnqyX63GUURnqKatvxDkum@N>Eu!dKY)0c>*`PcBO zYXFoQbZu9lud2pyWbY&{kht}Kx=C<{=4iGc!@03W6Gs}P>s#odU}lE%Mhz5^V#KY8 z7~nqjlMi}qI_nW=r>RIlwn>k~3Jo3^tRhgPq*ASg4+I%EmuKVVitOB6k)4|> z=I5rR5ISGy4Oh7t#(ml)Rf@+NB)OjMXMQ;o;g7HlmDT|r02MZw5@SRJ;? zKD?XeyHSW4q_s$yd+r9H#j*^_sVO3+Q)<9LXu*E_sWUE>@{SKc5Vl`c1pg ztNB>!Y3gkF`!jqMx`qMblJy?7M(z}LGUHsprI2NU$|)tB?szHsKV$X#wW><%7M+tV zpmS#jC?&1KO2_27vSi;% z5b1u%pL^$$MDDlf4m!Ljf!cNyzFziRe@2cfpr`t&fc{DU*AmbbnF6{Tr{p5Kp)#L@ z;;r=Z|7P#mf}=XJyLaa5F_IW*#6wru7Wa;L3}YK4t(cXxFw0XsWCX^xFoy8hU5f?0 z0`rJ0vy2gFE0rQjj8hIPIhDlgU2Jcy3C7IGA1QCaL^y`XS=*6eZC_(mc9h+PYn!(u zG&4D;ANMgDFqO(rYEenL_jaG|KHYt~`<&CKPg5$jP-wYU>(0PqY0z)!k(X_nr5C?1 zdn{DUf>OyC=5pmbA}p(X|Sz7d2%q*o7Zgmg5ze#32PG$lH9e56U8GCoou9N!4RuoKc0 zZ!tXBee86_lmGwh3aDb~|JtyCnFzANg_=`9@m z?j;h|Z4HapKL|B=M*qP!U*4I6`ZN7E^p-OpV8C9V60e`GFN()Lh&PqQ8z;m=3M4ZU z>{Y(#cbtYC&Xm>S1HtZzH{Kf$-3MS3eUHDSwKvC#MvZh$NTY@krUa zc<5VQibG!&-+^eCBv{Ph)R^wxxY~sk9}5*Pf{Mf6lvz;mA7aHVmxMU<76Bgn^pn7$djqBE;pw=L&d= z@bqA!vS0yxvWrQ06UWsHh~*f-avWee&W7cfR4nKIud&P-iRH|+NRs@2Px80ot5;QC zm-OmN8)x`EmTz*8 z(-+~ltFtB-zX5*%z{(g{erJsbgP~op>gs!q`s2lakUQn$a<}}EoGB}Eg*+Sk-P6_K z|FEOxKRbAtMYPO3UMR$$>!|sp0}CyJLgBl&qvkAr=UGdI@J~BxGz_O!DnOF;Cr6Sm zkZXw}rann4-v_iz%0udOVB;d~lIBICjaz~b8^JU%gTR)P_O}NfP6^B>kQJn(?SY4l z!0z6lc%|ZcxZ*|_JJ4ZtAp9PxxQc=OaR}6_a{7O*SLfVRuZBajPXE*9S-y%{z8dm& z`Y`;Rg1@J>sDt59K*463Er;L_vdQf_Eo`Y62v^n&gnM4u zLLiFbO;WruV~=OA(50`aas;2NxPnRIYd!IXLg0!Z)Drm?jm6C5#rR*n5*a=-Ig`(+;GWad}{K&{=Ua9L%p64rk6TNCdwZ{dkS=q&IVxWqa0Pusl->42xPIF7V5Vk)!DO zgIrcxqV)WZeNUy@7F>@Y4Zqk_{`a0MC^dTDjoc!W58rxfLGR~1^!a=CJl{y4KiNp1F>)7}12FqhYe^0S{0@bLOX?&D+16Sj znjw3In7g%G-MJ$s#=|9O|Ml5y%Bkq9<6-XS0-nEQMdj|mJER;4+0j(7wZr?P4*L2^ zhxcXndbY#c%U*Lky{=CB`rS_NEcUvi)B7}geYMm33-}i5z8=dz44OEx>h6#1PkE`JyZv+lC;!j#eA+wfq)6S)+ivk14>=7Z4Y*OXrie zoFx!4Q_PWM!Doe^bdYsL%oB44yR7_IF{Xxo$By`+*TK4T>({Z%m&`#v~fLC$ik zJ@V&;b|eFW{27NFd4;hRvewSUZFVav2pm}1^wqeTm0sP5G18{>*3ghVkR*dD zkSOp^Yme!5liD+dZvW)=nBR||6Yx|0yVjW7(G3G;GQITAjhFrb(4OOdUwioY$u-;j zliDW>Pfio2Qh71x!kb$mi=K1E-N<2|a9se7@`S!*>HG`qHdntsMihh%!8`&3rF#e% zgP9C4zIJ-&>I5p0$DptnqK0|vt0D7Cj=sJ=xiqoT1bKjC?gNm?90VN$MW=07@kUt| z@nTU)5x+=Q3k(P~lkg7Kfwwd+~rxy(^oDYu%KSF=*+aDqbeZH34IS-@L- zeU7{L|K7d-_wN0_cklnbd;jmB=Ka46r$YA3rcaMQg4!w^ps4z#PQZGNx*{>;S@X$R z2Gtk+R_tjK^>5Q+Kf%Dh53%p=Rlg;%2Jk;FS!%D>`6Ze)kf9}Cy>2QA2l(!YwYADg zKI-#QOnu8*bRibqQ`Fq^ZZiblKc5rl-4md9fA0R={ki*d_vcUXhcga~fpLhcuS88N zyzg+srif29xdz+uY9*V($c4D5m+(bh?qZ@MJJF#vIDyL+P>;rqQ#mUe6SwZyS8E4= z^*Z?HL;+{;6?mZJ`xu7%t^sk=dY+@WYrm1{hP7nVlrh>}rw`6Ct#U$LClAhX3*9^# zPd#xwsEvG#7?g5@qD*IxRMdyZFsupMXo5=y<{4@-DL1OK1xxBsf7ZIvP`|J;GqcCd z&U8RVcs`q|udp(44s759iuC z+-IV2WVV%c=b>v%ssn)yWw;X4$_{A&q*d&3l-ewUUrhWdG{L8qCMdM=%>@KE;V&7MKoJz*K%GOr<%~X;>xfARvuhxRMbt=#62m_AOg5Wx^@9Uk{c?)qSmZq9-+%x%htGz*EfcW*gd6G*^lG&Xjzo*s@W!7KTYOlDg6@dB|*s}~wzq6_#`jo;b0d+@k z#{zqn(vVg;q=kkOqoDnK429cuTU1+cYx*eFLSJf;uY4(V;xCt=FEip9*0|751r#WjM@^`{r7W{&BFl zg*42@FDNCYEV1WtDUoMsl>=DUL0BwK6===FWn}yH=;AavIis&E)+(jn60PbET`}^w>zG6J*D_-S%g+@8D7nZWUBQ)ms z#}2Sj9U4yfPEUP^_O&;5fT$hu-Lpg}rZAW-%tiz6X@S8A;k^d5+Cjo*R=MkA~#_cC?d1K3rh)SjT0lyIFk_}@X*D^ zI%SeH&Oxl<2274i+kY#g<@HaHN1sccZh5j#Z~qvuPLaM|kVSP84=F@uRZ zUvFD<@aP~cM8KQEy2Mr>YzoT?1d9hu4)-FY=n!1SiF0$}aL5ihLco;K6hT;8IHP#J zo~NWE0Y%ytv&N&Wg_KnQ}@nc$$=R(2d9Z#`3y5nE+E~62U`gll8q{D*O%JP zuPCykRH)tRdAPpz{JPjyN6P(JYbu&G#WjVx$a(BGGx}sRPD~~}LZau>B1@1U0Nd5` zVv#$`=!*N+uzgx~7RSn!;JlrdPXkoObDv-4l7x*D5ai~Oj$NS5f#pmnWH!6Vrc2;M z@1b*LF7@ui%yMugaLAu;+8ZEldqst!_XA4Be zCd&d&7auioInr?Ov)4QT=|)rEdI=|j0(@OAkuyXfY>Nheeq^@c4JpP)=wVag@YAJ) zZ-(;6+F5#>Fh<2$ZWXxwi zatqN{q_*7TejPU1Z*5|mX>^TUI{&sJH?AGHhB@SC%^t(K)gdpW3+WvuFE*1K2cR$( z&y&*?{$F5t6&tz1@kmb;wcu2ElslgQ4n*jO~QB2Zr>#22t#@= zFgO$Qv0NpajxLD)gNHk#OCF_UVBlDSv}AE_MH=r>Gk`UR+tF=HXfDgR#1lDc4so_f zmMJTT=x36w(USjqr!6^fo0e3v8Gq%B7CmOupYSS;Xx}^2wj3pAS!~;z-;j{99@yt>&OW0F$=j5JGLP6B z$5>aLWXD+17?RxU^nmRIweLQ=?D4eN02pzt@)m9V(9n zR1|j1QvS?}&k>wFi%kW9^4gnFY8v(5dWfK&Rz+TJ%hA)HHIO6T+lhc6i=W(B`#6hV-+$Ke_eUeqke(c{mMQarDWl)Jx{tFxqCa1$|`FSsT2HKyjK&uMg9iZb4Ic+Z@5EM89P zQLtKxs0&-QP_qB)jX~vCVPBywWc{zgN@*t3Q3FNwW@Z}i7e3e>UiR$qg{zj!PEVFV z+{L^F9eAu+o@;s^9*1D z$(281>R3d`$^aRzlb8wu#~rH+VaQ?Zdzh$tZyTp1m}EprNV`&!iMD(#G+>O+LyXs; zBAvw*E&7PM7yWW!Hq7}#Ku9~$%(OVRI8{!a<7QeI3+{#NReeR(SSFC-hFm@wX&|ro zOs$>awWH-Is&$z*;pI72d*Sh0M~~m=Ik+D3MaN$X9Z{n|Mor9k0j0poY0MWUE-`uuX~Mp`G&R!wlOJ*CnUp^ zudI;Kc+${Fe8KHC-J-`KS%^E=v&`sFRnGJN%{lci+G6T{_?vSerZ%+M3`qU&Mv(mu zs()z-SAFNabEr}WwN6yaQ!lv%TGGu0#9ONGoN+P;auJ<^pX?VBw}%jheIvkh{cZ&6 z+qQtu3E!Xoi1Hj)M@xCtM|Hma`^U(9CWLPD5P|$1j{5P%$ zakd-R>aCX4+*a>*BsIU)J4*`gSL2NY;d06I%Qow>W-*GLB83u8!0v{fe-vA=2;v@<2MX^y>8q&r#^3-)wUMuFmtnoXn675YSd~dTDF+J z2A%JeO*c(4?33y^Mi-I^Kz2H<_MP(UR?}WWtKAX*zyZ$$q1ZccfOeTb0>J3 z$%rVp4Ah;kABE2OjnO_qNjvgC>|J|wR7IM<-F*pp8PX&qH#o4}9Ue{dil{9Fk^zxq zAOaCI!3hL*&XC9;kU(5eATnz9oINCtfp}8_Q(Xh`{V=b~m2CXn15)~wH z=qA%%$D?N2IXgkFSKYf5`OrpfFuFm{kF23_mkgDY+{d_|weN4=_$>M@xH`cevfNo#RkXwV56F`l1+qVh@Rk?=78FHF$9 zs1yI`9_+-NnED#=#Y#iISmliUF9nuiU-@DOsOdFx&wJ zg{fx$0Ua!X6*}T|W+Y-xfC8P|jR|Lfria#b*=FTd>_|8hn(4LM^oi{l_Rf|-gT~z@ zHvdX!s;S@j^)i+|Ms0 z!{GAZ>4YbLmy~7%l6?EQW>GcZ_ZY|X)SKI%uD-AI>4Tta?P+#_3)h$>kSe4*!yY@d zcMRrtqz)V24bfT4QS^pNO^D7OdNK^`r$YzB6J*}HEZe8AzHfSc`;(x|KOtcSFw@ms z?L5x!Kn^nZbUHX_fl#hPUTZ5E=Gc@{WpcUOpR9%w z9|XPfPL64d@8SCnh6^h*SyqR$D~Cy`ohe1FX*-9}%Au09PhjNU#*Giz{zAAY#oj~p zux=4iFEojdn?%;RY?_2gdtNCkO!pdMPoetWGIH?wum6oKeB1ny&7jM|iQoyxzFa2{ z-iPV0$`FGZVWMUh&NY;P`H@+st=oF7J(1Zs%u5nApgd%|dG8;vrB;+QPR@AoE&e?? zLFc0Iv4fEo1s?6ykKAL|y4fYWJ0t7LD@@qh3>j(Eres*cbTjk;JmVh@L1O`GA~a3|AkT$3?t9p4f6dj@wCMNep2%%5xYN2bO4Hx~9cje_*U z8U4}xVU`Jhz5P+YaeQ+jJ#Wv0rCcZ9?1$txd1Ug_P!{65*95a4j;rL4exXa6*nYj) ze_EUle#FSU(^5!+3eEK^i-FwB3+BjnVB{W2u1Hyo`P@P?Vpp%`>C>kn zO7{!S9@2>V{G*MMOIu5$2HFdI{KhUQFeK89snpyI@2kSWJCy&o0r3(wH^e$e_=bF) zhdx7}q0i7~=ri;g`V4)BK0}|O&(LS+GxQny41I<^L!bX|pWp;#(w&HBG(TzNvzlS6 zr31%A_BV{oHs$R`v+(36SMp%NYwPDpH1Q4SMZ}S8=)P&h?Hgne7UA-Huu6lO5W&mH zRQaf=O`>3AVtF1u%b$f7=^YDPSbSe+#a#E*@6zijJc3-U!kLUHunO%Pp4yLui`kLe z?ZA&oVR5ww@u1?;)Au$l5`LD zJbNf`*VRz;B06xVh$fGD7IxalLQ%I1y?uzEXZ!b*%ES9ieH8SvayO;!CvfC!v%NdH z6}b-hmSyNXJk7}B)56Zs0@2>vZB&c)zV1u}Oh$VR5$(%_!o7J1dk;Lvy-hA&< ztGDf~-~P3+>AtUbHHRwXk!P@i_@bQoOL7Lz?ZM!(+g-U~`eI|h!(p2oZ0Y_YbRBIi zZK19pU<(Z3^4aE*@NoEBQ4tspGo{-M7ve7!mXBdx4e2Ug;C#q;wlb>Eh94BW+c-p{ zgd;hD+YsL;bHg#;8- z;0J^E<0OMtqhmP&VQx)VYhstEqVcS#JLf<-xj7K(s?fijxH=OJvz=+27i~Szpv9u`yr}EZBE&CW z6YUqo;RIv>UpJl=P3NSucbpODKF8g{AOJ^_0NenQ*3M|oQmQJxi%`s2anFnnjpMc< zPF^cYC$wip)j7sR(AfT^_9QIMGj$~i7zZu%so44%mk^!soY-(3RbrzM9i#o-OP(RZk87-VVJ@vR2ycC|qFOTFUaI8j&TKO_W z_c4qS&wev&qZaV--~v;Mr_)j_!5~pi0e+DQLyO1!Z#LvxDeJ~hpa@004*zTv!6-2_Q#5?IW~9? zopTTr)dfQTXjTt240AuHrlXefI~F?q7oa{irGV;^tEpzx{LSfVk3=y=DcTXy##q0< z0&9%Y;+~hza1Lx`XoZBFoq!&kxrqJ6OQj#(CFw^O+GjdF>zKYZnbZoHL)x&~0Mcgl zwy!VNqq@TmIk-|n4R$C{l;0V!2KsX(E1WqJ!U~mdhqrNzqO5YM5*mqeQrB0lx5c=) z%A1oLDy{@i1<8`{Zb0jiD-g_}IHd~%lcc&0m#W+0a0wMki$E<&p1HMri3u8Dc`f`+ zqVtFJ1`jPUBe$BNS~G30Yaro#NlmXY@7$Htyf|BT{%ie?JuigwBm;~roQ}<1OJIxn zP!8lxPRy@0-O!4$o)b1qV9?0(S~Jq`2?E?jB`Hm%J8TDm*KTx;S!}P1s7hp^n9M>% zLvkrn6^y8EKeW2E{a`&x1uJ0ZXp;@(qf(eDs0-Gwx$s1SfqR#NTw z!CNm~k}fE)I3#K+kn|LvW*F}0$A4K|P*Bk0bQdB|C!Y`D^_uHMJ*3?L-M!!>DRV~1 za74&W7a`LTAunBoY)6FrbP;kL5klz;8K-7dkw&`M)V4^vxHyS86{l!$9PN2L)*z+f z$HCltc+A5{!G+=4z^F81+R9BU+)1uQun%MxJ{Wur7fenl?+Vj!AbI7)8Za?fRmZ!4 z*5sXfLgNDd?G9SqtZ9{=ecuu_V--jBY0cH0J4}H*=YEV!G1Xp&szgiDp~5FYg-<%X zhfzaj7IRmk(3;nP0zObUGe=^wAk`Wkte7hLBIio|llH%k47==TM_UFhh?uK#c49!M zp;eg&gS9KUPE?DTVo9HjSQ1G`^@>-N(YGLBSe62+{%PpnKeYHHT1l9~IUoFS6SP+<| zqRmdTYxYY%6=nSRYB^0GV*q7!Fh-7w~QgD9*7lTS}*Sd%5Dv(R?~+9hvE3 z&k2uCVa!1UE_YukT^n;0w| zB^}x=l))mW?uxsfYupi}fuQsB9ZW$6(WKDiGE?Lrm~-y)zY1(;`muO$VMqF%b~q%-(t;^BsoZv>3F#u{Un@u;!qrwyOiovZu2u6f1hb&uEm zZ9OGfA_auw4k^NaS&Hx^^#N}6=bJnC&T-KOJys0GpagxLKW#t)Jz}=QkYf+m+vxI3t``y0xiB5~NM zvMIhjTuCrqpaGf7p6;82WNtE!TD@~^@+Qk7tUro+jhIzfPPt@`j9h0{=Iuw&zahuA zq^U8y&=n{(E{eKKcI}bG3XAZ1iS&7szdi5W`$}2f4hG z9!2j(Ly?A24hunei~}6M9{Bs!mBv5T%PdrX5yLUgP$~-yYI?htDBl)21w(o{FwqW9 zV^LDK#zZ~VNY*H6=w|R-z8ZfNT_e4Cr6x$&m_j83>EwpZ437m5aZ|^NXZx=~AE71E z`VWplXC6MyXTa+isV1rx(xA#krA|SPH*5$rl{z$v-a(8J#6qZ6i?PHQM{I(}j;-RT z$6qV{CYfnGwrb?6$5suj>{{uQdG!cSKM-T#RseBNI{Ar%qG5@^X_Q78!1TBpDmvp#;Zj1SsIfC%TJ7fN( zDK9q1{I}b&A|qndMUz6CVko3rV^D~hvRt#FTrq1ZE4{dBsa8O+7`Jd}R?JbeC`MN- zZKOIn#!@Mtx*`#xi;r_KW^APsW@#S{MjghV6gm&IrVM8?3q=7RkUO1GZZz4?So3xk zLDC)h?>r`Nu~x@Bbe>A%lW#KTyO&Gw8n0AimW}Rqlfo&U-1k@8JKSE^iR0xd+SK*N zYMM5^w9CERBB6amnE(po20RKsZ70*0dT?2w-;O3ZMQc3;_34u@PSAs=Nh(1HIbE_e z>PH2Rl>gyUkz@V4x5!9Uzx(VU+$WBQ988p6`k)HxKmnHrom^c`4l+*OB+Y;8+q5*n zkb(j`j5yPIZ_p9^e1TKzFEr%qa)%wB0lS+xmXwjPa$9X0akQuB6CRClvU&|K z$UdWQ4ShpxS+UL063Q}SUY_cD42+%FhEo z?ne3yJh|G7KxO~k9S&9p2pzYcFOxfgP++MlYuw~ps>3ppq6O)}kj|*Z1~StS9tHm@ zv-TtQAK{|;#DSfJ6V=pP zIByxmy~@TZ%LSW|yzUs~6(-uT;7$9|IJr(uPqEaqgFyk>1@p_eJ|1)!nVBQk1+qNy zus*-a&C_+pVPt(Ec<3&-J=F>R&UDEE4v>PwT|PV~8YBuQL(>dw2waPWTpK7XfAQzt z9@r)S5j#-cC8yn;-clw=GQZ>5+%?99rqyfLuf2cmPu3n=``fh-G_^GSRnwbmpKAKg zrgxfXV$zXWZM4hR@q$H$j!f7P^#_(IGAB59k{16ksOImA^#sceM;M`}%3?R-*Jt!u8O zHV>Q1JfPKHO(k{%OPCqaZRti}U2+X8iR zgY&7=yDOCL!5*@YPL;2s<{+~qg&el1TudFzyImw#i;1R_gNWqc6>aaKz2J9Gv;A^( zur$bwUy~?{L+BR5U&O|DMbmo4BF)zy#K{h0^D zemc0KKzVjLD3*z_@?EiNO`I5`rA9bXRfcWsr$pNasE)~EipEo-?gJ>&zw;t_&xfMz zH0rJ&iMlgtGcA=QWTfrldWgmkMcrxr8ZXxlT?)0VJa@+E(S+2=YlvyVKGG~i=!4oXjqN2gHg&$cw=L``0ER>nu$jeTZ0z< z{2BfH=fqa)IjkzZAgdaL&B2mWqUrUyc*9D{5hFSi{f z4U6wguwHPSZYV2=K_*>CKj56iGiXPzWU60eMkDts>?uj!#+?MCwNWg&D5@^mcB(6P z0@+eTPa*-qPqJxTS&&cr*P^xXUj=AKXt?m>I7G<^j5Gp zxo!*<%Rcb^kU9f44BN>l|loRE9zft zLcY*T-T}a}M&2OhZk+Zbfo|(1mL;ffYOWXi{u0Av(keWC4RAeBPp( zStVM$_#f%D@xQ3@wjfoiXXfzAZ1IY>Y&=^Q)fKrvPfZKQ$o^KjPsGcIY`U9AS~ayA zIVg5P-HHs@s^N}c{=+4BWV`5lM|o|WtU04<%p>6}wB%L|v{-&J0yhqj4*D{&`Q*21 z^&IQx=k&J5O4_^U;*l7$ufE)oo}p`htMe@?g`%vvi9iZAFI0HE+=5-b?ww)D6()Od zGNdxunaNHlns{X(P!v4XF^K2PS~Iv7QX3qD%5!$Oa8QI0Y&5c=g-S#7%ucK2+o~)F z#GldWxw6xtey29miHkgXnH-vL!mxckw%Nh+^grx9ZE#domhW{spCln4e7p`A-b*BQ z5+!X2ZOCFPAVEdGRAd-XK`@A7fDoo(99pJiV4a~|x7^yPt*x4JbSv)c&JuNJ61S|P zgsxBq%+?N;4n5X&3bZq>5yuDw5|Zw{=bU@rN2e1q*8JEXgev-d+;{G|=bn4+x%Zxr z3Z+u*J1gSI*I5t7p{y+^(5Efhe_HD;{5CbdA zJ%yel=C*`MHY`MoKX9sSH{AlYAmpo<^FxCz>e8C zThEv75z(n(!8%DP*pu5@*ZQm0f<5r>e_GeKzR>z*>qsk?q%qogb&PM`a?%7a6HjEu z9x9ha8afR(CpajUo)X-?QQ*>@;P#~er?qgwlM33hBX(%ovLw7fFa_^}O}5+ZZ$f81 zepM??exzu&ZHYA798)OclnJnum=6}@q24E8>830VY~*XCaz0;iIqfJe#N*pb0mDee zK3vy;krMy5jJ{>NU?V7?{|aL0hTOf+v!J_^uZMWyNoL{B6D@ne;#^;f!J^+h(a3cU zcf15+-u+}R0f#5~dLhK#6Nibl+F9{DPcOFDUEt-5e0L5`vh;`@bL-17Y@Im1>DUUp zbkh9K))*uyO;RWyV)B}gchD}*VLk$mer6JI*IyAhv}v+lZF_4kiAkEslP5y~l>yMn zcA!&is{|9oK#?p*kqTQ83{hv@_L+x*fXWE#h(iaVjTu)i_{S&y7$ifrl>G2VIbE)U z^m;jZ86G8!!#bKTKT8nr1*2vksC;_TebReCOyENZwd|b;LhC1rQ0-rekaj?HTaG@< z$%+N}dCsEO8%VILh$%}P@C(&U#Z<&0$hb#-Fu6DeCeLi+$g&kMXku5 zYnzp_5Q&VWI(fMpj-@yLZv5T&yYYA9@Bj6mvTqhZDZAaBqelazQ`|Ev+oTqxrMJ#65!L3%NPM0e=odjmWsj%gm-MfUg zMT=y%;B*@i$V_VBc1e%?xU2qlTYe9T-z0$;UqQ^VN^{^DF8W`7 z-^l^L9+4V`GdW^1-MkN5R0Fe-ghjCn>t{l%WOA=1=QHMN-y9e~rmYb-e24jyW}h<`w3p=+#T_{1BFnSYSuF+_L_vZf)x z<2huaLDo0~t^7W=S>8Q>?V~%^HlQ!ylo$6a${VXn!gx?}g|%K~D@Isj9CIHLXpz~y z`3h^gO4+wrXb`X-eq7r3h<9*PCK6wSmK;*MA?keD6i0?(-b(k<_iA1M?Cheam+cC?h~1WSjctECppe1 zGM>*eOIFBygO0?~VnaqTbH`eO#BZss!^_4@W0WkX2*s&?Q&yAiFH-Xji zW5Y(C-OD$$Z6mJFW{8(LDPGEkV|D)w)xCDenRm&wAB9>}*mN1I7J4~;E#7pnuuW6{ zEoCjzN6U}Zc>tU{2^^aJ!;8$(FH8%rogFAP9T0nLy($b3ZS|MIzz2 z5W`S0x8$>=&m&oCW>Crz$hNfJ%0>dA$=M_B7C18`kC6;IJdBwsNDa5m3$wVTdUqd4 ztSPpPCR7woKkDK(%bE&he7s%63=Q2Q9PD%kXyDg6<${QAC7{jovdFyB`b?dmf8{$I@{;W zf?<C^p9xvknOY57y2KgL~ZlHfHmxDztt34m^H5X#98?RQcOOqqDRS(07u7u1yJ4 znK)34a8w#Ds||zwO!qO*`Qv37R2s_1N)FI-h{wrozgYRXv} zx>^l5lw@SfGK<|%W}%yx8SN~BACv`DUeHinQ1Ct|$p2SeE}MlIY?CYcED@fdmh$1!9?}})Div90718ZQd|G+jMMeI$SQgo$*o)+8iZJC?6|I=w@bYCjo%-N8Sgsg)k1d2nMBG)GJhEK6meWJU`4DFcIyznpCM0mB>n6Xm-NUS91bE#awRpYS(|!cb zks74)d48qoL0WCv7`n6vjJeUe#;!u?1Sr6Uj=$r}YUl8bx@euF&L#Y1Z`uwxCA=dn zj2->aY~B{_aKpT4r+3kXWpkq#@1Tx;=E0A^Dcx`#<|8EYaLo8LN%JhsJ8WenwN3$f znb|8vnmWtDBF*etN)2Y*6^50dbM9@Zbk};Km?^2fc60dL@vhju+LCD8?YpC=b9IJN z5bycz>Vo(u+v5lH*$pMpo}aCbjhq|tD@xCwSJoHz4`JKwaHh7{ON;gz}DWDnw zrFKr#2EON>RRMRcFFGyJ^IxlUU&9IPWfRL4z+EcYTnzivQlJzcY}yOx4MZA^qJwyH}qLq<#1-{EmcFdEq*| z;KOIzyE*E$H$?+!wKdT$HPgl6_uR7jcyEC>tD%Mi{Nm2;_K{##ci{f64A)Bj7HXb- z96q~DO+MZ*Bij4To17XAb&*%n{8^Lk3Y2|#cW>H)^ot#EE_uf6_gSu5yA@Uj^{`sB9e|N4s))nhnvf7v#-If1r z&kL(Bysi(P{9(Yf?bn%nzr=NdM8~lim9nO9W?)0X4w4vX18=J#?)#IM` z!LL`BhdSS%*A2V}1kN0A*UpH3_;mNv6%e5D;t#Z8vPs5tTwQ2$jLV_27wsdXp~?-u z;g$813g^BkM~Fz_m5IFH6!zeEYwX|gCGmXbzvjlY;-O*A^xN$pu@%FZO7E#K#*J{N zb6K#g9TuxoN^j-06u?AKs>>@fo1y&JV4X_>3m3pE5*XnG6pHSLC`b0N7A~zcf#k?5 zGgw1%gEu5MI6hskp$#K1U#47GcAFc`J7o>2FmzDl$*>1zl6%QE_%`cHfbHSzRRt%o zvWnCVj>quh8tY?ehSF+B7ji_3+)x#GU4@47B^-98dhjJmWWV43MKVFqJxb?u0$<$c z^emdLrYmo(>3b;i;fgiu*R-tRFSAHCbCna+=p3$wfg1v!L`usnd_fTriV{R`3=Oek z!)Go(OtV8V+Z|^u3EO;n?bh4${6GOOcf{HF@t%{c5p=mGioXO747)SQXH zddb;1>frN7F~;ouGnZ{tSeeOYnQNWBLh=T+%zC1 z`328hM+n8p9yw<|vH7y4Q=y z)O`Vj{$E!2CH(fWy3gS^772XM?1Qh?;+mhLiE{E(R#pni`9J6Cc}z(r(TWXd*l!_J zU?D_gaxle?X46eVG9jSGSM?^y`og3->eC`CHaOszZn9pEd6^mzC{Fw_~tR?p&nbb1HHUjql=2X>&F}M`neq|7$*k~vs zrl+UZ+v3{RyNKE7qCB`^*HU5Pmb54fI;5|a`k?O$LuHQ$=8V#K-$2sR_*v%ZR+ zj&k}$M^21&Ztg97lRUSA0%V(8fw3@DF8)W;Qq0^CNbCS_3&J;a{;uyM*v}C6^MhB~D(w8ooW)A+S6oI^uY~oPPKD*#1-WCXT zWX&nx04@6?&pn#2n54E`QO2e1f$P!s>x31Tk93n!S_v=u{6Zu3r(MawNz3RWf@W73Fl3A&?!~`x_NBbqK`x>tP99jRk6mZS?tZ6d2O9-J@z?upz{|OoX+1hc3 zjq@0VvOMSMBZ_lE)oWH-c63Ce=ZoqW7&WAl*#{)fZ8D})mvNHoMXJMX0uBDpZ)#s~ z>ij18DH<0G0vt4An}`58taTEI&J6m(+Tq7z3K?n}4=N-|W1;#t6F~J^N>sH5)?CDz ziUs{RuKBESvapdpXhgOMJvEoL<^i%<1YApt#5WR&zqQ00d5i(O6+)04L15ofx~vqK zTeF?%p84`-XOY4(#bZW0r8u>bNn6n2>f@qddFWFmXomG3;1lW2qRAE-%2Pcr3)E|L4n_Ro4M>yAzqdn>X8nItjm1=~retNAp%S zUL{h(DMN2!#}9jztu*2)g|xMz9Of&gm>)I+s@+d&tDZ%eXbli+JM?juXoMIjk)9{6 ziw<(xdt0uLk%Iyn)tii)_BO>_lHZtp1*iX`8u60}(MoJx(8*Rzctsh$pCX3UU8#=47|85w#18;02xXMMNvjur?D(%(M4ze{z(+QFcs41bBbO% zP=Laf)>t$b>Gf-z@5t;#W;8LE@-<^az@t^m{|t==N}SX05U|L#$j4i3=>`Z@;yqj( zk0~T+iWw~=#ne;3BuVm+5D_5nvXZDQ4{DnBL#SxAG0+vv8Era@6FEU>vQ@82em zX-@QR6<)A3`T2(wG(*8}R+tPeSurCeZS2yz8j{A$r~e%02d1rpQ}GAOAd?OvXTn&- zXvamAvt6W}ixI^dhjwb~#>dWVomfy*W=|MTuuEziUSK1iUjE&wh4Fdi631D!eKiAJ zW>)8&D5)UIU|atJll!LFPX3eDLAX+p&>ZU^2}|qaI3 zrU;0(H9a(CJe5LdYNH0Wd~VxJ1FDL}Au6Y+V}bhRS52X9UpyK=PbIV+O&3BNbx$d@ zam7ZX-YK*N??DJe5ZbO$eNSPgS@Q^MifgmSGesIuEb+i3aDSUhldmF*m4J7LFz z#sRSsTan8e^USD%XI|NEe*#uq`+Jqgf7BaaYt1Y`I?kXO+0;fpoiAHt^0eer5nWa^ zg@wN5Gd>Gl>{YkQNV6#ZsUG3$kNse+9iQ1wz1qwhy=loD<;mq;F)^9rHpKQ#_hu+P zJH-wV?dH&Y_z_L6ANAB|`+xJ+oBEw{?i8RQn&1}+5ql9d3=9sN)K@D>?b4QldvNHa zN-05ThEs8di*!CS*2hIMLl6)-QvHnC@0Su8Y2v)tJ)L;jBk~BLz=r{VMBCmhXbfws z)HD{Fk|@pxEzrzYs?9#J*A$L2{fa`mgi9u zL#!hn)N)P3x0<$K3dGZ$CUoCQ!w3xEnt%mD$laT{R8&&Kf)`VDJI*$u0WePh*Du{^ zf0DXMppFQdfx&BPnvsMP+cY~N!4z=EFmeY8JYqYnhwT|;twUteYZ?llnYEJ$8)8SV zvbKvX_$~8aOmv>g-6kcYX|Blkt1(I)ccEjC8xV?`hi%GmWs zDtvquF&`WylW4dk>C_@VK`f9h8j>U{IpPy751m;-9hoqJMx>fxBz0aBBm>4w_zfGSaqn;v{ zfwfnTmXGOMvRK^+aBm#e32lW7yf?{_3feBH47qeEtq$lVNEz{x7(1V}PNv7iBO%L$nSMf^DmOpQs+93uRx345(L1w0u&ln$@!cMAjlmw>dd0cqc4!M6x- z`~S6fw6Ref*FF2r#$OjZb?m*kguSIvjy*v3$=$kJVSK?h;z#T%qNG(-NC00$1O7hW zLD98R)gqB<)u{Q=J5`EggTZ{*#N6%irB;cHDnTv^Kb&}pC+Q!48Pv3C)gV&4@6F8a z?HXFC{n1~Xb>5kIZ)V=S*_oR+Gw(g)#_^=Z)o0(0B>{SZBu*0bqCnJHiKypRhx@wWK3_)GC`$KOnBi-+Q@q%fb=Vo9Q&@DTN+F!$mp z13}+h#E6>pz$5r7E`5rw(ZXRSZH|-CiAT0daW()3;L}zGq-UITPn-g-pfU+UX)R{} zc$U_#PD1b$26+cy^_3uXtVMYx!$2^ zUuk~=(Mc5-_2fvmVW<6s&2bis z*`TMUQpU;P#9?%#YQ586{g1C!_c-a#k(e>a9_v-~&5%V)RTzbLbXJuAeG!aLIP78g z(|HDj#nU7<1&?zib{-zH@VyA%6C`%>4r>KhnSW!LZx&I9P}UF@OW-fS$6;|=BCQv& zId5Cdn)?E#sS70bwq=#k61?b&l==du2QeEhufRbKSE-c=_QMnW8oeu3M>l}+7n+NK zrE?8OEH8H4?A}i=gj#?neq1`y16o!`Slz^T9O$N9;ep8PV38p&8T8p@P{TMqtd65N zLayI&W&5qj_e9q-g3n0BAWOlzo^Cayo(1^RQdXfc!eda z{B*#fM-e4At5Tr`2))97!>x%4k4f;V8=fTby(6|oj5dAfMh!RcK$!p((1?ew0Dhh1 z`w#AlYV3;W8j)9oM;urYmWxZ^qR)g?N3yQ%qyMQ2+*$hX3U%I{v+NUBTE0cayZoHk z(hy)*jOVR2&Mj)*f=v&${jcf9;v#7MY66}+>hy0$b&%+-1td1i`UJ1WM;=;5ScgIE z9S`@Aq2UfVTt8hAt>T1r-lZUF3+~&=?-J|4%n+3wr)WOB5~SG)baz zTc>BL9znjX&$UERMe4RLcGC3F7Q}i{s?|Q#Z39!E>f+kvVMsIeJom~IF?F$mTE@Az zZBb`MKw0;`zo-}f*60&Ff>-c?z`90Q?3jeVU()|j=oYCS1yyhR&x2E)mZ{yAsIsVs zA=!FglVY|Ka>t|Wy@PsG4(saMLqSQ#5S@XQMDK?xBsAI#IP** zz>0-d1@+zu{_(i;QaM*nLY_VQJayT|_WVJ{@Cibx*H?ZodNg_~x+j{A{wC^gsw=gv z)A@al$Xx03Zr~b6M10K+^EhF>ZkX3u==W9?TIS4nkToj!4`+kKU9974Tp0n=5z{__ z-rfvp*V#loUu<`eZKSTvbg>`RW;}+nl7ksNz(Nttl-o?`+SX{qW5_Exu~8dHD~Hlf zz(86)l-6ntrOKc=X(-Zd%AFjc#*nKF$hkG6Y{@tQTQl;Oj8m{k^P{vfpLPO1O3U-T8rn24S9I56pHyiv~uc^FX^0rs=7;P|+J%dy? zxT)q{LMw(w#yVN8%snk`GC78|RBv1FVw6)KTyzR~@?i)YbY(*DPddJFu%4kVWGXy+ z%!(2ERwE>}3^G0{cQ#3Nc48|q_!C{Eev6Kscx?sU@n<9Y&e|Tlgz#}Z)3k= zR)9oQR#osfF5UWZuJ=fG`@L=D3pTvZbhfo_|LT%##F&Ye^!qjo8>~_)7FIW>1TVvS z1ZzK*s9!V@_5Mz_97F5W?5fE+ygy;5`Dof!+>E1Xsbd)V(xH;gQJz3^8kT-H7P9Qb zsj!M!2@17$&@wXfviOV-CYVxs&+0E5H-)O|HoopqZWSJX{tusj0c297F#xCq0GJDE Ay8r+H literal 106651 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